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;

-- 


Reply via email to