From 2373b69c61d7d6ab74675a4facff54601831ce9a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 22 Sep 2015 12:54:10 -0400 Subject: [PATCH] Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it""" This reverts commit 6bef668a8fb37104f1e9e4bb1bb0dd379cb68ef5. --- src/bin/e_deskmirror.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c index 4abc0b3..3efe066 100644 --- a/src/bin/e_deskmirror.c +++ b/src/bin/e_deskmirror.c @@ -41,7 +41,6 @@ typedef struct Mirror Evas_Object *comp_object; Evas_Object *mirror; int x, y, w, h; - int ref; Eina_Bool added : 1; } Mirror; @@ -111,20 +110,6 @@ _mirror_scale_set(Mirror *m, float sc) } static void -_mirror_ref(Mirror *m) -{ - m->ref++; -} - -static void -_mirror_unref(Mirror *m) -{ - m->ref--; - if (m->ref > 0) return; - free(m); -} - -static void _e_deskmirror_smart_reconfigure(E_Smart_Data *sd) { e_layout_freeze(sd->layout); @@ -352,10 +337,7 @@ _mirror_client_smart_del(Evas_Object *obj) evas_object_smart_callback_del_full(mb->m->ec->frame, "shadow_change", _mirror_client_shadow_change, mb->frame); } evas_object_del(mb->frame); - mb->frame = NULL; evas_object_del(mb->mirror); - mb->mirror = NULL; - _mirror_unref(mb->m); free(mb); } @@ -492,13 +474,12 @@ _e_deskmirror_mirror_del_hash(Mirror *m) evas_object_smart_callback_del_full(m->comp_object, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m); evas_object_del(m->mirror); - m->mirror = NULL; evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m); - _mirror_unref(m); + free(m); } static Evas_Object * @@ -511,7 +492,6 @@ _mirror_client_new(Mirror *m) o = evas_object_smart_add(m->sd->e, _mirror_client_smart); mb = evas_object_smart_data_get(o); mb->m = m; - _mirror_ref(m); mb->frame = edje_object_add(m->sd->e); evas_object_name_set(mb->frame, "mirror_border"); _mirror_client_theme_setup(mb, mb->frame); @@ -676,7 +656,6 @@ _e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj) m->ec = ec; m->sd = sd; m->mirror = o; - m->ref = 1; evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m); evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m); evas_object_event_callback_add(obj, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m); -- 2.7.4