From 29d144712e558aaeb49f4384028dd669d76a410b Mon Sep 17 00:00:00 2001 From: Maximilian Grothusmann Date: Fri, 13 Jun 2008 12:44:50 -0700 Subject: [PATCH] Fix memory leak by freeing boxes{16,32}. After calling pixman_region_init_rects() or pixman_region32_init_rects(), boxes{16,32} were not freed before returning. Fixes bug 16312. --- pixman/pixman-region16.c | 5 ++++- pixman/pixman-region32.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pixman/pixman-region16.c b/pixman/pixman-region16.c index 1a0edfe..869e18d 100644 --- a/pixman/pixman-region16.c +++ b/pixman/pixman-region16.c @@ -47,6 +47,7 @@ pixman_region16_copy_from_region32 (pixman_region16_t *dst, int n_boxes, i; pixman_box32_t *boxes32; pixman_box16_t *boxes16; + pixman_bool_t retval; boxes32 = pixman_region32_rectangles (src, &n_boxes); @@ -64,7 +65,9 @@ pixman_region16_copy_from_region32 (pixman_region16_t *dst, } pixman_region_fini (dst); - return pixman_region_init_rects (dst, boxes16, n_boxes); + retval = pixman_region_init_rects (dst, boxes16, n_boxes); + free (boxes16); + return retval; } #include "pixman-region.c" diff --git a/pixman/pixman-region32.c b/pixman/pixman-region32.c index 4b5598d..6e083b5 100644 --- a/pixman/pixman-region32.c +++ b/pixman/pixman-region32.c @@ -45,6 +45,7 @@ pixman_region32_copy_from_region16 (pixman_region32_t *dst, int n_boxes, i; pixman_box16_t *boxes16; pixman_box32_t *boxes32; + pixman_bool_t retval; boxes16 = pixman_region_rectangles (src, &n_boxes); @@ -62,7 +63,9 @@ pixman_region32_copy_from_region16 (pixman_region32_t *dst, } pixman_region32_fini (dst); - return pixman_region32_init_rects (dst, boxes32, n_boxes); + retval = pixman_region32_init_rects (dst, boxes32, n_boxes); + free (boxes32); + return retval; } #include "pixman-region.c" -- 2.7.4