aboutsummaryrefslogtreecommitdiff
path: root/src/array.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2019-05-26 15:16:45 +0100
committergingerBill <bill@gingerbill.org>2019-05-26 15:16:45 +0100
commit5697d6df7466ef5f4e676f391c104ef165cadb6b (patch)
tree0ea6bf2619a510d97bc5ed19b8fd891740c334e1 /src/array.cpp
parent426c1ed6f407bcfd3c98e266075f9e9f2cca711c (diff)
-go-to-definitions (OGTD file format)
Diffstat (limited to 'src/array.cpp')
-rw-r--r--src/array.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/array.cpp b/src/array.cpp
index 16418d58f..ea8873908 100644
--- a/src/array.cpp
+++ b/src/array.cpp
@@ -33,6 +33,7 @@ template <typename T> Array<T> array_make (gbAllocator const &a, isize
template <typename T> Array<T> array_make_from_ptr (T *data, isize count, isize capacity);
template <typename T> void array_free (Array<T> *array);
template <typename T> void array_add (Array<T> *array, T const &t);
+template <typename T> void array_add_elems (Array<T> *array, T const *elems, isize elem_count);
template <typename T> T array_pop (Array<T> *array);
template <typename T> void array_clear (Array<T> *array);
template <typename T> void array_reserve (Array<T> *array, isize capacity);
@@ -158,6 +159,17 @@ void array_add(Array<T> *array, T const &t) {
}
template <typename T>
+void array_add_elems(Array<T> *array, T const *elems, isize elem_count) {
+ GB_ASSERT(elem_count >= 0);
+ if (array->capacity < array->count+elem_count) {
+ array__grow(array, array->count+elem_count);
+ }
+ gb_memmove(array->data + array->count, elems, elem_count * gb_size_of(T));
+ array->count += elem_count;
+}
+
+
+template <typename T>
gb_inline T array_pop(Array<T> *array) {
GB_ASSERT(array->count > 0);
array->count--;