edbus: Only create one ref of proxys when listen object manager

Patch by: José Roberto de Souza  <zehortigoza@profusion.mobi>



SVN revision: 81414
This commit is contained in:
José Roberto de Souza 2012-12-20 01:55:34 +00:00 committed by Lucas De Marchi
parent 3f5fa6170c
commit ab93f397a7
1 changed files with 6 additions and 5 deletions

View File

@ -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