summaryrefslogtreecommitdiff
path: root/src/array.cc
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-03-02 21:56:42 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-03-02 21:56:42 +0100
commit176b2b462371cd860ac9c6b5d2c1db92ae707e88 (patch)
tree983d1ddbae380eca94dfebfaf15fdf3245ba284c /src/array.cc
parentcb95ef0b3690e7817db34e3a7c0d7c021a7a8ccf (diff)
dont need array
Diffstat (limited to 'src/array.cc')
-rw-r--r--src/array.cc31
1 files changed, 16 insertions, 15 deletions
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<T> { 0, 0, nullptr, allocator }
-template<typename T>
+template <typename T>
static inline usize array_nbytes(usize size) {
assert_neq(size, 0);
return size * sizeof(T);
}
-template<typename T>
+template <typename T>
static inline usize array_next_capacity(const Array<T>* array) {
assert_neq(array, nullptr);
return array->capacity == 0 ? ARRAY_INIT : array->capacity * ARRAY_GROWTH;
}
-template<typename T>
+template <typename T>
bool array_resize(Array<T>* array, usize new_capacity) {
assert_neq(array, nullptr);
assert_st(array->size, new_capacity);
- T* new_data = (T*)allocate(array->allocator, array_nbytes<T>(new_capacity), alignof(T));
- if(new_data == nullptr) return false;
+ T* new_data =
+ (T*)allocate(array->allocator, array_nbytes<T>(new_capacity), alignof(T));
+ if (new_data == nullptr) return false;
memcpy(new_data, array->data, array_nbytes<T>(new_capacity));
deallocate(array->allocator, (u8*)array->data);
@@ -44,18 +45,18 @@ bool array_resize(Array<T>* array, usize new_capacity) {
return true;
}
-template<typename T>
+template <typename T>
static inline bool array_grow_if_needed(Array<T>* 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<typename T>
+template <typename T>
static inline T* array_at(const Array<T>* array, usize index) {
assert_neq(array, nullptr);
assert_st(index, array->capacity);
@@ -63,21 +64,21 @@ static inline T* array_at(const Array<T>* array, usize index) {
return array->data + index;
}
-template<typename T>
+template <typename T>
inline T* array_last(const Array<T>* 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<typename T>
+template <typename T>
bool array_push(Array<T>* 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<T>* array, T* item) {
template <typename T>
void array_deinit(Array<T>* 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