This commit is contained in:
gingerBill
2020-01-26 20:44:32 +00:00
+4 -2
View File
@@ -1125,13 +1125,15 @@ __dynamic_array_make :: proc(array_: rawptr, elem_size, elem_align: int, len, ca
__dynamic_array_reserve :: proc(array_: rawptr, elem_size, elem_align: int, cap: int, loc := #caller_location) -> bool { __dynamic_array_reserve :: proc(array_: rawptr, elem_size, elem_align: int, cap: int, loc := #caller_location) -> bool {
array := (^Raw_Dynamic_Array)(array_); array := (^Raw_Dynamic_Array)(array_);
if cap <= array.cap do return true; // NOTE(tetra, 2020-01-26): We set the allocator before earlying-out below, because user code is usually written
// assuming that appending/reserving will set the allocator, if it is not already set.
if array.allocator.procedure == nil { if array.allocator.procedure == nil {
array.allocator = context.allocator; array.allocator = context.allocator;
} }
assert(array.allocator.procedure != nil); assert(array.allocator.procedure != nil);
if cap <= array.cap do return true;
old_size := array.cap * elem_size; old_size := array.cap * elem_size;
new_size := cap * elem_size; new_size := cap * elem_size;
allocator := array.allocator; allocator := array.allocator;