memory/arena: add marena_alloc_array_aligned()

This commit is contained in:
Andrei Alexeyev 2024-08-02 15:30:55 +02:00
parent b48e4e7714
commit 1f05199456
No known key found for this signature in database
GPG key ID: 72D26128040B9690
2 changed files with 12 additions and 1 deletions

View file

@ -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) {

View file

@ -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)