diff options
Diffstat (limited to 'src/runtime/malloc.go')
| -rw-r--r-- | src/runtime/malloc.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index b044e29d95..0219401c83 100644 --- a/src/runtime/malloc.go +++ b/src/runtime/malloc.go @@ -247,13 +247,15 @@ const ( // memory. heapArenaBytes = 1 << logHeapArenaBytes + heapArenaWords = heapArenaBytes / goarch.PtrSize + // logHeapArenaBytes is log_2 of heapArenaBytes. For clarity, // prefer using heapArenaBytes where possible (we need the // constant to compute some other constants). logHeapArenaBytes = (6+20)*(_64bit*(1-goos.IsWindows)*(1-goarch.IsWasm)*(1-goos.IsIos*goarch.IsArm64)) + (2+20)*(_64bit*goos.IsWindows) + (2+20)*(1-_64bit) + (2+20)*goarch.IsWasm + (2+20)*goos.IsIos*goarch.IsArm64 - // heapArenaBitmapBytes is the size of each heap arena's bitmap. - heapArenaBitmapBytes = heapArenaBytes / (goarch.PtrSize * 8 / 2) + // heapArenaBitmapWords is the size of each heap arena's bitmap in uintptrs. + heapArenaBitmapWords = heapArenaWords / (8 * goarch.PtrSize) pagesPerArena = heapArenaBytes / pageSize @@ -353,10 +355,10 @@ func mallocinit() { throw("bad TinySizeClass") } - if heapArenaBitmapBytes&(heapArenaBitmapBytes-1) != 0 { + if heapArenaBitmapWords&(heapArenaBitmapWords-1) != 0 { // heapBits expects modular arithmetic on bitmap // addresses to work. - throw("heapArenaBitmapBytes not a power of 2") + throw("heapArenaBitmapWords not a power of 2") } // Check physPageSize. |
