From 176b2b462371cd860ac9c6b5d2c1db92ae707e88 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Mon, 2 Mar 2026 21:56:42 +0100 Subject: dont need array --- src/array.cc | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'src/array.cc') diff --git a/src/array.cc b/src/array.cc index f522bfc..35b8272 100644 --- a/src/array.cc +++ b/src/array.cc @@ -16,25 +16,26 @@ struct Array { #define array_init(T, allocator) \ Array { 0, 0, nullptr, allocator } -template +template static inline usize array_nbytes(usize size) { assert_neq(size, 0); return size * sizeof(T); } -template +template static inline usize array_next_capacity(const Array* array) { assert_neq(array, nullptr); return array->capacity == 0 ? ARRAY_INIT : array->capacity * ARRAY_GROWTH; } -template +template bool array_resize(Array* array, usize new_capacity) { assert_neq(array, nullptr); assert_st(array->size, new_capacity); - T* new_data = (T*)allocate(array->allocator, array_nbytes(new_capacity), alignof(T)); - if(new_data == nullptr) return false; + T* new_data = + (T*)allocate(array->allocator, array_nbytes(new_capacity), alignof(T)); + if (new_data == nullptr) return false; memcpy(new_data, array->data, array_nbytes(new_capacity)); deallocate(array->allocator, (u8*)array->data); @@ -44,18 +45,18 @@ bool array_resize(Array* array, usize new_capacity) { return true; } -template +template static inline bool array_grow_if_needed(Array* array) { assert_neq(array, nullptr); assert_ste(array->size, array->capacity); - - if(array->size < array->capacity) return true; + + if (array->size < array->capacity) return true; usize new_capacity = array_next_capacity(array); return array_resize(array, new_capacity); } -template +template static inline T* array_at(const Array* array, usize index) { assert_neq(array, nullptr); assert_st(index, array->capacity); @@ -63,21 +64,21 @@ static inline T* array_at(const Array* array, usize index) { return array->data + index; } -template +template inline T* array_last(const Array* array) { assert_neq(array, nullptr); - if(array->size == 0) return nullptr; + if (array->size == 0) return nullptr; return array_at(array, array->size - 1); } -template +template bool array_push(Array* array, T* item) { assert_neq(array, nullptr); assert_neq(item, nullptr); bool ret = array_grow_if_needed(array); - if(!ret) return false; + if (!ret) return false; T* loc = array_at(array, array->size); memcpy(loc, item, sizeof(T)); @@ -89,11 +90,11 @@ bool array_push(Array* array, T* item) { template void array_deinit(Array* array) { assert_neq(array, nullptr); - + if (unlikely(array->data == nullptr)) return; deallocate(array->allocator, (u8*)array->data); - memset(array, 0, sizeof(*array)); + memset(array, 0, sizeof(*array)); } #endif -- cgit v1.2.3