Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/engines/xrender_x11


Modified Files:
        evas_engine.c evas_engine_image.c 


Log Message:


fix mem issue

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/xrender_x11/evas_engine.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evas_engine.c       3 Oct 2005 10:20:12 -0000       1.5
+++ evas_engine.c       3 Oct 2005 12:46:15 -0000       1.6
@@ -681,21 +681,26 @@
    
    re = (Render_Engine *)data;
    if (!image) return image;
+   if ((w <= 0) || (h <= 0))
+     {
+       _xre_image_free((XR_Image *)image);
+       return NULL;
+     }
    if (((XR_Image *)image)->references > 1)
      {
        XR_Image *old_image;
 
        old_image = (XR_Image *)image;
        image = _xre_image_copy((XR_Image *)old_image);
-       _xre_image_free(old_image);
+       if (image)
+         {
+            _xre_image_free(old_image);
+         }
+       else
+         image = old_image;
      }
    else
      _xre_image_dirty((XR_Image *)image);
-   if ((w <= 0) || (h <= 0))
-     {
-       _xre_image_free((XR_Image *)image);
-       return NULL;
-     }
    _xre_image_resize((XR_Image *)image, w, h);
    return image;
 }
@@ -713,7 +718,12 @@
 
        old_image = (XR_Image *)image;
        image = _xre_image_copy((XR_Image *)old_image);
-       _xre_image_free(old_image);
+       if (image)
+         {
+            _xre_image_free(old_image);
+         }
+       else
+         image = old_image;
      }
    else
      _xre_image_dirty((XR_Image *)image);
@@ -737,7 +747,9 @@
             old_image = (XR_Image *)image;
             image = _xre_image_copy((XR_Image *)old_image);
             if (image)
-              _xre_image_free(old_image);
+              {
+                 _xre_image_free(old_image);
+              }
             else
               image = old_image;
          }
@@ -786,7 +798,13 @@
        
        old_image = (XR_Image *)image;
        image = _xre_image_copy((XR_Image *)old_image);
-       _xre_image_free(old_image);
+       if (image)
+         {
+            ((XR_Image *)image)->alpha = old_image->alpha;
+            _xre_image_free(old_image);
+         }
+       else
+         image = old_image;
      }
    else
      _xre_image_dirty((XR_Image *)image);
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/xrender_x11/evas_engine_image.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_engine_image.c 3 Oct 2005 10:20:12 -0000       1.3
+++ evas_engine_image.c 3 Oct 2005 12:46:15 -0000       1.4
@@ -48,7 +48,10 @@
    else
      snprintf(buf, sizeof(buf), "/@[EMAIL PROTECTED]@/%s", xinf->disp, 
xinf->root, file);
    im = __xre_image_find(buf);
-   if (im) return im;
+   if (im)
+     {
+       return im;
+     }
    
    im = calloc(1, sizeof(XR_Image));
    if (!im) return NULL;
@@ -179,7 +182,9 @@
        _xre_image_cache_set(_xr_image_cache_size);
      }
    else
-     __xre_image_real_free(im);
+     {
+       __xre_image_real_free(im);
+     }
 }
 
 void




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to