diff options
Diffstat (limited to 'src/client-registry.c')
-rw-r--r-- | src/client-registry.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/client-registry.c b/src/client-registry.c index cbb868c1..dbc7e15d 100644 --- a/src/client-registry.c +++ b/src/client-registry.c @@ -393,8 +393,8 @@ watch_clients (McdClientRegistry *self) arg0_filtered = dbus_connection_add_filter (dconn, mcd_client_registry_name_owner_filter, - g_object_ref (self), - g_object_unref); + self, + NULL); if (arg0_filtered) { @@ -480,6 +480,17 @@ mcd_client_registry_dispose (GObject *object) void (*chain_up) (GObject *) = G_OBJECT_CLASS (_mcd_client_registry_parent_class)->dispose; + if (self->priv->dbus_daemon != NULL) + { + DBusGConnection *gconn = + tp_proxy_get_dbus_connection (self->priv->dbus_daemon); + DBusConnection *dconn = dbus_g_connection_get_connection (gconn); + + dbus_connection_remove_filter (dconn, + mcd_client_registry_name_owner_filter, + self); + } + tp_clear_object (&self->priv->dbus_daemon); tp_clear_object (&self->priv->string_pool); |