From b555655f3ace718bd7cab9bb72c70044496b72e3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 25 Jul 2024 10:33:40 -0700 Subject: [PATCH] fix incorrect chain size computation in new arena push implementation --- src/base/base_arena.c | 4 ++-- src/metagen/metagen_base/metagen_base_arena.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/base/base_arena.c b/src/base/base_arena.c index d4dd1b69..1ced0310 100644 --- a/src/base/base_arena.c +++ b/src/base/base_arena.c @@ -87,7 +87,7 @@ arena_push(Arena *arena, U64 size, U64 align) { U64 res_size = current->res_size; U64 cmt_size = current->cmt_size; - if(size > cmt_size) + if(size > res_size) { res_size = size + ARENA_HEADER_SIZE; cmt_size = size + ARENA_HEADER_SIZE; @@ -99,7 +99,7 @@ arena_push(Arena *arena, U64 size, U64 align) SLLStackPush_N(arena->current, new_block, prev); current = new_block; pos_pre = AlignPow2(current->pos, align); - pos_pst = pos_pst + size; + pos_pst = pos_pre + size; } // rjf: commit new pages, if needed diff --git a/src/metagen/metagen_base/metagen_base_arena.c b/src/metagen/metagen_base/metagen_base_arena.c index d4dd1b69..1ced0310 100644 --- a/src/metagen/metagen_base/metagen_base_arena.c +++ b/src/metagen/metagen_base/metagen_base_arena.c @@ -87,7 +87,7 @@ arena_push(Arena *arena, U64 size, U64 align) { U64 res_size = current->res_size; U64 cmt_size = current->cmt_size; - if(size > cmt_size) + if(size > res_size) { res_size = size + ARENA_HEADER_SIZE; cmt_size = size + ARENA_HEADER_SIZE; @@ -99,7 +99,7 @@ arena_push(Arena *arena, U64 size, U64 align) SLLStackPush_N(arena->current, new_block, prev); current = new_block; pos_pre = AlignPow2(current->pos, align); - pos_pst = pos_pst + size; + pos_pst = pos_pre + size; } // rjf: commit new pages, if needed