+static OwnNameData *
+own_name_data_new (GClosure *bus_acquired_closure,
+ GClosure *name_acquired_closure,
+ GClosure *name_lost_closure)
+{
+ OwnNameData *data;
+
+ data = g_new0 (OwnNameData, 1);
+
+ if (bus_acquired_closure != NULL)
+ {
+ data->bus_acquired_closure = g_closure_ref (bus_acquired_closure);
+ g_closure_sink (bus_acquired_closure);
+ if (G_CLOSURE_NEEDS_MARSHAL (bus_acquired_closure))
+ g_closure_set_marshal (bus_acquired_closure, g_cclosure_marshal_generic);
+ }
+
+ if (name_acquired_closure != NULL)
+ {
+ data->name_acquired_closure = g_closure_ref (name_acquired_closure);
+ g_closure_sink (name_acquired_closure);
+ if (G_CLOSURE_NEEDS_MARSHAL (name_acquired_closure))
+ g_closure_set_marshal (name_acquired_closure, g_cclosure_marshal_generic);
+ }
+
+ if (name_lost_closure != NULL)
+ {
+ data->name_lost_closure = g_closure_ref (name_lost_closure);
+ g_closure_sink (name_lost_closure);
+ if (G_CLOSURE_NEEDS_MARSHAL (name_lost_closure))
+ g_closure_set_marshal (name_lost_closure, g_cclosure_marshal_generic);
+ }
+
+ return data;
+}
+