summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2010-10-08 07:44:20 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2010-10-11 12:06:20 -0400
commite46be417cebac984a858da05e61d924889695c9e (patch)
tree88e6be3785e4c4185fa490a38c9c6bff0c8aa2ab
parent6ed7164de5f74b752d85834b53e89810f1d0a560 (diff)
Plug leak in the alphamap test.
The images are being created with non-NULL data, so we have to free it outselves. This is important because the Cygwin tinderbox is running out of memory and produces this: mmap failed on 20000 1507328 mmap failed on 40000 1507328 mmap failed on 20000 1507328 mmap failed on 40000 1507328 mmap failed on 40000 1507328 mmap failed on 40000 1507328 http://tinderbox.x.org/builds/2010-10-05-0014/logs/pixman/#check
-rw-r--r--test/alphamap.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/alphamap.c b/test/alphamap.c
index 09de3876..6013e630 100644
--- a/test/alphamap.c
+++ b/test/alphamap.c
@@ -45,15 +45,29 @@ format_name (pixman_format_code_t format)
return "<unknown - bug in alphamap.c>";
}
+static void
+on_destroy (pixman_image_t *image, void *data)
+{
+ uint32_t *bits = pixman_image_get_data (image);
+
+ fence_free (bits);
+}
+
static pixman_image_t *
make_image (pixman_format_code_t format)
{
uint32_t *bits;
uint8_t bpp = PIXMAN_FORMAT_BPP (format) / 8;
+ pixman_image_t *image;
bits = (uint32_t *)make_random_bytes (WIDTH * HEIGHT * bpp);
- return pixman_image_create_bits (format, WIDTH, HEIGHT, bits, WIDTH * bpp);
+ image = pixman_image_create_bits (format, WIDTH, HEIGHT, bits, WIDTH * bpp);
+
+ if (image && bits)
+ pixman_image_set_destroy_function (image, on_destroy, NULL);
+
+ return image;
}
static pixman_image_t *