As I said in my initial mail, this was pushed accidentally during testing. I've been working with you on the open audit in phabricator and had no intention of making related changes until this had been confirmed as completely resolved in all cases.
On Wed, Sep 23, 2015 at 9:15 AM Carsten Haitzler <[email protected]> wrote: > On Tue, 22 Sep 2015 10:08:46 -0700 Mike Blumenkrantz > <[email protected]> said: > > > the crash is back again now. same backtraces, same issue. not fixed. > please put > back my refcounting as it fixes things to not crash. until you actually > find > the REAL root cause... as i said before - i identified that mb->m is > pointing > to junk. it obviously is being freed too soon. refcounting is a standard > way to > fix things - keep them around as long as they are referenced. i hit this > all > the time now (the crash). > > > discomfitor pushed a commit to branch master. > > > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id=2373b69c61d7d6ab74675a4facff54601831ce9a > > > > commit 2373b69c61d7d6ab74675a4facff54601831ce9a > > Author: Mike Blumenkrantz <[email protected]> > > Date: Tue Sep 22 12:54:10 2015 -0400 > > > > 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); > > > > -- > > > > > > > -- > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > The Rasterman (Carsten Haitzler) [email protected] > > ------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
