evas_object_box: fix invalidator

the iteration over the content of the box did never cleanup the
children pointer, which resulted in buggy behavior.

This fixes test suite crashes with freeq debugging on.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11123
This commit is contained in:
Marcel Hollerbach 2020-01-17 14:40:58 +01:00
parent 55118cac11
commit baa7870082
1 changed files with 4 additions and 6 deletions

View File

@ -412,18 +412,16 @@ _evas_box_efl_canvas_group_group_add(Eo *eo_obj, Evas_Object_Box_Data *priv)
EOLIAN static void
_evas_box_efl_canvas_group_group_del(Eo *o, Evas_Object_Box_Data *priv)
{
Eina_List *l;
l = priv->children;
while (l)
while (priv->children)
{
Evas_Object_Box_Option *opt = l->data;
Evas_Object_Box_Option *opt = eina_list_data_get(priv->children);
_evas_object_box_child_callbacks_unregister(opt->obj, o);
evas_obj_box_internal_option_free(o, opt);
l = eina_list_remove_list(l, l);
priv->children = eina_list_remove_list(priv->children, priv->children);
}
if (priv->layout.data && priv->layout.free_data)
priv->layout.free_data(priv->layout.data);