summaryrefslogtreecommitdiff
path: root/pixman/pixman-region16.c
diff options
context:
space:
mode:
authorMaximilian Grothusmann <maxi@own-hero.net>2008-06-13 12:44:50 -0700
committerDonnie Berkholz <dberkholz@gentoo.org>2008-06-13 12:44:50 -0700
commit29d144712e558aaeb49f4384028dd669d76a410b (patch)
tree000591f713aa8cf271a6f66915348a1896d4a6b4 /pixman/pixman-region16.c
parent5d32519316b40b35113c6df9e15d955a16709ba2 (diff)
downloadpixman-29d144712e558aaeb49f4384028dd669d76a410b.tar.gz
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.
Diffstat (limited to 'pixman/pixman-region16.c')
-rw-r--r--pixman/pixman-region16.c5
1 files changed, 4 insertions, 1 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"