rimmed pushed a commit to branch eflete-1.18. http://git.enlightenment.org/tools/eflete.git/commit/?id=904133a828e5a00e0a6850948d1e47259e96c4c1
commit 904133a828e5a00e0a6850948d1e47259e96c4c1 Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Mon Sep 12 19:20:45 2016 +0300 property: remove callbacks before freeing the data --- src/bin/ui/property/property.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/bin/ui/property/property.c b/src/bin/ui/property/property.c index a4c6400..ca38bde 100644 --- a/src/bin/ui/property/property.c +++ b/src/bin/ui/property/property.c @@ -178,15 +178,25 @@ _unrealized_cb(void *data, elm_object_focus_set(pd->genlist, true); } -void +static void _property_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Property_Mode *pd = (Property_Mode *)data; + Property_Data *pd = (Property_Data *)data; property_group_del(); + + /* We need to delete all calbacks here because some of them could be triggered + later (i.e. unrealize_cb) and have incorrect data */ + evas_object_smart_callback_del(pd->genlist, "expand,request", _expand_request_cb); + evas_object_smart_callback_del(pd->genlist, "contract,request", _contract_request_cb); + evas_object_smart_callback_del(pd->genlist, "expanded", _expanded_cb); + evas_object_smart_callback_del(pd->genlist, "contracted", _contracted_cb); + evas_object_smart_callback_del(pd->genlist, "realized", _realized_cb); + evas_object_smart_callback_del(pd->genlist, "unrealized", _unrealized_cb); + free(pd); } --