From c37226ef5e8e6e5c915d44583f88d03c3df39c81 Mon Sep 17 00:00:00 2001 From: Andrii Kroitor Date: Fri, 17 Nov 2017 10:15:21 +0200 Subject: [PATCH] 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 3128783..99cda24 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); } -- 2.7.4