discomfitor pushed a commit to branch master.

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

commit 06948d1a260851d59bb554583e0c54cb61ea8f7e
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue Sep 29 12:51:36 2015 -0400

    remove object event callback on notification popdown
    
    ==24509== Invalid write of size 8
    ==24509==    at 0x2C5ED500: _notification_popup_del_cb (e_mod_popup.c:404)
    ==24509==    by 0x91AAE93: _eo_evas_object_cb (evas_callbacks.c:92)
    ==24509==    by 0xE54DDEA: _eo_base_event_callback_call 
(eo_base_class.c:715)
    ==24509==    by 0xE54B67A: eo_event_callback_call (in 
/usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x91AB323: evas_object_event_callback_call 
(evas_callbacks.c:264)
    ==24509==    by 0x91E8DE3: _evas_object_eo_base_destructor 
(evas_object_main.c:691)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x60A3019: _edje_object_eo_base_destructor (edje_smart.c:43)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
    ==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
    ==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
    ==24509==    by 0x6091146: edje_match_callback_exec_check_finals 
(edje_match.c:556)
    ==24509==    by 0x6091146: edje_match_callback_exec (edje_match.c:711)
    ==24509==    by 0x60974AE: _edje_emit_cb (edje_program.c:1453)
    ==24509==    by 0x60974AE: _edje_emit_handle (edje_program.c:1405)
    ==24509==    by 0x60924EE: _edje_message_queue_process 
(edje_message_queue.c:787)
    ==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
    ==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
    ==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
    ==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
    ==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal 
(ecore_main.c:1927)
    ==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
    ==24509==    by 0x4383F4: main (e_main.c:1047)
    ==24509==  Address 0x23b3dcb0 is 16 bytes inside a block of size 80 free'd
    ==24509==    at 0x4C2A65B: free (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==24509==    by 0x2C5ED606: _notification_popdown (e_mod_popup.c:747)
    ==24509==    by 0x2C5ED952: _notification_reshuffle_cb (e_mod_popup.c:700)
    ==24509==    by 0x91AAE93: _eo_evas_object_cb (evas_callbacks.c:92)
    ==24509==    by 0xE54DDEA: _eo_base_event_callback_call 
(eo_base_class.c:715)
    ==24509==    by 0xE54B67A: eo_event_callback_call (in 
/usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x91AB323: evas_object_event_callback_call 
(evas_callbacks.c:264)
    ==24509==    by 0x91E8DE3: _evas_object_eo_base_destructor 
(evas_object_main.c:691)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x60A3019: _edje_object_eo_base_destructor (edje_smart.c:43)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
    ==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
    ==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
    ==24509==    by 0x504CEF: _e_zoomap_smart_del (e_zoomap.c:266)
    ==24509==    by 0x91F5ABC: evas_object_smart_del (evas_object_smart.c:1019)
    ==24509==    by 0x91E9107: _evas_object_eo_base_destructor 
(evas_object_main.c:739)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
    ==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
    ==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
    ==24509==    by 0x458C7A: _e_comp_object_util_del (e_comp_object.c:2402)
    ==24509==    by 0x91AAE93: _eo_evas_object_cb (evas_callbacks.c:92)
    ==24509==    by 0xE54DDEA: _eo_base_event_callback_call 
(eo_base_class.c:715)
    ==24509==    by 0xE54B67A: eo_event_callback_call (in 
/usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x91AB323: evas_object_event_callback_call 
(evas_callbacks.c:264)
    ==24509==    by 0x91E8DE3: _evas_object_eo_base_destructor 
(evas_object_main.c:691)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x60A3019: _edje_object_eo_base_destructor (edje_smart.c:43)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
    ==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
    ==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
    ==24509==    by 0x6091146: edje_match_callback_exec_check_finals 
(edje_match.c:556)
    ==24509==    by 0x6091146: edje_match_callback_exec (edje_match.c:711)
    ==24509==    by 0x60974AE: _edje_emit_cb (edje_program.c:1453)
    ==24509==    by 0x60974AE: _edje_emit_handle (edje_program.c:1405)
    ==24509==    by 0x60924EE: _edje_message_queue_process 
(edje_message_queue.c:787)
    ==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
    ==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
    ==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
    ==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
    ==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal 
(ecore_main.c:1927)
    ==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
    ==24509==    by 0x4383F4: main (e_main.c:1047)
---
 src/modules/notification/e_mod_popup.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/notification/e_mod_popup.c 
b/src/modules/notification/e_mod_popup.c
index 2f30e8a..edfe96b 100644
--- a/src/modules/notification/e_mod_popup.c
+++ b/src/modules/notification/e_mod_popup.c
@@ -733,6 +733,7 @@ _notification_popdown(Popup_Data                  *popup,
    E_FREE_LIST(popup->mirrors, evas_object_del);
    if (popup->win)
      {
+        evas_object_event_callback_del_full(popup->win, EVAS_CALLBACK_DEL, 
_notification_popup_del_cb, popup);
         evas_object_hide(popup->win);
         evas_object_del(popup->win);
      }

-- 


Reply via email to