summaryrefslogtreecommitdiffstats
path: root/glib/dbus-gproxy.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-10-12 05:59:39 +0000
committerHavoc Pennington <hp@redhat.com>2003-10-12 05:59:39 +0000
commit4097e94af3d2fb1eb865343e3f76ca3949e7c69b (patch)
treec495c423b72fdb8421ec4266396efa97761fa590 /glib/dbus-gproxy.c
parent56cc4ae1a241d36b64dbe26de89714f7771f6e78 (diff)
2003-10-12 Havoc Pennington <hp@pobox.com>
Added test code that 1) starts an actual bus daemon and 2) uses DBusGProxy; fixed bugs that were revealed by the test. Lots more testing possible, but this is the basic framework. * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove empty proxy lists from the proxy list hash * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a couple of return_if_fail checks * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 to allocate, so everything is cleared to NULL as it should be. * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass source as data to dbus_connection_set_timeout_functions() as the timeout functions expected * test/glib/run-test.sh: add a little script to start up a message bus and run tests using it * tools/dbus-launch.1: updates * tools/dbus-launch.c (main): add --config-file option * tools/dbus-launch.c (main): remove confusing else if (runprog) that could never be reached. * dbus/dbus-message.c (dbus_message_new_method_return) (dbus_message_new_error, dbus_message_new_signal): set the no-reply-expected flag on all these. Redundant, but may as well be consistent.
Diffstat (limited to 'glib/dbus-gproxy.c')
-rw-r--r--glib/dbus-gproxy.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/glib/dbus-gproxy.c b/glib/dbus-gproxy.c
index 13b4248c..f5e59186 100644
--- a/glib/dbus-gproxy.c
+++ b/glib/dbus-gproxy.c
@@ -460,7 +460,7 @@ dbus_gproxy_manager_unregister (DBusGProxyManager *manager,
#ifndef G_DISABLE_CHECKS
if (manager->proxy_lists == NULL)
{
- g_warning ("Trying to disconnect a signal on a proxy but none are connected\n");
+ g_warning ("Trying to unregister a proxy but there aren't any registered");
return;
}
#endif
@@ -468,13 +468,11 @@ dbus_gproxy_manager_unregister (DBusGProxyManager *manager,
tri = tristring_from_proxy (proxy);
list = g_hash_table_lookup (manager->proxy_lists, tri);
-
- g_free (tri);
#ifndef G_DISABLE_CHECKS
if (list == NULL)
{
- g_warning ("Trying to disconnect a signal on a proxy but none are connected\n");
+ g_warning ("Trying to unregister a proxy but it isn't registered");
return;
}
#endif
@@ -485,12 +483,21 @@ dbus_gproxy_manager_unregister (DBusGProxyManager *manager,
g_assert (g_slist_find (list->proxies, proxy) == NULL);
+ if (list->proxies == NULL)
+ {
+ g_hash_table_remove (manager->proxy_lists,
+ tri);
+ list = NULL;
+ }
+
if (g_hash_table_size (manager->proxy_lists) == 0)
{
g_hash_table_destroy (manager->proxy_lists);
manager->proxy_lists = NULL;
}
-
+
+ g_free (tri);
+
UNLOCK_MANAGER (manager);
}