raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=796e345da1fd8e27c6ada3dd81cacb5f9b4f4aa9

commit 796e345da1fd8e27c6ada3dd81cacb5f9b4f4aa9
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Sat Mar 20 21:58:25 2021 +0000

    evas - gl - stop leaking images and never freeing them from cache
    
    the subject says it all
    
    @fix
---
 src/modules/evas/engines/gl_common/evas_gl_image.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 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 7d05cab15d..3a75852ed0 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_image.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_image.c
@@ -69,10 +69,17 @@ _evas_gl_image_cache_add(Evas_GL_Image *im)
 {
    if (im->references == 0)
      {
-        im->csize = im->w * im->h * 4;
-        im->gc->shared->images_size += im->csize;
-        _evas_gl_image_cache_trim(im->gc);
-        return EINA_TRUE;
+        if (im->cached)
+          {
+             im->csize = im->w * im->h * 4;
+             im->gc->shared->images_size += im->csize;
+             _evas_gl_image_cache_trim(im->gc);
+             if (!eina_list_data_find(im->gc->shared->images, im))
+               { // FIXME for a messed up caching system... this used to be 
simple
+                  im->gc->shared->images = 
eina_list_prepend(im->gc->shared->images, im);
+               }
+             return EINA_TRUE;
+          }
      }
    else
      {

-- 


Reply via email to