raster pushed a commit to branch efl-1.22. http://git.enlightenment.org/core/efl.git/commit/?id=06c070102e8798670b9ba1389a0b2599e3c850f7
commit 06c070102e8798670b9ba1389a0b2599e3c850f7 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Sun Aug 18 00:25:39 2019 +0100 elm hoversel - avoid crash when items modified while popping down this fixes a crash i saw with asan on pop down if items change at that time. @fix --- src/lib/elementary/elc_hoversel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index bf5cb4ab8e..e796296094 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -605,6 +605,7 @@ _elm_hoversel_item_efl_object_destructor(Eo *eo_item, Elm_Hoversel_Item_Data *it { ELM_HOVERSEL_DATA_GET_OR_RETURN(WIDGET(item), sd); + evas_object_event_callback_del_full(sd->hover, EVAS_CALLBACK_DEL, _auto_update, eo_item); elm_hoversel_hover_end(WIDGET(item)); sd->items = eina_list_remove(sd->items, eo_item); eina_stringshare_del(item->label); @@ -660,6 +661,7 @@ _elm_hoversel_efl_canvas_group_group_del(Eo *obj, Elm_Hoversel_Data *sd) { Elm_Object_Item *eo_item; + evas_object_event_callback_del(sd->hover, EVAS_CALLBACK_DEL, _auto_update); EINA_LIST_FREE(sd->items, eo_item) { ELM_HOVERSEL_ITEM_DATA_GET(eo_item, it); @@ -807,9 +809,9 @@ EOLIAN static void _elm_hoversel_clear(Eo *obj EINA_UNUSED, Elm_Hoversel_Data *sd) { Elm_Object_Item *it; - Eina_List *l, *ll; - EINA_LIST_FOREACH_SAFE(sd->items, l, ll, it) + evas_object_event_callback_del(sd->hover, EVAS_CALLBACK_DEL, _auto_update); + EINA_LIST_FREE(sd->items, it) { efl_del(it); } --
