diff --git a/std/heap.zig b/std/heap.zig index 84ed469763289edbaa1f2bfc9fbcc0d3d2a1353b..dd5cfa4cd7790248a2752e19c704fdae03a46840 100644 --- a/std/heap.zig +++ b/std/heap.zig @@ -143,8 +143,9 @@ pub const DirectAllocator = struct { return result; }, Os.windows => { + if (old_mem.len == 0) return alloc(allocator, new_size, new_align); + const self = @fieldParentPtr(DirectAllocator, "allocator", allocator); - const old_adjusted_addr = @ptrToInt(old_mem.ptr); const old_record_addr = old_adjusted_addr + old_mem.len; const root_addr = @intToPtr(*align(1) usize, old_record_addr).*; diff --git a/std/os/windows/util.zig b/std/os/windows/util.zig index 24039967a1965dbb1c6b99f2acc3226c2412cda7..72c84502e3695aa7fba7705e6983b9af18b137f7 100644 --- a/std/os/windows/util.zig +++ b/std/os/windows/util.zig @@ -197,7 +197,7 @@ pub fn createWindowsEnvBlock(allocator: *mem.Allocator, env_map: *const BufMap) i += 1; result[i] = 0; i += 1; - return allocator.shrink(u16, result, i); + return allocator.shrink(result, i); } pub fn windowsFindFirstFile(