From 1f0519945655b075811e1581b095b93c88317d11 Mon Sep 17 00:00:00 2001 From: Andrei Alexeyev Date: Fri, 2 Aug 2024 15:30:55 +0200 Subject: [PATCH] memory/arena: add marena_alloc_array_aligned() --- src/memory/arena.c | 6 +++++- src/memory/arena.h | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/memory/arena.c b/src/memory/arena.c index ac3340b9..1dd8a27f 100644 --- a/src/memory/arena.c +++ b/src/memory/arena.c @@ -112,7 +112,11 @@ void *marena_alloc(MemArena *arena, size_t size) { } void *marena_alloc_array(MemArena *arena, size_t num_members, size_t size) { - return _arena_alloc(arena, mem_util_calc_array_size(num_members, size), alignof(max_align_t)); + return marena_alloc_array_aligned(arena, num_members, size, alignof(max_align_t)); +} + +void *marena_alloc_array_aligned(MemArena *arena, size_t num_members, size_t size, size_t align) { + return _arena_alloc(arena, mem_util_calc_array_size(num_members, size), align); } void *marena_alloc_aligned(MemArena *arena, size_t size, size_t align) { diff --git a/src/memory/arena.h b/src/memory/arena.h index ada3bad1..463604bf 100644 --- a/src/memory/arena.h +++ b/src/memory/arena.h @@ -49,6 +49,13 @@ void *marena_alloc_array(MemArena *arena, size_t num_members, size_t size) attr_returns_allocated attr_nonnull_all; +void *marena_alloc_array_aligned(MemArena *arena, size_t num_members, size_t size, size_t align) + attr_alloc_size(2, 3) + attr_alloc_align(4) + attr_malloc + attr_returns_allocated + attr_nonnull_all; + void *marena_alloc_aligned(MemArena *arena, size_t size, size_t alignment) attr_alloc_size(2) attr_alloc_align(3)