* ecore: Fix destruction of frozen timer, by not delaying their destruction.
authorCedric BAIL <cedric.bail@free.fr>
Fri, 13 Nov 2009 16:57:12 +0000 (16:57 +0000)
committerCedric BAIL <cedric.bail@free.fr>
Fri, 13 Nov 2009 16:57:12 +0000 (16:57 +0000)
SVN revision: 43665

legacy/ecore/src/lib/ecore/ecore_timer.c

index fa2c55d..66fe8e1 100644 (file)
@@ -157,6 +157,20 @@ ecore_timer_del(Ecore_Timer *timer)
                         "ecore_timer_del");
        return NULL;
      }
+
+   if (timer->frozen)
+     {
+       void *data = timer->data;
+
+       suspended = (Ecore_Timer *) eina_inlist_remove(EINA_INLIST_GET(suspended), EINA_INLIST_GET(timer));
+       free(timer);
+
+       if (timer->delete_me)
+         timers_delete_me--;
+
+       return data;
+     }
+
    if (timer->delete_me) return timer->data;
    timers_delete_me++;
    timer->delete_me = 1;