From: cassowarii <2374677+cassowarii@users.noreply.github.com> Date: Fri, 19 Jun 2026 06:18:04 +0000 (-0700) Subject: fix bug in arena X-Git-Url: https://git.cassowary.me/gitweb.cgi?a=commitdiff_plain;h=57d88387bd3434f4bacaa96663c793a441cc5c9d;p=sarabande.git fix bug in arena --- diff --git a/src/mem/arena.c b/src/mem/arena.c index 0d56062..176fc12 100644 --- a/src/mem/arena.c +++ b/src/mem/arena.c @@ -22,7 +22,7 @@ hArena sbArena_create(usize initial_size) { while (initial_size % ALIGN != 0) initial_size++; - struct block *block = malloc(initial_size); + struct block *block = calloc(sizeof(struct block) + initial_size, 1); block->used = 0; block->next = NULL; block->capacity = initial_size; @@ -50,7 +50,7 @@ void *sbArena_alloc(hArena arena, usize size) { /* need to allocate a new block */ usize new_capacity = arena->current->capacity; if (size > new_capacity) new_capacity = size; - struct block *block = malloc(sizeof(struct block) + new_capacity); + struct block *block = calloc(sizeof(struct block) + new_capacity, 1); block->capacity = new_capacity; block->next = NULL; diff --git a/src/parse/scanner.c b/src/parse/scanner.c index a84651a..5220444 100644 --- a/src/parse/scanner.c +++ b/src/parse/scanner.c @@ -12,6 +12,8 @@ * after this stage so we can differentiate between things like 'a.b (1)' and 'a.b(1)', * which have different semantics. */ +#define MEM_BLOCK_SIZE 65536 + typedef struct sbScanner { hFileReader file_reader; hArena arena; @@ -20,7 +22,7 @@ typedef struct sbScanner { hScanner sbScanner_create(hFileReader fr) { hScanner sc = malloc(sizeof(sbScanner)); - sc->arena = sbArena_create(65536); + sc->arena = sbArena_create(MEM_BLOCK_SIZE); sc->file_reader = fr; sc->next_token = (sbLexToken) {0};