gdbus/client: Don't GetManagedObjects w/o handlers
authorArman Uguray <armansito@chromium.org>
Fri, 27 Feb 2015 08:16:24 +0000 (00:16 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 26 Mar 2015 09:02:05 +0000 (10:02 +0100)
The client code currently issues GetManagedObjects if new handlers are
set via g_dbus_client_set_proxy_handlers. An application may set these
to NULL before unref'ing a client or to simply prevent further events.
Hence, there is no need to refresh objects or properties if all handlers
are NULL.

gdbus/client.c

index 238b34828ea6f12df40e08dee38084a0200e0174..cd5c7678f9b79891294713c4257994025f123140 100644 (file)
@@ -1374,7 +1374,8 @@ gboolean g_dbus_client_set_proxy_handlers(GDBusClient *client,
        client->property_changed = property_changed;
        client->user_data = user_data;
 
-       get_managed_objects(client);
+       if (proxy_added || proxy_removed || property_changed)
+               get_managed_objects(client);
 
        return TRUE;
 }