From f88ed7c7fbccc76eb8a17e7dd7b99204f191022e Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 7 Dec 2015 19:47:07 +0900 Subject: [PATCH] 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 --- src/bin/e_exec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_exec.c b/src/bin/e_exec.c index b251f35c4..6f58491fa 100644 --- a/src/bin/e_exec.c +++ b/src/bin/e_exec.c @@ -660,6 +660,7 @@ _e_exec_instance_free(E_Exec_Instance *inst) if (!inst->deleted) { inst->deleted = 1; + inst->ref++; ecore_event_add(E_EVENT_EXEC_DEL, inst, _e_exec_cb_exec_del_free, inst); return; } @@ -712,7 +713,10 @@ _e_exec_cb_exec_new_free(void *data, void *ev EINA_UNUSED) static void _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