wearable/rotary_selector: modify items clear api more safe 94/203894/1
authorTaehyub Kim <taehyub.kim@samsung.com>
Wed, 30 May 2018 07:36:56 +0000 (16:36 +0900)
committerTaehyub Kim <taehyub.kim@samsung.com>
Thu, 18 Apr 2019 05:42:57 +0000 (14:42 +0900)
Change-Id: I8e9552eb614aacbda4578c68245506ef1994da44

src/wearable/efl_extension_rotary_selector.c

index 7fe8a48b84fbffdb8a5aeb60481d516d029feebb..54bae6b149870ef5e42cf5e03eedad4c3ee2ec25 100644 (file)
@@ -3637,7 +3637,7 @@ eext_rotary_selector_item_del(Eext_Object_Item *item)
 EAPI void
 eext_rotary_selector_items_clear(Evas_Object *obj)
 {
-   Eina_List *l;
+   Eina_List *l, *l_next;
    Evas_Object* rotary_selector = obj;
    Eext_Rotary_Selector_Data *rsd = NULL;
    Eext_Rotary_Selector_Item *item = NULL;
@@ -3655,12 +3655,12 @@ eext_rotary_selector_items_clear(Evas_Object *obj)
         return;
      }
 
-   EINA_LIST_FOREACH(rsd->item_list, l, item)
+   EINA_LIST_FOREACH_SAFE(rsd->item_list, l, l_next, item)
      {
         if (item != rsd->add_item)
           {
-             rsd->item_list = eina_list_remove(rsd->item_list, item);
              evas_object_del(item->base.obj);
+             rsd->item_list = eina_list_remove_list(rsd->item_list, l);
           }
      }