gdbus: Fix trying to remove already removed sources
authorBastien Nocera <hadess@hadess.net>
Sat, 9 Nov 2013 17:02:57 +0000 (18:02 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 11 Nov 2013 09:06:19 +0000 (01:06 -0800)
When we return FALSE from idle handlers, the source is removed.
This will be causing warnings in glib 2.40.

See https://bugzilla.gnome.org/show_bug.cgi?id=710724

gdbus/object.c

index 268fed5..b248cbb 100644 (file)
@@ -1006,6 +1006,8 @@ static gboolean process_changes(gpointer user_data)
        if (data->removed != NULL)
                emit_interfaces_removed(data);
 
+       data->process_id = 0;
+
        return FALSE;
 }
 
@@ -1019,6 +1021,7 @@ static void generic_unregister(DBusConnection *connection, void *user_data)
 
        if (data->process_id > 0) {
                g_source_remove(data->process_id);
+               data->process_id = 0;
                process_changes(data);
        }