diff --git a/src/bin/e_widget.c b/src/bin/e_widget.c index b53600991..c7d1cfc0c 100644 --- a/src/bin/e_widget.c +++ b/src/bin/e_widget.c @@ -514,14 +514,11 @@ static void _e_smart_del(Evas_Object *obj) { INTERNAL_ENTRY; + Evas_Object *o; if (sd->del_func) sd->del_func(obj); - while (sd->subobjs) - { - Evas_Object *sobj = sd->subobjs->data; - evas_object_del(sobj); - sd->subobjs = eina_list_remove(sd->subobjs, sobj); - } + EINA_LIST_FREE(sd->subobjs, o) + evas_object_del(o); free(sd); }