Set minimum capacity for arena

This commit is contained in:
Abdelrahman Said 2024-04-21 23:59:00 +01:00
parent be64571b0e
commit 6195b521f5

View File

@ -18,6 +18,8 @@
{ 0x57, 0x41, 0x41, 0x52, 0x4e, 0x48, 0x44, 0x52 } { 0x57, 0x41, 0x41, 0x52, 0x4e, 0x48, 0x44, 0x52 }
#define MAX_HDR_SEARCH_LENGTH 256 #define MAX_HDR_SEARCH_LENGTH 256
#define ARENA_MINIMUM_CAPACITY 1024
typedef struct arena_alloc_hdr ArenaAllocHDR; typedef struct arena_alloc_hdr ArenaAllocHDR;
struct arena_alloc_hdr { struct arena_alloc_hdr {
u8 magic[HDR_MAGIC_BYTE_COUNT]; u8 magic[HDR_MAGIC_BYTE_COUNT];
@ -282,12 +284,15 @@ internal bool base_arena_init(BaseArena *arena, u64 capacity) {
return false; return false;
} }
arena->buf = (u8 *)calloc(capacity, sizeof(u8)); u64 arena_capacity =
capacity >= ARENA_MINIMUM_CAPACITY ? capacity : ARENA_MINIMUM_CAPACITY;
arena->buf = (u8 *)calloc(arena_capacity, sizeof(u8));
if (!(arena->buf)) { if (!(arena->buf)) {
return false; return false;
} }
arena->capacity = capacity; arena->capacity = arena_capacity;
arena->offset = arena->buf; arena->offset = arena->buf;
arena->prev = arena->next = NULL; arena->prev = arena->next = NULL;