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 { --