discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=267e84ca6d29086f9fdef002c21df7777e01504b
commit 267e84ca6d29086f9fdef002c21df7777e01504b Author: Mike Blumenkrantz <[email protected]> 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); --
