diff options
| author | gingerBill <bill@gingerbill.org> | 2018-02-25 15:31:00 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2018-02-25 15:31:00 +0000 |
| commit | f28a34fa99d68ce54c76272385ff9c172cc2ae59 (patch) | |
| tree | 36e203f0e8d440bf54e3164d0c4ae6501bb7c8c9 /src/array.cpp | |
| parent | a1e8de4e00e536c94ec87903569a68e51d95b31f (diff) | |
Use Array<irValue *> in ir.cpp
Diffstat (limited to 'src/array.cpp')
| -rw-r--r-- | src/array.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/array.cpp b/src/array.cpp index c1e47342c..8384c32f4 100644 --- a/src/array.cpp +++ b/src/array.cpp @@ -26,7 +26,9 @@ struct Array { template <typename T> void array_init (Array<T> *array, gbAllocator a, isize init_capacity = ARRAY_GROW_FORMULA(0)); template <typename T> void array_init_count (Array<T> *array, gbAllocator a, isize count); -template <typename T> Array<T> array_make (T *data, isize count, isize capacity); +template <typename T> Array<T> array_make (gbAllocator a, isize init_capacity = ARRAY_GROW_FORMULA(0)); +template <typename T> Array<T> array_make_count (gbAllocator a, isize count); +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> T array_pop (Array<T> *array); @@ -53,7 +55,7 @@ void array_init_count(Array<T> *array, gbAllocator a, isize count) { template <typename T> -Array<T> array_make(T *data, isize count, isize capacity) { +Array<T> array_make_from_ptr(T *data, isize count, isize capacity) { Array<T> a = {0}; a.data = data; a.count = count; @@ -63,6 +65,21 @@ Array<T> array_make(T *data, isize count, isize capacity) { template <typename T> +Array<T> array_make(gbAllocator a, isize init_capacity) { + Array<T> array = {}; + array_init(&array, a, init_capacity); + return array; +} +template <typename T> +Array<T> array_make_count(gbAllocator a, isize count) { + Array<T> array = {}; + array_init_count(&array, a, count); + return array; +} + + + +template <typename T> void array_free(Array<T> *array) { if (array->allocator.proc != nullptr) { gb_free(array->allocator, array->data); |