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