raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ba8a47a316cf8473b16e3f2848f48e574fd7222f
commit ba8a47a316cf8473b16e3f2848f48e574fd7222f Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Sun Jun 24 11:56:52 2018 +0900 elm focus - fix focus composition prepare to not seg by unsafe list mods efl_ui_focus_composition_prepare() methods in 2 widgets were modifying the list (removing items) as they walked, using unsafe walking macros. fix - use the safe variants. --- src/lib/elementary/elm_grid.c | 4 ++-- src/lib/elementary/elm_table.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elm_grid.c b/src/lib/elementary/elm_grid.c index f1d5cd04d5..7443047912 100644 --- a/src/lib/elementary/elm_grid.c +++ b/src/lib/elementary/elm_grid.c @@ -17,13 +17,13 @@ static void _elm_grid_efl_ui_focus_composition_prepare(Eo *obj, void *pd EINA_UNUSED) { - Eina_List *l; + Eina_List *l, *ll; Efl_Ui_Widget *elem; Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, EFL_UI_WIDGET_CLASS); Eina_List *order = evas_object_grid_children_get(wpd->resize_obj); - EINA_LIST_FOREACH(order, l, elem) + EINA_LIST_FOREACH_SAFE(order, l, ll, elem) { if (!efl_isa(elem, EFL_UI_WIDGET_CLASS)) order = eina_list_remove(order, elem); diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c index dfe7cf2bb7..5cab078534 100644 --- a/src/lib/elementary/elm_table.c +++ b/src/lib/elementary/elm_table.c @@ -18,13 +18,13 @@ static void _elm_table_efl_ui_focus_composition_prepare(Eo *obj, void *pd EINA_UNUSED) { - Eina_List *l; + Eina_List *l, *ll; Efl_Ui_Widget *elem; Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, EFL_UI_WIDGET_CLASS); Eina_List *order = evas_object_table_children_get(wpd->resize_obj); - EINA_LIST_FOREACH(order, l, elem) + EINA_LIST_FOREACH_SAFE(order, l, ll, elem) { if (!efl_isa(elem, EFL_UI_WIDGET_CLASS)) order = eina_list_remove(order, elem); --
