mirror of
https://github.com/golang/go
synced 2024-09-04 23:44:16 +00:00
runtime: fix sysUsed for Windows
sysUsed on Windows cares about the result from the VirtualAlloc syscall returning exactly the address that was passed to it. However, VirtualAlloc aligns the address its given to the kernel's allocation granularity, so the returned address may not be the same. Note that this wasn't an issue in the past because we only sysUsed regions owned by spans, and spans are always a multiple of 8K, which is a multiple of the allocation granularity on most Windows machines. Change-Id: I3f5ccd63c6bbbd8b7995945ecedee17573b31667 Reviewed-on: https://go-review.googlesource.com/c/153677 Run-TryBot: Michael Knyszek <mknyszek@google.com> Reviewed-by: Rick Hudson <rlh@golang.org>
This commit is contained in:
parent
81a908aa68
commit
213845f7b9
|
@ -61,7 +61,7 @@ func sysUnused(v unsafe.Pointer, n uintptr) {
|
|||
|
||||
func sysUsed(v unsafe.Pointer, n uintptr) {
|
||||
r := stdcall4(_VirtualAlloc, uintptr(v), n, _MEM_COMMIT, _PAGE_READWRITE)
|
||||
if r == uintptr(v) {
|
||||
if r != 0 {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue