diff --git a/legacy/edbus/src/lib/edbus_object.c b/legacy/edbus/src/lib/edbus_object.c index 647b6fad26..ac09f0941a 100644 --- a/legacy/edbus/src/lib/edbus_object.c +++ b/legacy/edbus/src/lib/edbus_object.c @@ -211,6 +211,8 @@ edbus_object_get(EDBus_Connection *conn, const char *bus, const char *path) edbus_connection_name_object_set(conn, obj); edbus_connection_cb_free_add(obj->conn, _on_connection_free, obj); + obj->properties = edbus_proxy_get(obj, EDBUS_FDO_INTERFACE_PROPERTIES); + return obj; cleanup: diff --git a/legacy/edbus/src/lib/edbus_private_types.h b/legacy/edbus/src/lib/edbus_private_types.h index 13f72f7cf4..2ffbb2e0f0 100644 --- a/legacy/edbus/src/lib/edbus_private_types.h +++ b/legacy/edbus/src/lib/edbus_private_types.h @@ -80,6 +80,7 @@ struct _EDBus_Object EDBus_Signal_Handler *interfaces_added; EDBus_Signal_Handler *interfaces_removed; EDBus_Signal_Handler *properties_changed; + EDBus_Proxy *properties; }; struct _EDBus_Signal_Handler diff --git a/legacy/edbus/src/lib/edbus_proxy.c b/legacy/edbus/src/lib/edbus_proxy.c index a2092da960..377e3f69ee 100644 --- a/legacy/edbus/src/lib/edbus_proxy.c +++ b/legacy/edbus/src/lib/edbus_proxy.c @@ -88,7 +88,6 @@ edbus_proxy_shutdown(void) static void _edbus_proxy_event_callback_call(EDBus_Proxy *proxy, EDBus_Proxy_Event_Type type, const void *event_info); static void _edbus_proxy_context_event_cb_del(EDBus_Proxy_Context_Event *ce, EDBus_Proxy_Context_Event_Cb *ctx); static void _on_signal_handler_free(void *data, const void *dead_pointer); -static EDBus_Proxy *get_properties_proxy(EDBus_Proxy *proxy); static void _edbus_proxy_call_del(EDBus_Proxy *proxy) @@ -615,18 +614,12 @@ edbus_proxy_signal_handler_add(EDBus_Proxy *proxy, const char *member, EDBus_Sig return handler; } -static EDBus_Proxy * -get_properties_proxy(EDBus_Proxy *proxy) -{ - return edbus_proxy_get(proxy->obj, EDBUS_FDO_INTERFACE_PROPERTIES); -} - EAPI EDBus_Pending * edbus_proxy_property_get(EDBus_Proxy *proxy, const char *name, EDBus_Message_Cb cb, const void *data) { EDBUS_PROXY_CHECK_RETVAL(proxy, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); - return edbus_proxy_call(get_properties_proxy(proxy), "Get", cb, data, -1, + return edbus_proxy_call(proxy->obj->properties, "Get", cb, data, -1, "ss", proxy->interface, name); } @@ -648,7 +641,7 @@ edbus_proxy_property_set(EDBus_Proxy *proxy, const char *name, char type, const sig[0] = type; sig[1] = 0; - msg = edbus_proxy_method_call_new(get_properties_proxy(proxy), "Set"); + msg = edbus_proxy_method_call_new(proxy->obj->properties, "Set"); iter = edbus_message_iter_get(msg); edbus_message_iter_basic_append(iter, 's', proxy->interface); edbus_message_iter_basic_append(iter, 's', name); @@ -656,7 +649,7 @@ edbus_proxy_property_set(EDBus_Proxy *proxy, const char *name, char type, const edbus_message_iter_basic_append(variant, type, value); edbus_message_iter_container_close(iter, variant); - pending = edbus_proxy_send(get_properties_proxy(proxy), msg, cb, data, -1); + pending = edbus_proxy_send(proxy->obj->properties, msg, cb, data, -1); edbus_message_unref(msg); return pending; @@ -666,7 +659,7 @@ EAPI EDBus_Pending * edbus_proxy_property_get_all(EDBus_Proxy *proxy, EDBus_Message_Cb cb, const void *data) { EDBUS_PROXY_CHECK_RETVAL(proxy, NULL); - return edbus_proxy_call(get_properties_proxy(proxy), "GetAll", cb, data, -1, + return edbus_proxy_call(proxy->obj->properties, "GetAll", cb, data, -1, "s", proxy->interface); } @@ -675,7 +668,7 @@ edbus_proxy_properties_changed_callback_add(EDBus_Proxy *proxy, EDBus_Signal_Cb { EDBus_Signal_Handler *sh; EDBUS_PROXY_CHECK_RETVAL(proxy, NULL); - sh = edbus_proxy_signal_handler_add(get_properties_proxy(proxy), + sh = edbus_proxy_signal_handler_add(proxy->obj->properties, "PropertiesChanged", cb, data); EINA_SAFETY_ON_NULL_RETURN_VAL(sh, NULL); edbus_signal_handler_match_extra_set(sh, "arg0", proxy->interface, NULL);