From 571170fd30b116c2b6cf40835c2f4779631741cf Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 7 Aug 2021 14:25:48 +0100 Subject: Improve and simplify the memory layout of `MPMCQueue` --- src/common.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/common.cpp') diff --git a/src/common.cpp b/src/common.cpp index 4aea379c3..5e5ec3490 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -228,6 +228,28 @@ GB_ALLOCATOR_PROC(heap_allocator_proc) { return ptr; } + +template +void resize_array_raw(T **array, gbAllocator const &a, isize old_count, isize new_count) { + GB_ASSERT(new_count >= 0); + if (new_count == 0) { + gb_free(a, *array); + *array = nullptr; + return; + } + if (new_count < old_count) { + return; + } + isize old_size = old_count * gb_size_of(T); + isize new_size = new_count * gb_size_of(T); + isize alignment = gb_align_of(T); + auto new_data = cast(T *)gb_resize_align(a, *array, old_size, new_size, alignment); + GB_ASSERT(new_data != nullptr); + *array = new_data; +} + + + #include "unicode.cpp" #include "array.cpp" #include "string.cpp" -- cgit v1.2.3