Diff between 57a632def26dd65447f5fa09cbf01d053bc0d218 and 8c6046af315c07301f979c3d1af5afd383358225

Changed Files

File Additions Deletions Status
gdbus/client.c +8 -10 modified

Full Patch

diff --git a/gdbus/client.c b/gdbus/client.c
index 536121f..8d2a751 100644
--- a/gdbus/client.c
+++ b/gdbus/client.c
@@ -261,6 +261,7 @@ static void update_properties(GDBusProxy *proxy, DBusMessageIter *iter)
 static void get_all_properties_reply(DBusPendingCall *call, void *user_data)
 {
 	GDBusProxy *proxy = user_data;
+	GDBusClient *client = proxy->client;
 	DBusMessage *reply = dbus_pending_call_steal_reply(call);
 	DBusMessageIter iter;
 	DBusError error;
@@ -277,17 +278,14 @@ static void get_all_properties_reply(DBusPendingCall *call, void *user_data)
 	update_properties(proxy, &iter);
 
 done:
-	if (proxy->client != NULL) {
-		GDBusClient *client = proxy->client;
-
-		if (client->proxy_added)
-			client->proxy_added(proxy, client->user_data);
+	if (client->proxy_added)
+		client->proxy_added(proxy, client->user_data);
 
-		client->proxy_list = g_list_append(client->proxy_list, proxy);
-	} else
-		g_dbus_proxy_unref(proxy);
+	client->proxy_list = g_list_append(client->proxy_list, proxy);
 
 	dbus_message_unref(reply);
+
+	g_dbus_client_unref(client);
 }
 
 static void get_all_properties(GDBusProxy *proxy)
@@ -311,7 +309,7 @@ static void get_all_properties(GDBusProxy *proxy)
 		return;
 	}
 
-	g_dbus_proxy_ref(proxy);
+	g_dbus_client_ref(client);
 
 	dbus_pending_call_set_notify(call, get_all_properties_reply,
 							proxy, NULL);
@@ -425,7 +423,7 @@ GDBusProxy *g_dbus_proxy_new(GDBusClient *client, const char *path,
 
 	get_all_properties(proxy);
 
-	return proxy;
+	return g_dbus_proxy_ref(proxy);
 }
 
 GDBusProxy *g_dbus_proxy_ref(GDBusProxy *proxy)