From e5d9dbd4ec522dd3cc5ca61542666ac5c14647b2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 9 Mar 2016 14:25:16 -0500 Subject: [PATCH] remove show callback from evry win on deletion ==22088== Invalid read of size 1 ==22088== at 0x2C9FE7B1: _evry_cb_show (evry.c:3046) ==22088== by 0x5BE9918: _eo_evas_object_cb (evas_callbacks.c:65) ==22088== by 0x69A16F4: _eo_base_event_callback_call (eo_base_class.c:715) ==22088== by 0x69A3041: eo_event_callback_call (in /usr/lib/libeo.so.1.17.99) ==22088== by 0x5BEA0B3: evas_object_event_callback_call (evas_callbacks.c:240) ==22088== by 0x5C2577C: evas_object_inform_call_show (evas_object_inform.c:12) ==22088== by 0x5C1ED24: _show (evas_object_main.c:1360) ==22088== by 0x5C1EADA: _evas_object_efl_gfx_base_visible_set (evas_object_main.c:1313) ==22088== by 0x575D80A: efl_gfx_visible_set (in /usr/lib/libefl.so.1.17.99) ==22088== by 0x5C1EA58: evas_object_show (evas_object_main.c:1291) ==22088== by 0x479FCF: _e_comp_intercept_show_helper (e_comp_object.c:1616) ==22088== by 0x47A02A: _e_comp_intercept_show (e_comp_object.c:1630) ==22088== Address 0x17621591 is 81 bytes inside a block of size 120 free'd ==22088== at 0x4C2AE6B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==22088== by 0x2C9F95A8: _evry_window_free (evry.c:993) ==22088== by 0x2C9F8065: evry_hide (evry.c:366) ==22088== by 0x2C9FB9A2: _evry_cb_key_down (evry.c:1926) ==22088== by 0x8F6ED4A: _ecore_call_handler_cb (ecore_private.h:316) ==22088== by 0x8F6FC92: _ecore_event_call (ecore_events.c:518) ==22088== by 0x8F7A15A: _ecore_main_loop_iterate_internal (ecore_main.c:2339) ==22088== by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284) ==22088== by 0x4403F6: main (e_main.c:1087) ==22088== Block was alloc'd at ==22088== at 0x4C2BBD5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==22088== by 0x2C9F8D7D: _evry_window_new (evry.c:758) ==22088== by 0x2C9F772D: evry_show (evry.c:177) ==22088== by 0x2C9F711C: _e_mod_run_defer_cb (e_mod_main.c:537) ==22088== by 0x8F75267: _ecore_call_task_cb (ecore_private.h:282) ==22088== by 0x8F7574E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==22088== by 0x8F7A05B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==22088== by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284) ==22088== by 0x4403F6: main (e_main.c:1087) --- src/modules/everything/evry.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index eed3f8cf3..87f1d9bd5 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -989,6 +989,8 @@ static void _evry_window_free(Evry_Window *win) { evas_event_freeze(win->evas); + evas_object_event_callback_del(e_win_client_get(win->ewin)->frame, + EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_evry_cb_show); evas_object_del(win->ewin); free(win); }