From d9a9215fa8a9920d22c5bf38994d17c7b9a0b831 Mon Sep 17 00:00:00 2001 From: martinfouilleul Date: Mon, 19 Jun 2023 17:09:31 +0200 Subject: [PATCH] Fixed bug in mem_arena_alloc when selecting chunk from which to allocate --- src/util/memory.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/util/memory.c b/src/util/memory.c index 9d7521e..b4d9558 100644 --- a/src/util/memory.c +++ b/src/util/memory.c @@ -75,11 +75,18 @@ void* mem_arena_alloc(mem_arena* arena, u64 size) u64 nextOffset = chunk->offset + size; u64 lastCap = chunk->cap; - while(chunk && nextOffset > chunk->cap) + while(nextOffset > chunk->cap) { chunk = list_next_entry(&arena->chunks, chunk, mem_arena_chunk, listElt); - nextOffset = chunk->offset + size; - lastCap = chunk->cap; + if(chunk) + { + nextOffset = chunk->offset + size; + lastCap = chunk->cap; + } + else + { + break; + } } if(!chunk) {