From: Lauro Moura Date: Fri, 12 Aug 2016 22:53:07 +0000 (-0300) Subject: ecore: Add _SAFE when iterating the animators. X-Git-Tag: upstream/1.20.0~3913 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6aa4486209056c1457b01b18eb4409daab6310a6;p=platform%2Fupstream%2Fefl.git ecore: Add _SAFE when iterating the animators. In some cases (like JS libuv events) an animator callback can trigger the deletion of an animator, changing the list being iterated. --- diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c index 66d08cf..70c2f89 100644 --- a/src/lib/ecore/ecore_anim.c +++ b/src/lib/ecore/ecore_anim.c @@ -271,13 +271,14 @@ static Eina_Bool _do_tick(void) { Ecore_Animator *animator; + Eina_Inlist *tmp; EINA_INLIST_FOREACH(animators, animator) { animator->just_added = EINA_FALSE; } if (animators) eina_evlog("!FRAME", NULL, ecore_loop_time_get(), NULL); - EINA_INLIST_FOREACH(animators, animator) + EINA_INLIST_FOREACH_SAFE(animators, tmp, animator) { if ((!animator->delete_me) && (!animator->suspended) &&