aboutsummaryrefslogtreecommitdiff
path: root/pixman/test/alphamap.c
diff options
context:
space:
mode:
Diffstat (limited to 'pixman/test/alphamap.c')
-rw-r--r--pixman/test/alphamap.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/pixman/test/alphamap.c b/pixman/test/alphamap.c
index eb7a330f9..6d150cf69 100644
--- a/pixman/test/alphamap.c
+++ b/pixman/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 *