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) {