this code appears to be functionally identical, yet one version breaks the world.
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 4 Jul 2012 08:29:30 +0000 (08:29 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 4 Jul 2012 08:29:30 +0000 (08:29 +0000)
SVN revision: 73258

src/bin/e_widget.c

index 93da449..696946d 100644 (file)
@@ -514,11 +514,14 @@ static void
 _e_smart_del(Evas_Object *obj)
 {
    INTERNAL_ENTRY;
-   Evas_Object *o;
 
    if (sd->del_func) sd->del_func(obj);
-   EINA_LIST_FREE(sd->subobjs, o)
-     evas_object_del(o);
+   while (sd->subobjs)
+     {
+        Evas_Object *sobj = sd->subobjs->data;
+        evas_object_del(sobj);
+        sd->subobjs = eina_list_remove(sd->subobjs, sobj);
+     }
    free(sd);
 }