Moving files, first attempt at gcrypt compatibility, more interface
[oweals/tinc.git] / src / pokey / array.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #include "myalloc.h"
5 #include "array.h"
6
7 void *array_add(array_t *array, void *element)
8 {
9   if(!array)
10     return NULL;
11
12   if(array->allocated == 0)
13     {
14       array->allocated = 4;
15       array->data = xcalloc(array->allocated, sizeof(void*));
16       array->elements = 0;
17     }
18
19   if(array->elements >= array->allocated - 1)
20     {
21       int newalloc;
22
23       newalloc = array->allocated << 1;
24       array->data = xrealloc(array->data, newalloc * sizeof(void*));
25       array->allocated = newalloc;
26     }
27
28   array->data[array->elements] = element;
29   array->elements++;
30   return element;
31 }
32
33 array_t *array_create(void)
34 {
35   array_t *r;
36
37   r = xcalloc(1, sizeof(*r));
38   return r;
39 }
40
41 void array_free(array_t *array)
42 {
43   free(array->data);
44   free(array);
45 }