summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2015-04-30 17:12:55 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-05-05 10:17:00 +0200
commit28e66c23b66b5367232fff55eb4422559dbf11b5 (patch)
tree73b32266db5e56dc4c35539b74585053d352cae4
parentcb6f13eb6f3b38382aa00842fc83ae88f89b272b (diff)
downloadefl-28e66c23b66b5367232fff55eb4422559dbf11b5.tar.gz
evas: prevent infinite loop when there is no image we can remove.
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_image.c6
1 files changed, 5 insertions, 1 deletions
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 d9e8c4befa..09d999bf5e 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;