From: hermet Date: Fri, 11 Nov 2011 16:29:15 +0000 (+0000) Subject: elementary/map - patched by Bluezery(ohpowel@gmail.com) X-Git-Tag: REL_F_I9500_20120323_1~17^2~1348 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0853217e9c777cc40da0012d4e5e3f1a9f3f028a;p=framework%2Fuifw%2Felementary.git elementary/map - patched by Bluezery(ohpowel@gmail.com) Hi, There are bugs that map removes list elements when using EINA_LIST_FOREACH or EINA_LIST_REVERSE_FOREACH. We should use EINA_LIST_FOREACH_SAFE or EINA_LIST_REVERSE_FOREACH_SAFE instead for above case. Please review belows git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@65069 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/elm_map.c b/src/lib/elm_map.c index 0af009f..9c6abaa 100644 --- a/src/lib/elm_map.c +++ b/src/lib/elm_map.c @@ -1240,7 +1240,7 @@ _process_download_list(Evas_Object *obj) { ELM_CHECK_WIDTYPE(obj, widtype); Widget_Data *wd = elm_widget_data_get(obj); - Eina_List *l; + Eina_List *l, *ll; Evas_Coord ox, oy, ow, oh, cvx, cvy, cvw, cvh, tx, ty, gw, gh, xx, yy, ww, hh; Grid_Item *gi; @@ -1250,7 +1250,7 @@ _process_download_list(Evas_Object *obj) gw = wd->size.w; gh = wd->size.h; - EINA_LIST_FOREACH(wd->download_list, l, gi) + EINA_LIST_FOREACH_SAFE(wd->download_list, l, ll, gi) { xx = gi->out.x; yy = gi->out.y; @@ -1279,7 +1279,7 @@ _process_download_list(Evas_Object *obj) } } - EINA_LIST_REVERSE_FOREACH(wd->download_list, l, gi) + EINA_LIST_REVERSE_FOREACH_SAFE(wd->download_list, l, ll, gi) { if (gi->wd->download_num >= MAX_CONCURRENT_DOWNLOAD) break;