[Piglit] [PATCH] Use malloc instead of variable size arrays.

jfonseca at vmware.com jfonseca at vmware.com
Thu Feb 9 03:59:10 PST 2012


From: José Fonseca <jfonseca at vmware.com>

As the latter are not supported on MSVC.
---
 tests/spec/arb_copy_buffer/overlap.c               |   12 ++++++++-
 .../ext_texture_integer/getteximage-clamping.c     |   24 ++++++++++++++-----
 2 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/tests/spec/arb_copy_buffer/overlap.c b/tests/spec/arb_copy_buffer/overlap.c
index 2e9f2de..7b6cf7b 100644
--- a/tests/spec/arb_copy_buffer/overlap.c
+++ b/tests/spec/arb_copy_buffer/overlap.c
@@ -42,11 +42,14 @@ int piglit_window_mode = GLUT_RGB | GLUT_DOUBLE;
 static void
 test_copy(GLenum usage, int data_size, int src, int dst, int size)
 {
-	uint8_t data[data_size];
-	uint8_t expected[data_size];
+	uint8_t *data;
+	uint8_t *expected;
 	uint8_t *ptr;
 	int i;
 
+	data = (uint8_t *)malloc(data_size);
+	expected = (uint8_t *)malloc(data_size);
+
 	for (i = 0; i < data_size; i++) {
 		data[i] = i;
 	}
@@ -66,6 +69,8 @@ test_copy(GLenum usage, int data_size, int src, int dst, int size)
 				src, dst, size);
 			piglit_report_result(PIGLIT_FAIL);
 		} else {
+			free(expected);
+			free(data);
 			return;
 		}
 	} else {
@@ -99,6 +104,9 @@ test_copy(GLenum usage, int data_size, int src, int dst, int size)
 		piglit_report_result(PIGLIT_FAIL);
 	}
 	glUnmapBuffer(GL_COPY_READ_BUFFER);
+
+	free(expected);
+	free(data);
 }
 
 enum piglit_result
diff --git a/tests/spec/ext_texture_integer/getteximage-clamping.c b/tests/spec/ext_texture_integer/getteximage-clamping.c
index 16b4fba..969a314 100644
--- a/tests/spec/ext_texture_integer/getteximage-clamping.c
+++ b/tests/spec/ext_texture_integer/getteximage-clamping.c
@@ -375,13 +375,12 @@ read_format(const struct format_info *tex_info,
 	    const struct read_format_info *read_info,
 	    uint32_t texels[][4], int num_texels)
 {
-	char expected[num_texels * 4 * sizeof(uint32_t)];
-	char read[num_texels * 4 * sizeof(uint32_t)];
+	size_t texels_size = num_texels * 4 * sizeof(uint32_t);
+	char *expected;
+	char *read;
 	int i;
 	int chans = 0;
-
-	memset(expected, 0xd0, sizeof(expected));
-	memset(read, 0xd0, sizeof(read));
+	enum piglit_result result;
 
 	if (!test_rg && (read_info->format == GL_RED_INTEGER ||
 			 read_info->format == GL_RG_INTEGER)) {
@@ -413,6 +412,12 @@ read_format(const struct format_info *tex_info,
 	printf("Reading from %s to %s/%s\n", tex_info->name,
 	       read_info->format_name, read_info->type_name);
 
+	expected = (char *)malloc(texels_size);
+	read = (char *)malloc(texels_size);
+
+	memset(expected, 0xd0, texels_size);
+	memset(read, 0xd0, texels_size);
+
 	glGetTexImage(GL_TEXTURE_2D, 0,
 		      read_info->format, read_info->type, read);
 
@@ -499,10 +504,15 @@ read_format(const struct format_info *tex_info,
 	if (memcmp(expected, read, num_texels * chans * read_info->size / 8)) {
 		report_fail(tex_info, read_info, texels, read, expected,
 			    num_texels, chans);
-		return PIGLIT_FAIL;
+		result = PIGLIT_FAIL;
+	} else {
+		result = PIGLIT_PASS;
 	}
 
-	return PIGLIT_PASS;
+	free(read);
+	free(expected);
+
+	return result;
 }
 
 static enum piglit_result
-- 
1.7.7.3



More information about the Piglit mailing list