Update array allocation functions

This commit is contained in:
Abdelrahman Said
2026-01-24 12:17:15 +00:00
parent bd659e64fc
commit 7a54c28c0f
4 changed files with 64 additions and 38 deletions

View File

@@ -105,7 +105,7 @@ void _array_copy_capped(GenericArray dst, const GenericArray src, u64 item_size)
}
GenericArray _array_append_alloc(const Allocator *allocator, GenericArray array, void *value,
u64 item_size, ArrayInitFlags flags) {
ArrayInitFlags flags, u64 item_size) {
wapp_runtime_assert(allocator != NULL && array != NULL, "`allocator` and `array` should not be NULL");
_array_validate(array, item_size);
@@ -114,8 +114,8 @@ GenericArray _array_append_alloc(const Allocator *allocator, GenericArray array,
ArrayHeader *header = _array_header(array);
if (header->count >= header->capacity) {
u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(header->capacity * 2);
output = (GenericArray )_array_alloc_capacity(allocator, new_capacity, header->item_size,
flags);
output = (GenericArray )_array_alloc_capacity(allocator, new_capacity, flags,
header->item_size);
if (!output) {
output = array;
goto RETURN_ARRAY_APPEND_ALLOC;
@@ -134,7 +134,7 @@ RETURN_ARRAY_APPEND_ALLOC:
}
GenericArray _array_extend_alloc(const Allocator *allocator, GenericArray dst, const GenericArray src,
u64 item_size, ArrayInitFlags flags) {
ArrayInitFlags flags, u64 item_size) {
wapp_runtime_assert(allocator != NULL && dst != NULL && src != NULL, "`allocator`, `dst` and `src` should not be NULL");
_array_validate(dst, item_size);
_array_validate(src, item_size);
@@ -147,7 +147,7 @@ GenericArray _array_extend_alloc(const Allocator *allocator, GenericArray dst, c
if (src_header->count >= remaining_capacity) {
u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(dst_header->capacity * 2);
output = (GenericArray )_array_alloc_capacity(allocator, new_capacity,
dst_header->item_size, flags);
flags, dst_header->item_size);
if (!output) {
output = dst;
goto RETURN_ARRAY_EXTEND_ALLOC;
@@ -166,7 +166,7 @@ RETURN_ARRAY_EXTEND_ALLOC:
}
GenericArray _array_copy_alloc(const Allocator *allocator, GenericArray dst, const GenericArray src,
u64 item_size, ArrayInitFlags flags) {
ArrayInitFlags flags, u64 item_size) {
wapp_runtime_assert(allocator != NULL && dst != NULL && src != NULL, "`allocator`, `dst` and `src` should not be NULL");
_array_validate(dst, item_size);
_array_validate(src, item_size);
@@ -178,7 +178,7 @@ GenericArray _array_copy_alloc(const Allocator *allocator, GenericArray dst, con
if (src_header->count >= dst_header->capacity) {
u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(dst_header->capacity * 2);
output = (GenericArray )_array_alloc_capacity(allocator, new_capacity,
src_header->item_size, flags);
flags, src_header->item_size);
if (!output) {
output = dst;
goto RETURN_ARRAY_COPY_ALLOC;
@@ -220,8 +220,8 @@ u64 _array_calc_alloc_size(u64 capacity, u64 item_size) {
return sizeof(ArrayHeader) + item_size * capacity;
}
GenericArray _array_alloc_capacity(const Allocator *allocator, u64 capacity, u64 item_size,
ArrayInitFlags flags) {
GenericArray _array_alloc_capacity(const Allocator *allocator, u64 capacity, ArrayInitFlags flags,
u64 item_size) {
wapp_runtime_assert(allocator != NULL, "`allocator` should not be NULL");
GenericArray output = NULL;