forked from enlightenment/efl
diskselector: Fix segmentation fault
Summary: The code was missing null check of sd->items list. If the deleted item is the only item of the list, sd->items becomes empty after removing it. In that case, sd->selected_item should be set as NULL. @fix Fixes T988 Test Plan: execute diskselector_example_02 > click "Delete item" button 3 times Reviewers: raster, seoz Reviewed By: seoz CC: seoz Maniphest Tasks: T988 Differential Revision: https://phab.enlightenment.org/D595
This commit is contained in:
parent
7fb6ea14c5
commit
295630ed9d
|
@ -357,14 +357,19 @@ _item_del_pre_hook(Elm_Object_Item *item)
|
||||||
|
|
||||||
if (sd->selected_item == it)
|
if (sd->selected_item == it)
|
||||||
{
|
{
|
||||||
dit = (Elm_Diskselector_Item *)eina_list_nth(sd->items, 0);
|
if (sd->items)
|
||||||
|
{
|
||||||
|
dit = (Elm_Diskselector_Item *)eina_list_nth(sd->items, 0);
|
||||||
|
|
||||||
if (dit != it)
|
if (dit != it)
|
||||||
sd->selected_item = dit;
|
sd->selected_item = dit;
|
||||||
|
else
|
||||||
|
sd->selected_item = eina_list_nth(sd->items, 1);
|
||||||
|
|
||||||
|
_selected_item_indicate(sd->selected_item);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
sd->selected_item = eina_list_nth(sd->items, 1);
|
sd->selected_item = NULL;
|
||||||
|
|
||||||
_selected_item_indicate(sd->selected_item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_item_del(it);
|
_item_del(it);
|
||||||
|
|
Loading…
Reference in New Issue