diff --git a/src/corelib/world.c b/src/corelib/world.c index 4f78b6c..0036b7f 100644 --- a/src/corelib/world.c +++ b/src/corelib/world.c @@ -1,5 +1,6 @@ #include "world.h" #include "memory.h" +#include "assert.h" #include "math/vec.h" #include "object.h" @@ -18,18 +19,19 @@ int _expand_world() { new_num = 16; } object_t** new_list = realloc(_world_objects.objects, new_num * sizeof(object_t*)); - if(new_list == NULL) { - printf("ERROR: failed to expand world when requesting additional objects\n"); - return 0; - } else { - for(size_t i = _world_objects.num; i < new_num; ++i) { - new_list[i] = NULL; - } - _world_objects.objects = new_list; - _world_objects.num = new_num; - return 1; + if(new_list == NULL) { + assert(!"ERROR: Out of memory"); + exit(-10); } + + for(size_t i = _world_objects.num; i < new_num; ++i) { + new_list[i] = NULL; + } + + _world_objects.objects = new_list; + _world_objects.num = new_num; + return 1; } static inline @@ -40,11 +42,8 @@ size_t _find_free_object() { } } size_t num = _world_objects.num; - if(_expand_world()) { - return num; - } else { - return NULL; - } + _expand_world(); + return num; } void world_clear() {