From 0d8e2479b3a7f0b4ca343435e8a24676fd6bfc67 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 28 May 2015 17:47:49 +0100 Subject: [PATCH] Adjust according to Eo changes. --- src/lib/elm_atspi_bridge.c | 6 +++--- src/lib/elm_cnp.c | 4 ++-- src/lib/elm_interface_atspi_image.c | 20 +++++++++++++++++--- src/lib/elm_widget.h | 2 +- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index ec9e2db..7857c5c 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -3136,7 +3136,7 @@ static void _object_register(Eo *obj, char *path) eldbus_service_interface_register(_a11y_bus, path, &accessible_iface_desc); event_infc = eldbus_service_interface_register(_a11y_bus, path, &event_iface_desc); - eo_do(obj, eo_key_data_set("event_interface", event_infc, NULL)); + eo_do(obj, eo_key_data_set("event_interface", event_infc)); eo_do(obj, eo_event_callback_array_add(_events_cb(), event_infc)); if (eo_isa(obj, ELM_INTERFACE_ATSPI_COMPONENT_MIXIN)) @@ -3144,7 +3144,7 @@ static void _object_register(Eo *obj, char *path) if (eo_isa(obj, ELM_INTERFACE_ATSPI_WINDOW_INTERFACE)) { infc = eldbus_service_interface_register(_a11y_bus, path, &window_iface_desc); - eo_do(obj, eo_key_data_set("window_interface", infc, NULL)); + eo_do(obj, eo_key_data_set("window_interface", infc)); eo_do(obj, eo_event_callback_array_add(_window_cb(), infc)); } if (eo_isa(obj, ELM_INTERFACE_ATSPI_ACTION_MIXIN)) @@ -3176,7 +3176,7 @@ static void _object_unregister(void *obj) if (_a11y_bus && event_infc) { eldbus_service_object_unregister(event_infc); - eo_do(obj, eo_key_data_set("event_interface", NULL, NULL)); + eo_do(obj, eo_key_data_set("event_interface", NULL)); } eo_do(obj, eo_event_callback_del(EO_EV_DEL, _on_cache_item_del, NULL)); diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c index 2de648a..2916a6f 100644 --- a/src/lib/elm_cnp.c +++ b/src/lib/elm_cnp.c @@ -2129,7 +2129,7 @@ _x11_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, drops = eina_list_append(drops, dropable); if (!drops) goto error; dropable->obj = obj; - eo_do(obj, eo_key_data_set("__elm_dropable", dropable, NULL)); + eo_do(obj, eo_key_data_set("__elm_dropable", dropable)); } dropable->cbs_list = eina_inlist_append(dropable->cbs_list, EINA_INLIST_GET(cbs)); @@ -2857,7 +2857,7 @@ _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State drops = eina_list_append(drops, dropable); if (!drops) goto error; dropable->obj = obj; - eo_do(obj, eo_key_data_set("__elm_dropable", dropable, NULL)); + eo_do(obj, eo_key_data_set("__elm_dropable", dropable)); } dropable->cbs_list = eina_inlist_append(dropable->cbs_list, EINA_INLIST_GET(cbs)); diff --git a/src/lib/elm_interface_atspi_image.c b/src/lib/elm_interface_atspi_image.c index 05c3928..7e8eeef 100644 --- a/src/lib/elm_interface_atspi_image.c +++ b/src/lib/elm_interface_atspi_image.c @@ -8,10 +8,12 @@ #include "elm_widget.h" #include "elm_priv.h" -static void -_free_desc(void *data) +static Eina_Bool +_free_desc_cb(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { eina_stringshare_del(data); + + return EINA_TRUE; } EOLIAN static const char* @@ -26,8 +28,20 @@ _elm_interface_atspi_image_description_get(Eo *obj, void *sd EINA_UNUSED) EOLIAN static void _elm_interface_atspi_image_description_set(Eo *obj, void *sd EINA_UNUSED, const char *description) { + const char *key = "atspi_image_description"; const char *descr = eina_stringshare_add(description); - eo_do(obj, eo_key_data_set("atspi_image_description", descr, _free_desc)); + char *old_descr; + if (eo_do_ret(obj, old_descr, eo_key_data_get(key))) + { + eina_stringshare_del(old_descr); + eo_do(obj, eo_event_callback_del(EO_BASE_EVENT_DEL, _free_desc_cb, old_descr)); + } + + if (descr) + { + eo_do(obj, eo_key_data_set(key, descr), + eo_event_callback_add(EO_BASE_EVENT_DEL, _free_desc_cb, descr)); + } } EOLIAN static const char* diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index 784c317..7ab1a58 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h @@ -588,7 +588,7 @@ struct _Elm_Widget_Item_Signal_Data #define WIDGET_ITEM_DATA_SET(eo_obj, data) \ { \ - eo_do(eo_obj, eo_key_data_set("__elm_widget_item_data", data, NULL)); \ + eo_do(eo_obj, eo_key_data_set("__elm_widget_item_data", data)); \ } struct _Elm_Widget_Item_Data -- 2.7.4