ecore timer - fuix up segv storm that has crept in with frees
freeing already freed data, not clearing up pointers to freed data once freed etc. etc. etc. - segv land. fix that up so we can use efl again. :(
This commit is contained in:
parent
43a4411f43
commit
a13570c17c
|
@ -157,8 +157,14 @@ _ecore_timer_legacy_tick(void *data, const Eo_Event *event)
|
|||
|
||||
if (!_ecore_call_task_cb(legacy->func, (void*)legacy->data))
|
||||
{
|
||||
eo_del(event->obj);
|
||||
free(legacy);
|
||||
if (eo_key_data_get(event->obj, "_legacy"))
|
||||
{
|
||||
eo_key_del(event->obj, "_legacy");
|
||||
eo_event_callback_del(event->obj, EFL_TIMER_EVENT_TICK,
|
||||
_ecore_timer_legacy_tick, legacy),
|
||||
free(legacy);
|
||||
eo_del(event->obj);
|
||||
}
|
||||
}
|
||||
|
||||
return EO_CALLBACK_CONTINUE;
|
||||
|
@ -219,8 +225,10 @@ ecore_timer_del(Ecore_Timer *timer)
|
|||
legacy = eo_key_data_get(timer, "_legacy");
|
||||
data = (void*) legacy->data;
|
||||
|
||||
free(legacy);
|
||||
eo_key_del(timer, "_legacy");
|
||||
eo_event_callback_del(timer, EFL_TIMER_EVENT_TICK,
|
||||
_ecore_timer_legacy_tick, legacy),
|
||||
free(legacy);
|
||||
eo_del(timer);
|
||||
|
||||
return data;
|
||||
|
|
Loading…
Reference in New Issue