discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=47ae1ac843cbc673472356a997fa3583a9b8b581

commit 47ae1ac843cbc673472356a997fa3583a9b8b581
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Dec 7 19:47:07 2015 +0900

    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 b251f35..6f58491 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

-- 


Reply via email to