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
This commit is contained in:
parent
e2d7c11665
commit
3671dd64c6
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue