summaryrefslogtreecommitdiff
blob: e33a84f758f67dbd65590b2962c65ed8dc815c3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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"