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)
This commit is contained in:
Mike Blumenkrantz 2016-03-09 14:25:16 -05:00
parent af46fe8190
commit e5d9dbd4ec
1 changed files with 2 additions and 0 deletions

View File

@ -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);
}