+static WatchNameData *
+watch_name_data_new (GClosure *name_appeared_closure,
+ GClosure *name_vanished_closure)
+{
+ WatchNameData *data;
+
+ data = g_new0 (WatchNameData, 1);
+
+ if (name_appeared_closure != NULL)
+ {
+ data->name_appeared_closure = g_closure_ref (name_appeared_closure);
+ g_closure_sink (name_appeared_closure);
+ if (G_CLOSURE_NEEDS_MARSHAL (name_appeared_closure))
+ g_closure_set_marshal (name_appeared_closure, g_cclosure_marshal_generic);
+ }
+
+ if (name_vanished_closure != NULL)
+ {
+ data->name_vanished_closure = g_closure_ref (name_vanished_closure);
+ g_closure_sink (name_vanished_closure);
+ if (G_CLOSURE_NEEDS_MARSHAL (name_vanished_closure))
+ g_closure_set_marshal (name_vanished_closure, g_cclosure_marshal_generic);
+ }
+
+ return data;
+}
+