From 473371596278794a8f42e1255d2716d32a5a7322 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Fri, 7 Dec 2012 12:31:07 +0000 Subject: [PATCH] elementary/naviframe - Re: [E-devel] [Elc_Naviframe]: Crash on evas_object_del fix. Hi All, Please find attached bug fix patch for Naviframe. This patch fixes crash in naviframe which happens when evas_object_del is called immediately after item_pop. Change description: elc_naviframe: Crash on calling evas_object_del of naviframe immediately after item_pop fixed. Signed-Off by: Shilpa Singh(shilpa.singh@samsung.com) Thanks & Regards Shilpa Singh Signed-Off-By: Shilpa Onkar Singh SVN revision: 80442 --- legacy/elementary/src/lib/elc_naviframe.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c index 8c6bd801a8..3a716dcd5c 100644 --- a/legacy/elementary/src/lib/elc_naviframe.c +++ b/legacy/elementary/src/lib/elc_naviframe.c @@ -1034,6 +1034,7 @@ _on_item_pop_finished(void *data, if (sd->preserve && it->content) elm_widget_tree_unfocusable_set(it->content, it->content_unfocusable); + sd->popping = eina_list_remove(sd->popping, it); elm_widget_item_del(data); } @@ -1263,10 +1264,8 @@ _pop_transition_cb(void *data) { Elm_Naviframe_Item *prev_it, *it; it = (Elm_Naviframe_Item *)data; - ELM_NAVIFRAME_DATA_GET(WIDGET(it), sd); it->animator = NULL; - sd->popping = eina_list_remove(sd->popping, it); prev_it = (Elm_Naviframe_Item *) elm_naviframe_top_item_get(WIDGET(it)); if (prev_it) @@ -1300,7 +1299,7 @@ _elm_naviframe_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) //All popping items which are not called yet by animator. EINA_LIST_FOREACH(sd->popping, l, it) { - ecore_animator_del(it->animator); + if (it->animator) ecore_animator_del(it->animator); elm_widget_item_del(it); } eina_list_free(sd->popping);