forked from enlightenment/efl
From: cnook <kimcinoo@gmail.com>
Subject: [E-devel] [Patch][elm_list] bug fix: crash occurs when container which contains the elm_list is deleted on the "elm_list item clicked" callback I have resolved the elm_list issue(goto ELM_LIST_CRASH_ISSUE_MAIL below, I sent mail but I cannot find the previous mail -_-;). It would be related with double free issue. In the "sub-obejct-del" callback which name is _sub_del() sets item->icon to NULL. And in the EVAS_CALLBACK_MOUSE_UP callback funtion which name is _mouse_up() calls evas_object_unref(); It would try to free the item->icon but the item->icon is already set to NULL. So.. the crash would occur.. SVN revision: 69555
This commit is contained in:
parent
6309c07b04
commit
18ac67edd1
|
@ -444,8 +444,25 @@ static void
|
|||
_del_pre_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const Eina_List *l;
|
||||
Elm_List_Item *it;
|
||||
|
||||
evas_object_smart_callback_del(obj, "sub-object-del", _sub_del);
|
||||
|
||||
if (!wd) return;
|
||||
|
||||
EINA_LIST_FOREACH(wd->items, l, it)
|
||||
{
|
||||
if (it->icon)
|
||||
evas_object_event_callback_del(it->icon,
|
||||
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints);
|
||||
if (it->end)
|
||||
evas_object_event_callback_del(it->end,
|
||||
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints);
|
||||
}
|
||||
|
||||
evas_object_event_callback_del(wd->scr,
|
||||
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints);
|
||||
|
|
Loading…
Reference in New Issue