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.
This commit is contained in:
@@ -6,11 +6,7 @@
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
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);
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
struct Arena {
|
||||
uint8_t *buffer;
|
||||
size_t capacity;
|
||||
size_t offset;
|
||||
};
|
||||
|
||||
|
||||
ArenaResult arena_init(size_t capacity) {
|
||||
|
||||
Reference in New Issue
Block a user