From 6aa4486209056c1457b01b18eb4409daab6310a6 Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Fri, 12 Aug 2016 19:53:07 -0300 Subject: [PATCH] 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. --- src/lib/ecore/ecore_anim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c index 66d08cf68b..70c2f89902 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) &&