diff --git a/src/arena_allocator.c b/src/arena_allocator.c index 2656040..233d6e2 100644 --- a/src/arena_allocator.c +++ b/src/arena_allocator.c @@ -21,8 +21,8 @@ Arena arena_init(Arena *parent, size_t capacity) { if (parent != NULL) { // Allocate new arena in parent to reduce likelyhood of loss Arena *current_arena = arena_alloc(parent, sizeof(Arena)); - *current_arena = (Arena){ - .begin = region, .end = region, .child = NULL, .sibling = NULL}; + *current_arena = + (Arena){.begin = region, .end = region, .child = NULL, .sibling = NULL}; // if parent has no children this arena is now it's child if (parent->child == NULL) { @@ -66,6 +66,8 @@ void arena_deinit(Arena *arena) { } void *arena_alloc(Arena *arena, size_t size) { + // TODO: only align when needed + size = (size + 7) & ~7; // align size increase to multiple of 8 Region *region = arena->end; assert(region != NULL); diff --git a/src/main.c b/src/main.c index 2f94416..9eeb1ca 100644 --- a/src/main.c +++ b/src/main.c @@ -13,14 +13,14 @@ int main(int argc, char *argv[]) { // arena allocation test - printf("Allocation test"); + printf("Allocation test\n"); Arena global_arena = arena_init(NULL, 0); for (int i = 0; i <= 1048576+100; i++) { int *number = arena_alloc(&global_arena, sizeof(int)); *number = 42; } - printf("children test"); + printf("children test\n"); // arena children test Arena child_arena = arena_init(&global_arena, 0); @@ -29,6 +29,7 @@ int main(int argc, char *argv[]) { arena_deinit(&global_arena); + printf("tests complete\n"); }