summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivek Dasmohapatra <vivek@collabora.co.uk>2011-04-21 12:38:37 +0100
committerVivek Dasmohapatra <vivek@collabora.co.uk>2011-05-04 15:27:13 +0100
commit9aca7421037b878ce572e4ddc8f2f6200fb463df (patch)
tree219f0f40e90ce24884201888acf0bf6567525ab3
parentb01dd79df9032460822c3c2eebf3b3cee6cc7103 (diff)
downloadtelepathy-mission-control-9aca7421037b878ce572e4ddc8f2f6200fb463df.tar.gz
Don't ref the registry when adding it as the filter data
-rw-r--r--src/client-registry.c15
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);