cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=28e66c23b66b5367232fff55eb4422559dbf11b5
commit 28e66c23b66b5367232fff55eb4422559dbf11b5 Author: Cedric BAIL <ced...@osg.samsung.com> Date: Thu Apr 30 17:12:55 2015 +0200 evas: prevent infinite loop when there is no image we can remove. --- src/modules/evas/engines/gl_common/evas_gl_image.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c b/src/modules/evas/engines/gl_common/evas_gl_image.c index d9e8c4b..09d999b 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -55,6 +55,7 @@ _evas_gl_image_cache_trim(Evas_Engine_GL_Context *gc) { Evas_GL_Image *im2; Eina_List *l = NULL; + Eina_Bool removed = EINA_FALSE; EINA_LIST_REVERSE_FOREACH(gc->shared->images, l, im2) { @@ -66,11 +67,14 @@ _evas_gl_image_cache_trim(Evas_Engine_GL_Context *gc) im2->gc->shared->images_size -= (im2->csize); evas_gl_common_image_free(im2); l = NULL; + removed = EINA_TRUE; break; } } - if (!gc->shared->images) + + if (!removed || !gc->shared->images) { + ERR("Preventing infinite loop."); // printf("EEK %i > %i, no imgs\n", // gc->shared->images_size, size); break; --