[cairo-commit] Branch '1.4' - pixman/src

Carl Worth cworth at kemper.freedesktop.org
Thu Feb 14 16:44:14 PST 2008


 pixman/src/pixregion.c |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit e7fe79aafe0c0be7badbb659442c2f834fbea9f3
Author: Jan Slupski <jslupski at juljas.net>
Date:   Fri Feb 15 00:55:30 2008 +0100

    Fix for a memory leak in pixman.
    
    Port of a 1.6 fix for a memory leak in pixman_region_init_rects/pixman_rect_alloc
    when the count of boxes is 0.

diff --git a/pixman/src/pixregion.c b/pixman/src/pixregion.c
index 1ed3ad7..d6caf6c 100644
--- a/pixman/src/pixregion.c
+++ b/pixman/src/pixregion.c
@@ -355,6 +355,15 @@ pixman_region_init_rects(pixman_region16_t *region, pixman_box16_t *boxes, int c
     }
 
     pixman_region_init(region);
+
+    /* if it's 0, don't call pixman_rect_alloc -- 0 rectangles is
+     * a special case, and causing pixman_rect_alloc would cause
+     * us to leak memory (because the 0-rect case should be the
+     * static pixman_region_emptyData data).
+     */
+    if (count == 0)
+        return PIXMAN_REGION_STATUS_SUCCESS;
+
     if (!pixman_rect_alloc(region, count))
 	return PIXMAN_REGION_STATUS_FAILURE;
 


More information about the cairo-commit mailing list