discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e5d9dbd4ec522dd3cc5ca61542666ac5c14647b2

commit e5d9dbd4ec522dd3cc5ca61542666ac5c14647b2
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Mar 9 14:25:16 2016 -0500

    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 eed3f8c..87f1d9b 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);
 }

-- 


Reply via email to