From 18b6ea9cde0a79daf2c5708a21e045af3d5ccae0 Mon Sep 17 00:00:00 2001 From: SangHyeon Lee Date: Thu, 21 Jun 2018 14:13:21 +0900 Subject: [PATCH] elm_gengrid : fix gengrid cached items disapearing issue by wrong reference counting this patch is porting from upstream. Change-Id: Iee1af82ca1a121433015f2b84abdd43ce9e25337 Signed-off-by: SangHyeon Lee --- src/lib/elementary/elm_gengrid.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index 093b71e..8806736 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -161,7 +161,8 @@ _item_cache_free(Item_Cache *itc) if (!itc) return; evas_object_del(itc->spacer); - evas_object_del(itc->base_view); + efl_wref_del(itc->base_view, &itc->base_view); + efl_del(itc->base_view); eina_stringshare_del(itc->item_style); EINA_LIST_FREE(itc->contents, c) evas_object_del(c); @@ -218,7 +219,7 @@ _item_cache_add(Elm_Gen_Item *it, Eina_List *contents) } itc->spacer = it->spacer; - itc->base_view = VIEW(it); + efl_wref_add(VIEW(it), &itc->base_view); itc->item_style = eina_stringshare_add(it->itc->item_style); itc->contents = contents; @@ -249,7 +250,7 @@ _item_cache_add(Elm_Gen_Item *it, Eina_List *contents) evas_object_hide(itc->base_view); evas_object_move(itc->base_view, -9999, -9999); it->spacer = NULL; - if (!it->base->view) efl_wref_del(it->base->view, &it->base->view); + efl_wref_del(it->base->view, &it->base->view); VIEW(it) = NULL; _item_cache_clean(sd); @@ -282,6 +283,7 @@ _item_cache_find(Elm_Gen_Item *it) it->spacer = itc->spacer; VIEW_SET(it, itc->base_view); itc->spacer = NULL; + efl_wref_del(itc->base_view, &itc->base_view); itc->base_view = NULL; itc->contents = eina_list_free(itc->contents); -- 2.7.4