From e86fde3cb16d2977054aa727c32cd4efcb1bd8a7 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 10 Jun 2020 15:09:04 +0100 Subject: Fix #648 --- src/array.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/array.cpp') diff --git a/src/array.cpp b/src/array.cpp index 3df688e2e..6fe54b847 100644 --- a/src/array.cpp +++ b/src/array.cpp @@ -41,6 +41,7 @@ template void array_reserve (Array *array, isize capac template void array_resize (Array *array, isize count); template void array_set_capacity (Array *array, isize capacity); template Array array_slice (Array const &array, isize lo, isize hi); +template Array array_clone (gbAllocator const &a, Array const &array); @@ -243,6 +244,15 @@ gb_inline Array array_slice(Array const &array, isize lo, isize hi) { } return out; } + +template +Array array_clone(gbAllocator const &allocator, Array const &array) { + auto clone = array_make(allocator, array.count, array.count); + array_copy(&clone, array, 0); + return clone; +} + + template void array_ordered_remove(Array *array, isize index) { GB_ASSERT(0 <= index && index < array->count); -- cgit v1.2.3