diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 6b8fa8b7a6..b4d1bfc8ce 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -873,7 +873,7 @@ eng_image_colorspace_set(void *data EINA_UNUSED, void *image, int cspace) } static void * -eng_image_native_set(void *data EINA_UNUSED, void *image, void *native EINA_UNUSED) +eng_image_native_set(void *data EINA_UNUSED, void *image, void *native) { //return image; Evas_Native_Surface *ns = native; @@ -881,17 +881,16 @@ eng_image_native_set(void *data EINA_UNUSED, void *image, void *native EINA_UNUS if (!im || !ns) return im; - if (!ns) return im; - im2 = evas_cache_image_data(evas_common_image_cache_get(), im->w, im->h, ns->data.x11.visual, 1, EVAS_COLORSPACE_ARGB8888); + if (im->references > 1) + ERR("Setting native with more than one references for im=%p", im); + evas_cache_image_drop(im); - im = im2; - - return im; + return im2; } static void *