From 69606e4e228eaadb998c73efba51472199955ee0 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 30 Mar 2026 13:15:41 +0100 Subject: [PATCH] Compiler `arena_alloc_array` utility procedure --- src/common_memory.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/common_memory.cpp b/src/common_memory.cpp index 1590aac65..38c316733 100644 --- a/src/common_memory.cpp +++ b/src/common_memory.cpp @@ -501,6 +501,10 @@ gb_internal Arena *get_arena(ThreadArenaKind kind) { return nullptr; } +template +gb_internal T *arena_alloc_array(Arena *arena, isize count) { + return cast(T *)arena_alloc(arena, gb_size_of(T)*count, gb_align_of(T)); +} template gb_internal T *permanent_alloc_item() { @@ -511,13 +515,13 @@ gb_internal T *permanent_alloc_item() { template gb_internal T *permanent_alloc_array(isize count) { Arena *arena = get_arena(ThreadArena_Permanent); - return cast(T *)arena_alloc(arena, gb_size_of(T)*count, gb_align_of(T)); + return arena_alloc_array(arena, count); } template gb_internal Slice permanent_slice_make(isize count) { Arena *arena = get_arena(ThreadArena_Permanent); - T *data = cast(T *)arena_alloc(arena, gb_size_of(T)*count, gb_align_of(T)); + T *data = arena_alloc_array(arena, count); return {data, count}; } @@ -530,13 +534,13 @@ gb_internal T *temporary_alloc_item() { template gb_internal T *temporary_alloc_array(isize count) { Arena *arena = get_arena(ThreadArena_Temporary); - return cast(T *)arena_alloc(arena, gb_size_of(T)*count, gb_align_of(T)); + return arena_alloc_array(arena, count); } template gb_internal Slice temporary_slice_make(isize count) { Arena *arena = get_arena(ThreadArena_Temporary); - T *data = cast(T *)arena_alloc(arena, gb_size_of(T)*count, gb_align_of(T)); + T *data = arena_alloc_array(arena, count); return {data, count}; }