felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6aa4486209056c1457b01b18eb4409daab6310a6

commit 6aa4486209056c1457b01b18eb4409daab6310a6
Author: Lauro Moura <lauromo...@expertisesolutions.com.br>
Date:   Fri Aug 12 19:53:07 2016 -0300

    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 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) &&

-- 


Reply via email to