static inline void devil_array_regrow(devil_array_t* array) { size_t old_size = array->finish - array->start; size_t new_capacity = (size_t)(array->capacity * 1.5); void** new_elems = (void**)devil_malloc(sizeof(void*) * new_capacity); assert(NULL != new_elems); memmove(new_elems, array->elems, sizeof(void*) * old_size); devil_free(array->elems); array->elems = new_elems; array->start = array->elems; array->finish = array->elems + old_size; array->capacity = new_capacity; }
void devil_array_release(devil_array_t* array) { devil_free(array->elems); devil_free(array); }
void devil_thread_release(devil_thread_t* thread) { devil_thread_join(thread); devil_free(thread); }