raster pushed a commit to branch master.

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

commit c4a45c75b15a3bcfb8bfd089a02cdaff3b7102f0
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Sat Oct 26 21:09:17 2013 +0900

    evas gl engine related - fix elm image example 01 (T182).
    
    this fixes https://phab.enlightenment.org/T182 as it is an issue with a
    surface alloc overwriting an already allocated surface entirely inside
    the general software image infra.
---
 src/lib/evas/common/evas_image_main.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/lib/evas/common/evas_image_main.c 
b/src/lib/evas/common/evas_image_main.c
index 38aac78..b9d64ce 100644
--- a/src/lib/evas/common/evas_image_main.c
+++ b/src/lib/evas/common/evas_image_main.c
@@ -571,16 +571,18 @@ _evas_common_rgba_image_dirty(Image_Entry *ie_dst, const 
Image_Entry *ie_src)
    evas_common_rgba_image_scalecache_dirty((Image_Entry *)ie_src);
    evas_common_rgba_image_scalecache_dirty(ie_dst);
    evas_cache_image_load_data(&src->cache_entry);
-   if (_evas_common_rgba_image_surface_alloc(&dst->cache_entry,
-                                             src->cache_entry.w, 
src->cache_entry.h))
+   if (!evas_cache_image_pixels(ie_dst))
      {
+        if (_evas_common_rgba_image_surface_alloc(&dst->cache_entry,
+                                                  src->cache_entry.w, 
src->cache_entry.h))
+          {
 #ifdef EVAS_CSERVE2
-        // if (ie_src->data1) evas_cserve2_image_free((Image_Entry*) ie_src);
-        if (ie_src->data1) ERR("Shouldn't reach this point since we are using 
cache2.");
+             // if (ie_src->data1) evas_cserve2_image_free((Image_Entry*) 
ie_src);
+             if (ie_src->data1) ERR("Shouldn't reach this point since we are 
using cache2.");
 #endif
-        return 1;
+             return 1;
+          }
      }
-
 #ifdef EVAS_CSERVE2
    // if (ie_src->data1) evas_cserve2_image_free((Image_Entry*) ie_src);
    if (ie_src->data1) ERR("Shouldn't reach this point since we are using 
cache2.");

-- 


Reply via email to