else
{
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if (header_list)
{
Eina_List *in_l;
+ Eina_List *in_l_next;
Elm_Store_Item *sti;
- EINA_LIST_FOREACH(header_list, in_l, sti)
+ EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, sti)
{
- if (sti->fetch_th)
- {
- ecore_thread_cancel(sti->fetch_th);
- sti->fetch_th = NULL;
- }
-
- if (st->cb.item_free.func)
- {
- st->cb.item_free.func(st->cb.item_free.data, sti->item_info);
- }
-
- if (sti->fetched)
+ if(sti)
{
- int index = elm_store_item_index_get(sti);
- _item_unfetch(st, index);
+ if (sti->fetch_th)
+ {
+ ecore_thread_cancel(sti->fetch_th);
+ sti->fetch_th = NULL;
+ }
+ if (st->cb.item_free.func)
+ {
+ st->cb.item_free.func(st->cb.item_free.data, sti->item_info);
+ }
+ if (sti->fetched)
+ {
+ int index = elm_store_item_index_get(sti);
+ _item_unfetch(st, index);
+ }
+ LKD(sti->lock);
+ // free(sti);
}
- LKD(sti->lock);
- free(sti);
}
}
}
int in_index = 0;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if(header_list)
{
int in_index = 0;
Elm_Store_Item *sti;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if(header_list)
{
static const Elm_Store_Item_Mapping *
_item_mapping_find(Elm_Store_Item *sti, const char *part)
{
- if (!EINA_MAGIC_CHECK(sti, ELM_STORE_ITEM_MAGIC)) return;
+ if (!EINA_MAGIC_CHECK(sti, ELM_STORE_ITEM_MAGIC)) return NULL;
const Elm_Store_Item_Mapping *m;
for (m = sti->item_info->mapping; m; m++)
}
static void
-_item_realized(void *data, Evas_Object *obj __UNUSED__, void *event_info)
+_item_realized(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
/* EINA_SAFETY_ON_NULL_RETURN(data);
EINA_SAFETY_ON_NULL_RETURN(event_info);
}
static void
-_item_unrealized(void *data, Evas_Object *obj __UNUSED__, void *event_info)
+_item_unrealized(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
/* EINA_SAFETY_ON_NULL_RETURN(data);
EINA_SAFETY_ON_NULL_RETURN(event_info);
{
Eina_Bool header_add = EINA_TRUE;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if(header_list)
{
Eina_Bool last_header = EINA_TRUE;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if (header_list)
{
if (sti->item_info->group_index == sti->item_info->pre_group_index)
{
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if(header_list)
{
if (header_item->item_info->group_index == sti->item_info->group_index)
{
Eina_List *in_l;
+ Eina_List *in_l_next;
Elm_Store_Item *item;
- EINA_LIST_FOREACH(header_list, in_l, item)
+ EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, item)
{
if(item)
{
{
Eina_Bool last_add = EINA_TRUE;
Eina_List *in_l;
+ Eina_List *in_l_next;
Elm_Store_Item *comp_item;
- EINA_LIST_FOREACH(header_list, in_l, comp_item)
+ EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item)
{
if(comp_item)
{
{
Eina_Bool normal_add = EINA_TRUE;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if (header_list)
{
Elm_Store_Item *header_item = eina_list_nth(header_list, 0);
- if (header_item->item_info->group_index == sti->item_info->group_index)
+ if(header_item)
{
- int item_index = 0;
- Eina_List *in_l;
- Elm_Store_Item *comp_item;
-
- EINA_LIST_FOREACH(header_list, in_l, comp_item)
+ if (header_item->item_info->group_index == sti->item_info->group_index)
{
- if (comp_item )
+ Eina_List *in_l;
+ Eina_List *in_l_next;
+ Elm_Store_Item *comp_item;
+
+ EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item)
{
- if(normal_add == EINA_FALSE)
- {
- comp_item->item_info->index++;
- }
- else
+ if (comp_item )
{
- int sort;
- if (st->cb.item_sort.func)
+ if(normal_add == EINA_FALSE)
{
- sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, comp_item->item_info);
+ comp_item->item_info->index++;
+ }
+ else
+ {
+ int sort;
+ if (st->cb.item_sort.func)
+ {
+ sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, comp_item->item_info);
- if(sort == ELM_STORE_ITEM_SORT_LOW)
+ if(sort == ELM_STORE_ITEM_SORT_LOW)
+ {
+ sti->item_info->index = comp_item->item_info->index;
+ comp_item->item_info->index++;
+ header_list = eina_list_prepend_relative(header_list, sti, comp_item);
+ st->total_item_count++;
+ sti->item = elm_genlist_item_insert_before(st->genlist,
+ itc,
+ sti,
+ header_item->item,
+ comp_item->item,
+ ELM_GENLIST_ITEM_NONE,
+ (Evas_Smart_Cb)sti->store->cb.item_select.func,
+ (void *)sti->store->cb.item_select.data);
+ normal_add = EINA_FALSE;
+ elm_store_item_update(sti);
+ }
+ }
+ else
{
- sti->item_info->index = comp_item->item_info->index;
- comp_item->item_info->index++;
- header_list = eina_list_prepend_relative(header_list, sti, comp_item);
+ Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1);
+ sti->item_info->index = eina_list_count(header_list);
+ header_list = eina_list_append(header_list, sti);
st->total_item_count++;
- sti->item = elm_genlist_item_insert_before(st->genlist,
- itc,
- sti,
- header_item->item,
- comp_item->item,
- ELM_GENLIST_ITEM_NONE,
- (Evas_Smart_Cb)sti->store->cb.item_select.func,
- (void *)sti->store->cb.item_select.data);
+ sti->item = elm_genlist_item_insert_after(st->genlist,
+ itc,
+ sti,
+ header_item->item,
+ last_sti->item,
+ ELM_GENLIST_ITEM_NONE,
+ (Evas_Smart_Cb)sti->store->cb.item_select.func,
+ (void *)sti->store->cb.item_select.data);
normal_add = EINA_FALSE;
elm_store_item_update(sti);
+ break;
}
}
- else
- {
- Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1);
- sti->item_info->index = eina_list_count(header_list);
- header_list = eina_list_append(header_list, sti);
- st->total_item_count++;
- sti->item = elm_genlist_item_insert_after(st->genlist,
- itc,
- sti,
- header_item->item,
- last_sti->item,
- ELM_GENLIST_ITEM_NONE,
- (Evas_Smart_Cb)sti->store->cb.item_select.func,
- (void *)sti->store->cb.item_select.data);
- normal_add = EINA_FALSE;
- elm_store_item_update(sti);
- break;
- }
}
}
- }
- if(normal_add)
- {
- Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1);
- sti->item_info->index = eina_list_count(header_list);
- header_list = eina_list_append(header_list, sti);
- st->total_item_count++;
- sti->item = elm_genlist_item_insert_after(st->genlist,
- itc,
- sti,
- header_item->item,
- last_sti->item,
- ELM_GENLIST_ITEM_NONE,
- (Evas_Smart_Cb)sti->store->cb.item_select.func,
- (void *)sti->store->cb.item_select.data);
- normal_add = EINA_FALSE;
- elm_store_item_update(sti);
- }
- if(normal_add == EINA_FALSE)
- {
- break;
+ if(normal_add)
+ {
+ Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1);
+ sti->item_info->index = eina_list_count(header_list);
+ header_list = eina_list_append(header_list, sti);
+ st->total_item_count++;
+ sti->item = elm_genlist_item_insert_after(st->genlist,
+ itc,
+ sti,
+ header_item->item,
+ last_sti->item,
+ ELM_GENLIST_ITEM_NONE,
+ (Evas_Smart_Cb)sti->store->cb.item_select.func,
+ (void *)sti->store->cb.item_select.data);
+ normal_add = EINA_FALSE;
+ elm_store_item_update(sti);
+ }
+ if(normal_add == EINA_FALSE)
+ {
+ break;
+ }
}
}
}
{
int index = 0;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if (header_list)
{
Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0);
- if (sti->item_info->group_index == temp_sti->item_info->group_index)
+ if(temp_sti)
{
- Eina_List *in_l;
- Elm_Store_Item *comp_item;
-
- EINA_LIST_FOREACH(header_list, in_l, comp_item)
+ if (sti->item_info->group_index == temp_sti->item_info->group_index)
{
- if(comp_item)
+ Eina_List *in_l;
+ Eina_List *in_l_next;
+ Elm_Store_Item *comp_item;
+
+ EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item)
{
- if (comp_item->item_info->index == sti->item_info->index)
- {
- return index;
- }
- else
+ if(comp_item)
{
- index++;
+ if (comp_item->item_info->index == sti->item_info->index)
+ {
+ return index;
+ }
+ else
+ {
+ index++;
+ }
}
}
}
- }
- else
- {
- index = index + eina_list_count(header_list);
+ else
+ {
+ index = index + eina_list_count(header_list);
+ }
}
}
}
int index = 0;
int group_item_count = 0;
Eina_List *l;
+ Eina_List *l_next;
Eina_List *header_list;
- EINA_LIST_FOREACH(st->header_items, l, header_list)
+ EINA_LIST_FOREACH_SAFE(st->header_items, l, l_next, header_list)
{
if (header_list)
{
if (temp_sti->item_info->group_index == sti->item_info->group_index)
{
Eina_List *in_l;
+ Eina_List *in_l_next;
Elm_Store_Item *comp_item;
- EINA_LIST_FOREACH(header_list, in_l, comp_item)
+ EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item)
{
if(comp_item)
{
}
if(sti->data) elm_genlist_item_update(sti->item);
}
- else
- {
- if(sti->data) elm_genlist_item_update(sti->item);
- }
}
/**