raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a6253f44a9bc43db621908a78ec3ecbee939fdd2
commit a6253f44a9bc43db621908a78ec3ecbee939fdd2 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Fri Apr 21 15:58:04 2017 +0900 elm widget - fix weak reference messup that causes segv's welm widget weak refered the logical parent slot but never unreffed the weak ref - ever. this should fix that. in fact it does. one crash less with: elementary_test -to "icon standard" @fix --- src/lib/elementary/elm_widget.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index f7af9e6..0afdad7 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -352,6 +352,8 @@ _logical_parent_eval(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *pd) } logical_wd->logical.child_count --; old = pd->logical.parent; + if (pd->logical.parent) + efl_weak_unref(&pd->logical.parent); pd->logical.parent = NULL; } if (parent) @@ -6203,6 +6205,11 @@ _elm_widget_efl_object_destructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED sd->manager.provider = NULL; elm_interface_atspi_accessible_removed(obj); + if (sd->logical.parent) + { + efl_weak_unref(&sd->logical.parent); + sd->logical.parent = NULL; + } } EOLIAN static Eina_Bool --
