jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3671dd64c6cbf6a8ce3f20c1be143805cf3c9e49
commit 3671dd64c6cbf6a8ce3f20c1be143805cf3c9e49 Author: Jean-Philippe Andre <[email protected]> Date: Mon Jul 4 15:10:17 2016 +0900 ecore: Fix obvious crash with legacy timers ecore_timer_del() checks a flag "inside_call" that can be set before calling the timer cb... but it was never reset to 0. So, all legacy timers would keep on ticking forever and ever, until they return CANCEL. Anyway, I find the distinction between eo_del and ecore_timer_del very troubling. eo_del() should work on a legacy timer. Ping @cedric. Maybe override eo_del()? Fixes T3898 --- src/lib/ecore/ecore_timer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/ecore/ecore_timer.c b/src/lib/ecore/ecore_timer.c index 391c792..2d9e1bc 100644 --- a/src/lib/ecore/ecore_timer.c +++ b/src/lib/ecore/ecore_timer.c @@ -168,6 +168,8 @@ _ecore_timer_legacy_tick(void *data, const Eo_Event *event) if (!_ecore_call_task_cb(legacy->func, (void*)legacy->data) || legacy->delete_me) eo_del(event->object); + else + legacy->inside_call = 0; } EO_CALLBACKS_ARRAY_DEFINE(legacy_timer, --
