fix mem.new_clone

This commit is contained in:
Jeroen van Rijn
2021-09-19 22:10:19 +02:00
parent e760535dba
commit 64ce55944a
2 changed files with 7 additions and 6 deletions
+5 -4
View File
@@ -215,13 +215,14 @@ new_aligned :: proc($T: typeid, alignment: int, allocator := context.allocator,
t = (^T)(raw_data(data))
return
}
new_clone :: proc(data: $T, allocator := context.allocator, loc := #caller_location) -> ^T {
data := alloc_bytes(size_of(T), alignment, allocator, loc) or_return
t = (^T)(raw_data(data))
new_clone :: proc(data: $T, allocator := context.allocator, loc := #caller_location) -> (t: ^T, err: Allocator_Error) {
backing := alloc_bytes(size_of(T), align_of(T), allocator, loc) or_return
t = (^T)(raw_data(backing))
if t != nil {
t^ = data
return t, nil
}
return
return nil, .Out_Of_Memory
}
DEFAULT_RESERVE_CAPACITY :: 16