lorddrew pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c37226ef5e8e6e5c915d44583f88d03c3df39c81
commit c37226ef5e8e6e5c915d44583f88d03c3df39c81 Author: Andrii Kroitor <[email protected]> Date: Fri Nov 17 10:15:21 2017 +0200 elm_genlist: fix rare segfault Conditions: - style is "double_label" - the is some content for items (i.e elm_label) - elm_genlist_filter set was once called after genlist creation with NULL data - label_get callback uses elm_genlist_item_prev_get on its current item - at least one item is added as a sub-item - ~2 blocks of items are added afterwards - items are added quickly while holding 'enter' on an elm_button @fix --- src/lib/elementary/elm_genlist.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 3128783609..99cda24b56 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -7691,7 +7691,8 @@ _filter_item_internal(Elm_Gen_Item *it) WIDGET(it), sd->filter_data))) { it->hide = EINA_TRUE; - it->item->block->changed = EINA_TRUE; + if (it->item->block) + it->item->block->changed = EINA_TRUE; } else sd->filtered_count++; @@ -7722,7 +7723,8 @@ _item_filtered_get(Elm_Gen_Item *it) } _filter_item_internal(it); - it->item->block->changed = EINA_TRUE; + if (it->item->block) + it->item->block->changed = EINA_TRUE; ELM_SAFE_FREE(sd->calc_job, ecore_job_del); sd->calc_job = ecore_job_add(_calc_job, sd->obj); } --
