diff --git a/legacy/elementary/src/lib/elm_icon.c b/legacy/elementary/src/lib/elm_icon.c index d5c8aca52e..01f050711b 100644 --- a/legacy/elementary/src/lib/elm_icon.c +++ b/legacy/elementary/src/lib/elm_icon.c @@ -725,12 +725,13 @@ _elm_icon_signal_callback_del(Evas_Object *obj, eina_stringshare_del(esd->emission); eina_stringshare_del(esd->source); data = esd->data; - free(esd); edje_object_signal_callback_del_full (id->img, emission, source, _edje_signal_callback, esd); + free(esd); + return data; /* stop at 1st match */ } } diff --git a/legacy/elementary/src/lib/elm_layout.c b/legacy/elementary/src/lib/elm_layout.c index fa4b585185..65653a1011 100644 --- a/legacy/elementary/src/lib/elm_layout.c +++ b/legacy/elementary/src/lib/elm_layout.c @@ -594,12 +594,13 @@ _elm_layout_smart_signal_callback_del(Eo *obj, void *_pd, va_list *list) eina_stringshare_del(esd->emission); eina_stringshare_del(esd->source); data = esd->data; - free(esd); edje_object_signal_callback_del_full (wd->resize_obj, emission, source, _edje_signal_callback, esd); + free(esd); + if (ret) *ret = data; return; /* stop at 1st match */ }