diff options
author | Ross Burton <ross@openedhand.com> | 2005-07-25 19:16:22 +0000 |
---|---|---|
committer | Ross Burton <ross@openedhand.com> | 2005-07-25 19:16:22 +0000 |
commit | 915100a3765cdb60d04d314cf79a2687b6c5b5cb (patch) | |
tree | d91ca3a9e2f9c272aee586892122388071b4efe1 | |
parent | 9ca6f45e86f1e1839967821261c55083becfa40a (diff) |
Remove matchers when all proxies are removed
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | glib/dbus-gproxy.c | 6 |
2 files changed, 11 insertions, 0 deletions
@@ -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) |