forked from enlightenment/enlightenment
e exec - fix missing ref and unref for instance event
this fixes a crash on shutdown when freeing up stuff because an exec instance wasnt ref++'d and ref--'d when adding an event on the event queue that pointed to it. @fix
This commit is contained in:
parent
ecca33310d
commit
f88ed7c7fb
|
@ -660,6 +660,7 @@ _e_exec_instance_free(E_Exec_Instance *inst)
|
||||||
if (!inst->deleted)
|
if (!inst->deleted)
|
||||||
{
|
{
|
||||||
inst->deleted = 1;
|
inst->deleted = 1;
|
||||||
|
inst->ref++;
|
||||||
ecore_event_add(E_EVENT_EXEC_DEL, inst, _e_exec_cb_exec_del_free, inst);
|
ecore_event_add(E_EVENT_EXEC_DEL, inst, _e_exec_cb_exec_del_free, inst);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -712,7 +713,10 @@ _e_exec_cb_exec_new_free(void *data, void *ev EINA_UNUSED)
|
||||||
static void
|
static void
|
||||||
_e_exec_cb_exec_del_free(void *data, void *ev EINA_UNUSED)
|
_e_exec_cb_exec_del_free(void *data, void *ev EINA_UNUSED)
|
||||||
{
|
{
|
||||||
_e_exec_instance_free(data);
|
E_Exec_Instance *inst = data;
|
||||||
|
|
||||||
|
inst->ref--;
|
||||||
|
_e_exec_instance_free(inst);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
|
Loading…
Reference in New Issue