From f981ba92a84c838083ee91f5cba25c26bc8de87b Mon Sep 17 00:00:00 2001 From: laentropia Date: Wed, 13 May 2026 19:57:49 -0600 Subject: [PATCH] refactor: Arena is opaque, init returns error code Is to make it more consistent, i need to change also later arraylist the init function so its also more consistent, next is making alloc ensure capacity first so no using it first or some shit. --- include/arena.h | 12 ++++-------- src/arena.c | 5 +++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/arena.h b/include/arena.h index 2fd778b..b63fdb6 100644 --- a/include/arena.h +++ b/include/arena.h @@ -6,11 +6,7 @@ #include #include -typedef struct { - uint8_t *buffer; - size_t capacity; - size_t offset; -} Arena; +typedef struct Arena Arena; typedef enum { ARENA_OK = 0, @@ -37,7 +33,7 @@ typedef struct { bool is_valid; union { ArenaErr err; - Arena arena; + Arena *arena; }; } ArenaResult; @@ -49,8 +45,8 @@ typedef struct { }; } ArenaSizeResult; -ArenaResult arena_init(size_t capacity); -void arena_destroy(Arena *arena); +ArenaErr arena_init(Arena **arena, size_t capacity); +void arena_destroy(Arena **arena); ArenaPointer arena_alloc(Arena *arena, size_t size, size_t alignment); ArenaPointer arena_push(Arena *arena, void *data, size_t size, size_t alignment); diff --git a/src/arena.c b/src/arena.c index 46bc52a..d2e3f48 100644 --- a/src/arena.c +++ b/src/arena.c @@ -5,6 +5,11 @@ #include #include +struct Arena { + uint8_t *buffer; + size_t capacity; + size_t offset; +}; ArenaResult arena_init(size_t capacity) {