Fix remove by label
authorChristopher Michael <cpmichael1@comcast.net>
Tue, 27 Dec 2005 22:57:41 +0000 (22:57 +0000)
committerChristopher Michael <cpmichael1@comcast.net>
Tue, 27 Dec 2005 22:57:41 +0000 (22:57 +0000)
SVN revision: 19326

src/bin/e_ilist.c

index e69a19795a7fbc878dbabbf6b9a480765160ac3f..984a9a933e78f28e7350e5d3f3cf3c827b54cec0 100644 (file)
@@ -262,22 +262,24 @@ void
 e_ilist_remove_label(Evas_Object *obj, char *label)
 {
    E_Smart_Item *si;
+   Evas_List *l;
+   int i;
    char *t;
    
    API_ENTRY return;
    if (!sd->items) return;
    if (!label) return;
-   while (sd->items
-     {    
-       si = sd->items->data;
+   for (i = 0, l = sd->items; l; l = l->next, i++
+     {
+       si = l->data;
        if (si) 
          {
             t = edje_object_part_text_get(si->base_obj, "label");
             if (!strcmp(t, label)) 
               {
-                 sd->items = evas_list_remove(sd->items, si);
                  if (si->icon_obj) evas_object_del(si->icon_obj);
                  evas_object_del(si->base_obj);
+                 sd->items = evas_list_remove(sd->items, si);
                  free(si);
                  break;
               }