discomfitor pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=267e84ca6d29086f9fdef002c21df7777e01504b

commit 267e84ca6d29086f9fdef002c21df7777e01504b
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Dec 2 13:40:17 2015 -0500

    remove pip delete callback during pip free
    
    fixes crash when unloading module while pips exist
---
 src/pip.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/pip.c b/src/pip.c
index 4c516c8..21d4177 100644
--- a/src/pip.c
+++ b/src/pip.c
@@ -61,8 +61,18 @@ pips_edit(void)
 }
 
 static void
+_pip_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
+{
+   E_Client *ec = data;
+   eina_hash_del_by_key(pips, &ec->frame);
+   if (editing && (!eina_hash_population(pips)))
+     pips_noedit();
+}
+
+static void
 pip_free(Pip *pip)
 {
+   evas_object_event_callback_del(pip->pip, EVAS_CALLBACK_DEL, _pip_del);
    evas_object_del(pip->pip);
    evas_object_del(pip->clip);
    free(pip);
@@ -288,15 +298,6 @@ _pip_mouse_down(void *data, Evas *e, Evas_Object *obj, 
void *event_info)
 }
 
 static void
-_pip_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
-{
-   E_Client *ec = data;
-   eina_hash_del_by_key(pips, &ec->frame);
-   if (editing && (!eina_hash_population(pips)))
-     pips_noedit();
-}
-
-static void
 _pip_delete(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED)
 {
    _pip_del(data, NULL, NULL, NULL);

-- 


Reply via email to