|
|
| version 1.1.1.1, 2013/10/14 10:32:47 | version 1.1.1.2, 2014/06/15 20:20:06 |
|---|---|
| Line 13 array *array_init(void) { | Line 13 array *array_init(void) { |
| array *a; | array *a; |
| a = calloc(1, sizeof(*a)); | a = calloc(1, sizeof(*a)); |
| assert(a); | force_assert(a); |
| a->next_power_of_2 = 1; | a->next_power_of_2 = 1; |
| Line 24 array *array_init_array(array *src) { | Line 24 array *array_init_array(array *src) { |
| size_t i; | size_t i; |
| array *a = array_init(); | array *a = array_init(); |
| if (0 == src->size) return a; | |
| a->used = src->used; | a->used = src->used; |
| a->size = src->size; | a->size = src->size; |
| a->next_power_of_2 = src->next_power_of_2; | a->next_power_of_2 = src->next_power_of_2; |
| Line 72 void array_reset(array *a) { | Line 74 void array_reset(array *a) { |
| data_unset *array_pop(array *a) { | data_unset *array_pop(array *a) { |
| data_unset *du; | data_unset *du; |
| assert(a->used != 0); | force_assert(a->used != 0); |
| a->used --; | a->used --; |
| du = a->data[a->used]; | du = a->data[a->used]; |
| Line 168 void array_set_key_value(array *hdrs, const char *key, | Line 170 void array_set_key_value(array *hdrs, const char *key, |
| data_unset *array_replace(array *a, data_unset *du) { | data_unset *array_replace(array *a, data_unset *du) { |
| int ndx; | int ndx; |
| force_assert(NULL != du); | |
| if (-1 == (ndx = array_get_index(a, du->key->ptr, du->key->used, NULL))) { | if (-1 == (ndx = array_get_index(a, du->key->ptr, du->key->used, NULL))) { |
| array_insert_unique(a, du); | array_insert_unique(a, du); |
| return NULL; | return NULL; |
| Line 211 int array_insert_unique(array *a, data_unset *str) { | Line 214 int array_insert_unique(array *a, data_unset *str) { |
| a->size = 16; | a->size = 16; |
| a->data = malloc(sizeof(*a->data) * a->size); | a->data = malloc(sizeof(*a->data) * a->size); |
| a->sorted = malloc(sizeof(*a->sorted) * a->size); | a->sorted = malloc(sizeof(*a->sorted) * a->size); |
| assert(a->data); | force_assert(a->data); |
| assert(a->sorted); | force_assert(a->sorted); |
| for (j = a->used; j < a->size; j++) a->data[j] = NULL; | for (j = a->used; j < a->size; j++) a->data[j] = NULL; |
| } else if (a->size == a->used) { | } else if (a->size == a->used) { |
| a->size += 16; | a->size += 16; |
| a->data = realloc(a->data, sizeof(*a->data) * a->size); | a->data = realloc(a->data, sizeof(*a->data) * a->size); |
| a->sorted = realloc(a->sorted, sizeof(*a->sorted) * a->size); | a->sorted = realloc(a->sorted, sizeof(*a->sorted) * a->size); |
| assert(a->data); | force_assert(a->data); |
| assert(a->sorted); | force_assert(a->sorted); |
| for (j = a->used; j < a->size; j++) a->data[j] = NULL; | for (j = a->used; j < a->size; j++) a->data[j] = NULL; |
| } | } |