Mercurial > code
comparison array.c @ 93:9ebea85c7765
Use pointer instead of copying variable in ARRAY_FOREACH, then you can modify it
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 04 Jan 2012 13:21:15 +0100 |
parents | 4d723e81b685 |
children | b1a084c030c8 |
comparison
equal
deleted
inserted
replaced
92:4d723e81b685 | 93:9ebea85c7765 |
---|---|
25 #define OFFSET(x) (arr->unit * (x)) | 25 #define OFFSET(x) (arr->unit * (x)) |
26 | 26 |
27 static int array_grow(struct array *); | 27 static int array_grow(struct array *); |
28 | 28 |
29 int | 29 int |
30 array_new(struct array *arr, size_t unit) | 30 array_init(struct array *arr, size_t unit) |
31 { | 31 { |
32 if (unit == 0) | 32 if (unit == 0) |
33 return -1; | 33 return -1; |
34 | 34 |
35 arr->unit = unit; | 35 arr->unit = unit; |
65 switch (*p) { | 65 switch (*p) { |
66 case 'l': | 66 case 'l': |
67 arr->bsize = va_arg(ap, int); | 67 arr->bsize = va_arg(ap, int); |
68 break; | 68 break; |
69 case 'm': | 69 case 'm': |
70 arr->malloc = va_arg(ap, void * (*)(size_t)); | 70 arr->malloc = va_arg(ap, void *(*)(size_t)); |
71 break; | 71 break; |
72 case 'r': | 72 case 'r': |
73 arr->realloc = va_arg(ap, void *(*)(void *, size_t)); | 73 arr->realloc = va_arg(ap, void *(*)(void *, size_t)); |
74 break; | 74 break; |
75 case 't': | 75 case 't': |