summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross@openedhand.com>2005-07-25 19:16:22 +0000
committerRoss Burton <ross@openedhand.com>2005-07-25 19:16:22 +0000
commit915100a3765cdb60d04d314cf79a2687b6c5b5cb (patch)
treed91ca3a9e2f9c272aee586892122388071b4efe1
parent9ca6f45e86f1e1839967821261c55083becfa40a (diff)
Remove matchers when all proxies are removed
-rw-r--r--ChangeLog5
-rw-r--r--glib/dbus-gproxy.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 946c1331..5d02b85a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-25 Ross Burton <ross@openedhand.com>
+
+ * glib/dbus-gproxy.c:
+ Remove matches when all proxies are unregistered.
+
2005-07-24 Colin Walters <walters@verbum.org>
* glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
diff --git a/glib/dbus-gproxy.c b/glib/dbus-gproxy.c
index 0ebff603..5e53f3ee 100644
--- a/glib/dbus-gproxy.c
+++ b/glib/dbus-gproxy.c
@@ -1020,9 +1020,15 @@ dbus_g_proxy_manager_unregister (DBusGProxyManager *manager,
if (list->proxies == NULL)
{
+ char *rule;
g_hash_table_remove (manager->proxy_lists,
tri);
list = NULL;
+
+ rule = g_proxy_get_match_rule (proxy);
+ dbus_bus_remove_match (manager->connection,
+ rule, NULL);
+ g_free (rule);
}
if (g_hash_table_size (manager->proxy_lists) == 0)