forked from enlightenment/efl
elm - genlist - fix leak if someone steals objects on unrealize
elm_genlist_item_all_contents_unset() can steal away the item content. this is how you do a cache of your own objects... BUT this meant genlist couldnt remove its hash entires... as it lost them. this fixes that. leak fixed. (this affected evisum) @fix
This commit is contained in:
parent
b27a0f2b2d
commit
c3577929b3
|
@ -7410,6 +7410,7 @@ _elm_genlist_item_all_contents_unset(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it,
|
||||||
Evas_Object *content;
|
Evas_Object *content;
|
||||||
|
|
||||||
ELM_GENLIST_ITEM_CHECK_OR_RETURN(it);
|
ELM_GENLIST_ITEM_CHECK_OR_RETURN(it);
|
||||||
|
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
|
||||||
|
|
||||||
EINA_LIST_FREE(it->contents, content)
|
EINA_LIST_FREE(it->contents, content)
|
||||||
{
|
{
|
||||||
|
@ -7417,6 +7418,7 @@ _elm_genlist_item_all_contents_unset(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it,
|
||||||
edje_object_part_unswallow(VIEW(it), content);
|
edje_object_part_unswallow(VIEW(it), content);
|
||||||
evas_object_hide(content);
|
evas_object_hide(content);
|
||||||
if (l) *l = eina_list_append(*l, content);
|
if (l) *l = eina_list_append(*l, content);
|
||||||
|
eina_hash_del_by_key(sd->content_item_map, &content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue