summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-01-17 14:40:58 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-01-22 15:11:22 +0100
commitbaa787008269a26f79dc1f95f4d0ce0d9d16a204 (patch)
tree20975ad9a5146f7b3ac83e377182d39a525df1c2
parent55118cac119df8d2823c3f33e88fdc9bee9e6643 (diff)
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
-rw-r--r--src/lib/evas/canvas/evas_object_box.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c
index 7a7173eb25..7853ee3e10 100644
--- a/src/lib/evas/canvas/evas_object_box.c
+++ b/src/lib/evas/canvas/evas_object_box.c
@@ -412,18 +412,16 @@ _evas_box_efl_canvas_group_group_add(Eo *eo_obj, Evas_Object_Box_Data *priv)
412EOLIAN static void 412EOLIAN static void
413_evas_box_efl_canvas_group_group_del(Eo *o, Evas_Object_Box_Data *priv) 413_evas_box_efl_canvas_group_group_del(Eo *o, Evas_Object_Box_Data *priv)
414{ 414{
415 Eina_List *l; 415 while (priv->children)
416
417 l = priv->children;
418 while (l)
419 { 416 {
420 Evas_Object_Box_Option *opt = l->data; 417 Evas_Object_Box_Option *opt = eina_list_data_get(priv->children);
421 418
422 _evas_object_box_child_callbacks_unregister(opt->obj, o); 419 _evas_object_box_child_callbacks_unregister(opt->obj, o);
423 evas_obj_box_internal_option_free(o, opt); 420 evas_obj_box_internal_option_free(o, opt);
424 l = eina_list_remove_list(l, l); 421 priv->children = eina_list_remove_list(priv->children, priv->children);
425 } 422 }
426 423
424
427 if (priv->layout.data && priv->layout.free_data) 425 if (priv->layout.data && priv->layout.free_data)
428 priv->layout.free_data(priv->layout.data); 426 priv->layout.free_data(priv->layout.data);
429 427