add zeroing to new region from realloc

This commit is contained in:
CiD-
2021-12-17 10:41:49 -05:00
parent 0548db4230
commit 29ca6ee420

View File

@@ -206,11 +206,20 @@ heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode,
}
}
aligned_resize :: proc(p: rawptr, old_size: int, new_size: int, new_alignment: int) -> ([]byte, mem.Allocator_Error) {
aligned_resize :: proc(p: rawptr, old_size: int, new_size: int, new_alignment: int) -> (new_memory: []byte, err: mem.Allocator_Error) {
if p == nil {
return nil, nil
}
return aligned_alloc(new_size, new_alignment, p)
new_memory = aligned_alloc(new_size, new_alignment, p) or_return
when ODIN_OS != "windows" {
// NOTE: realloc does not zero the new memory, so we do it
if new_size > old_size {
new_region := mem.raw_data(new_memory[old_size:])
mem.zero(new_region, new_size - old_size)
}
}
return
}
switch mode {