zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Mlib/std/heap.zig | 6+++---
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; }