diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-12-15 23:34:51 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-19 03:43:28 +0100 |
commit | 0ac2df82ba4f64a5aa2b88e99707e1728d980b48 (patch) | |
tree | 3629cdd2e79fccd30b845f6b180a9e04891ce341 | |
parent | b3f0f3b6e2fa8f14cee7355d48a86ae38385e442 (diff) | |
download | neard-0ac2df82ba4f64a5aa2b88e99707e1728d980b48.tar.gz neard-0ac2df82ba4f64a5aa2b88e99707e1728d980b48.tar.bz2 neard-0ac2df82ba4f64a5aa2b88e99707e1728d980b48.zip |
gdbus: Fix issue with unref of client in connect handler
-rw-r--r-- | gdbus/client.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdbus/client.c b/gdbus/client.c index 750242c..670f6a7 100644 --- a/gdbus/client.c +++ b/gdbus/client.c @@ -757,6 +757,8 @@ done: dbus_pending_call_unref(client->pending_call); client->pending_call = NULL; + + g_dbus_client_unref(client); } static void get_managed_objects(GDBusClient *client) @@ -777,6 +779,8 @@ static void get_managed_objects(GDBusClient *client) return; } + g_dbus_client_ref(client); + dbus_pending_call_set_notify(client->pending_call, get_managed_objects_reply, client, NULL); @@ -804,6 +808,8 @@ static void get_name_owner_reply(DBusPendingCall *call, void *user_data) g_free(client->unique_name); client->unique_name = g_strdup(name); + g_dbus_client_ref(client); + if (client->connect_func) client->connect_func(client->dbus_conn, client->connect_data); @@ -814,6 +820,8 @@ done: client->pending_call = NULL; get_managed_objects(client); + + g_dbus_client_unref(client); } static void get_name_owner(GDBusClient *client, const char *name) |