From 80ade7456069aa9c76dd67f94412951cf4dc3191 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Thu, 20 Dec 2012 01:55:34 +0000 Subject: [PATCH] edbus: Only create one ref of proxys when listen object manager MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch by: José Roberto de Souza SVN revision: 81414 --- src/lib/edbus_object.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/edbus_object.c b/src/lib/edbus_object.c index 4227613..34c5c0c 100644 --- a/src/lib/edbus_object.c +++ b/src/lib/edbus_object.c @@ -285,15 +285,14 @@ _cb_interfaces_added(void *data, const EDBus_Message *msg) { const char *iface_name; EDBus_Object_Event_Interface_Added event; - EDBus_Proxy *proxy; edbus_message_iter_basic_get(entry_iface, &iface_name); - proxy = edbus_proxy_get(obj, iface_name); - EINA_SAFETY_ON_NULL_RETURN(proxy); + event.proxy = edbus_proxy_get(obj, iface_name); + EINA_SAFETY_ON_NULL_RETURN(event.proxy); event.interface = iface_name; - event.proxy = proxy; _edbus_object_event_callback_call(obj, EDBUS_OBJECT_EVENT_IFACE_ADDED, &event); + edbus_proxy_unref(event.proxy); } } @@ -361,7 +360,7 @@ _cb_properties_changed(void *data, const EDBus_Message *msg) proxy); if (!obj->event_handlers[EDBUS_OBJECT_EVENT_PROPERTY_REMOVED].list) - return; + goto end; while (edbus_message_iter_get_and_next(invalidate, 's', &invalidate_prop)) { @@ -373,6 +372,8 @@ _cb_properties_changed(void *data, const EDBus_Message *msg) EDBUS_OBJECT_EVENT_PROPERTY_REMOVED, &event); } +end: + edbus_proxy_unref(proxy); } EAPI void -- 2.7.4