use safe list iterating when clearing a gadget site during shutdown

demo gadgets are immediately removed when deleted, leading to list
corruption unless a safe iterator is used
This commit is contained in:
Mike Blumenkrantz 2017-06-23 17:41:39 -04:00
parent 9fa3fdfc78
commit 8b8703cfa6
1 changed files with 2 additions and 2 deletions

View File

@ -1283,7 +1283,7 @@ _site_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
{
E_Gadget_Site *zgs = data;
E_Gadget_Config *zgc;
Eina_List *l;
Eina_List *l, *ll;
E_FREE_FUNC(zgs->events, evas_object_del);
zgs->layout = NULL;
@ -1292,7 +1292,7 @@ _site_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
zgs->style_cb = NULL;
E_FREE_FUNC(zgs->move_handler, ecore_event_handler_del);
E_FREE_FUNC(zgs->mouse_up_handler, ecore_event_handler_del);
EINA_LIST_FOREACH(zgs->gadgets, l, zgc)
EINA_LIST_FOREACH_SAFE(zgs->gadgets, l, ll, zgc)
evas_object_del(zgc->display);
if (zgs->name) return;
eina_stringshare_del(zgs->name);