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:
Carsten Haitzler 2015-12-07 19:47:07 +09:00
parent ecca33310d
commit f88ed7c7fb
1 changed files with 5 additions and 1 deletions

View File

@ -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