xref: /lighttpd1.4/src/vector.c (revision 9b7a32ea)
1 #include "first.h"
2 
3 #include "vector.h"
4 
5 #include <stdlib.h>
6 #include <string.h>
7 
8 void vector_free(void *data) { free(data); }
9 
10 void *vector_malloc(size_t sz) { return malloc(sz); }
11 
12 void *vector_realloc(void *data, size_t elem_size, size_t size, size_t used) {
13 	const size_t total_size = elem_size * size;
14 	const size_t used_size = elem_size * used;
15 	force_assert(size <= SIZE_MAX / elem_size);
16 	data = realloc(data, total_size);
17 	force_assert(NULL != data);
18 
19 	/* clear new memory */
20 	memset(((char*)data) + used_size, 0, total_size - used_size);
21 
22 	return data;
23 }
24