From aa6d4a3756b8f173d091ccf9f5751b910d6a6b62 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Tue, 29 Oct 2013 15:12:58 +0900 Subject: [PATCH] evas/cserve2: Fix error path in evas_cache2_image_writable() Return NULL and check for nullity in the only calling function. Fixes CID 1039461 (Logically dead code) --- src/lib/evas/cache2/evas_cache2.c | 10 ++++------ .../evas/engines/software_generic/evas_engine.c | 9 ++++++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/lib/evas/cache2/evas_cache2.c b/src/lib/evas/cache2/evas_cache2.c index 35cceb6e65..d4b2b5353b 100644 --- a/src/lib/evas/cache2/evas_cache2.c +++ b/src/lib/evas/cache2/evas_cache2.c @@ -1089,15 +1089,13 @@ evas_cache2_image_writable(Image_Entry *im) evas_cache2_image_pixels(im), im->flags.alpha, im->space); if (!im2) - goto on_error; + { + ERR("Could not create a copy of this image (%dx%d)", im->w, im->h); + return NULL; + } evas_cache2_image_close(im); return im2; - -on_error: - if (im2) - _evas_cache2_image_entry_delete(cache, im2); - return NULL; } EAPI Image_Entry * diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 57766ef34c..b3ab2ce6bc 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -1087,7 +1087,14 @@ eng_image_data_get(void *data EINA_UNUSED, void *image, int to_write, DATA32 **i if (err) *err = error; if (to_write) - im = (RGBA_Image *)evas_cache2_image_writable(&im->cache_entry); + { + im = (RGBA_Image *)evas_cache2_image_writable(&im->cache_entry); + if (!im) + { + *image_data = NULL; + return NULL; + } + } } else #endif