From a7c05250ae94e0a4cc0fe31db47c710f7422ae46 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 23 Jul 2012 08:23:01 +0000 Subject: [PATCH] elementary/win - fixed invalid sd memory access catched by valgrind. now, more simple and clear! SVN revision: 74310 --- src/lib/elm_win.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index a227319..519ecc9 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -1140,6 +1140,16 @@ _elm_win_focus_highlight_shutdown(Elm_Win_Smart_Data *sd) } static void +_elm_win_on_img_obj_del(void *data, + Evas *e __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + Elm_Win_Smart_Data *sd = data; + sd->img_obj = NULL; +} + +static void _elm_win_smart_del(Evas_Object *obj) { ELM_WIN_DATA_GET(obj, sd); @@ -1177,6 +1187,8 @@ _elm_win_smart_del(Evas_Object *obj) if (sd->img_obj) { + evas_object_event_callback_del_full + (sd->img_obj, EVAS_CALLBACK_DEL, _elm_win_on_img_obj_del, sd); sd->img_obj = NULL; } else @@ -1219,22 +1231,6 @@ _elm_win_smart_del(Evas_Object *obj) } static void -_elm_win_on_img_obj_del(void *data, - Evas *e __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Elm_Win_Smart_Data *sd = data; - - if (!sd->img_obj) return; - - evas_object_event_callback_del_full - (sd->img_obj, EVAS_CALLBACK_DEL, _elm_win_on_img_obj_del, sd); - - evas_object_del(sd->img_obj); -} - -static void _elm_win_obj_intercept_show(void *data, Evas_Object *obj) { -- 2.7.4