From 285f5bec5bb03d4e825e5d866e94008088dd6155 Mon Sep 17 00:00:00 2001 From: xleroy Date: Sat, 9 Aug 2008 08:06:33 +0000 Subject: Ajout nouveaux tests git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@708 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/raytracer/arrays.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/raytracer/arrays.c (limited to 'test/raytracer/arrays.c') diff --git a/test/raytracer/arrays.c b/test/raytracer/arrays.c new file mode 100644 index 00000000..43508ee6 --- /dev/null +++ b/test/raytracer/arrays.c @@ -0,0 +1,30 @@ +#include "config.h" +#include "arrays.h" + +struct array * alloc_array(int eltsize, int initialsize) +{ + struct array * a = arena_alloc(sizeof(struct array)); + a->size = 0; + a->capacity = initialsize; + a->data = arena_alloc(eltsize * initialsize); + return a; +} + +void grow_array(int eltsize, struct array * arr) +{ + void * newdata = arena_alloc(arr->capacity * 2 * eltsize); + memcpy(newdata, arr->data, arr->size * eltsize); + arr->data = newdata; + arr->capacity *= 2; +} + +struct array * copy_array(int eltsize, struct array * arr, int extrasize) +{ + struct array * a = arena_alloc(sizeof(struct array)); + a->size = arr->size; + a->capacity = arr->size + extrasize; + a->data = arena_alloc(eltsize * a->capacity); + memcpy(a->data, arr->data, eltsize * a->size); + return a; +} + -- cgit