raster pushed a commit to branch master.

commit 74d23ebd80073a72532b2fb0711748862b6d9fcd
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Mon May 20 22:24:30 2013 +0900

    when an exe is removed from ibar icon exes, del watcher to avoid segv.
---
 src/modules/ibar/e_mod_main.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 19f1036..a2c6996 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -656,19 +656,21 @@ _ibar_icon_new(IBar *b, Efreet_Desktop *desktop)
 static void
 _ibar_icon_free(IBar_Icon *ic)
 {
+   E_Exec_Instance *inst;
+   
    if (ic->reset_timer) ecore_timer_del(ic->reset_timer);
    ic->reset_timer = NULL;
    if (ic->ibar->ic_drop_before == ic)
      ic->ibar->ic_drop_before = NULL;
    _ibar_icon_empty(ic);
-   ic->exes = eina_list_free(ic->exes);
+   EINA_LIST_FREE(ic->exes, inst)
+     e_exec_instance_watcher_del(inst, _ibar_instance_watch, ic);
    E_FREE_FUNC(ic->menu, e_object_del);
    E_FREE_FUNC(ic->timer, ecore_timer_del);
    evas_object_del(ic->o_holder);
    evas_object_del(ic->o_holder2);
    if (ic->exe_inst)
      {
-        e_exec_instance_watcher_del(ic->exe_inst, _ibar_instance_watch, ic);
         ic->exe_inst = NULL;
      }
    E_FREE(ic);
@@ -1117,6 +1119,7 @@ _ibar_instance_watch(void *data, E_Exec_Instance *inst, 
E_Exec_Watch_Type type)
       case E_EXEC_WATCH_STOPPED:
       case E_EXEC_WATCH_TIMEOUT:
         _ibar_icon_signal_emit(ic, "e,state,started", "e");
+        e_exec_instance_watcher_del(inst, _ibar_instance_watch, ic);
         ic->exes = eina_list_remove(ic->exes, inst);
         if (!ic->exes) _ibar_icon_signal_emit(ic, "e,state,off", "e");
         ic->exe_inst = NULL;

-- 

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d

Reply via email to