diff options
-rw-r--r-- | src/lib/evas/canvas/evas_object_image.c | 2 | ||||
-rw-r--r-- | src/modules/evas/engines/gl_common/evas_gl_image.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 1e8e32cd94..84e08fcce1 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -284,8 +284,8 @@ _evas_image_init_set(const Eina_File *f, const char *key, ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_FALSE); } ENFN->image_free(ENC, o->engine_data); + o->engine_data = NULL; } - o->engine_data = NULL; o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; if (!lo) return; lo->emile.scale_down_by = o->load_opts->scale_down_by; 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 c63e22ecc3..7d05cab15d 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -702,6 +702,10 @@ evas_gl_common_image_free(Evas_GL_Image *im) im->fglyph->ext_dat = NULL; im->fglyph->ext_dat_free = NULL; } + else if ((im->gc) && (im->gc->shared)) + { + im->gc->shared->images = eina_list_remove(im->gc->shared->images, im); + } if (im->gc) evas_gl_common_context_flush(im->gc); |