commit a2f8c23a96d6124f1f263aa68087f18321e298c7 (tree)
parent cb9405cdbdd7c9dc30c84ea9a8a17ced2cae66af
Author: Andrew Kelley <andrew@ziglang.org>
Date: Sat, 8 Aug 2020 13:04:30 -0700
std.heap.page_allocator: Windows support for growing without remapping
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/std/heap.zig b/lib/std/heap.zig
@@ -225,7 +225,7 @@ const PageAllocator = struct {
w.VirtualFree(buf_unaligned.ptr, 0, w.MEM_RELEASE);
return 0;
}
- if (new_size < buf_unaligned.len) {
+ if (new_size <= buf_unaligned.len) {
const base_addr = @ptrToInt(buf_unaligned.ptr);
const old_addr_end = base_addr + buf_unaligned.len;
const new_addr_end = mem.alignForward(base_addr + new_size, mem.page_size);
@@ -240,10 +240,10 @@ const PageAllocator = struct {
}
return alignPageAllocLen(new_size_aligned, new_size, len_align);
}
- if (new_size == buf_unaligned.len) {
+ const old_size_aligned = mem.alignForward(buf_unaligned.len, mem.page_size);
+ if (new_size_aligned <= old_size_aligned) {
return alignPageAllocLen(new_size_aligned, new_size, len_align);
}
- // new_size > buf_unaligned.len not implemented
return error.OutOfMemory;
}