From 5697d6df7466ef5f4e676f391c104ef165cadb6b Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 26 May 2019 15:16:45 +0100 Subject: -go-to-definitions (OGTD file format) --- src/array.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/array.cpp') 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 Array array_make (gbAllocator const &a, isize template Array array_make_from_ptr (T *data, isize count, isize capacity); template void array_free (Array *array); template void array_add (Array *array, T const &t); +template void array_add_elems (Array *array, T const *elems, isize elem_count); template T array_pop (Array *array); template void array_clear (Array *array); template void array_reserve (Array *array, isize capacity); @@ -157,6 +158,17 @@ void array_add(Array *array, T const &t) { array->count++; } +template +void array_add_elems(Array *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 gb_inline T array_pop(Array *array) { GB_ASSERT(array->count > 0); -- cgit v1.2.3