diff --git a/src/internal/gclayout/gclayout.go b/src/internal/gclayout/gclayout.go index aa841d8048..76a03adc6a 100644 --- a/src/internal/gclayout/gclayout.go +++ b/src/internal/gclayout/gclayout.go @@ -5,29 +5,20 @@ import "unsafe" // Internal constants for gc layout // See runtime/gc_precise.go -var ( - NoPtrs unsafe.Pointer - Pointer unsafe.Pointer - String unsafe.Pointer - Slice unsafe.Pointer -) +type Layout uintptr -func init() { - var sizeBits uintptr +const ( + // 16-bit int => bits = 4 + // 32-bit int => bits = 5 + // 64-bit int => bits = 6 + sizeBits = 4 + unsafe.Sizeof(uintptr(0))/4 - switch unsafe.Sizeof(uintptr(0)) { - case 8: - sizeBits = 6 - case 4: - sizeBits = 5 - case 2: - sizeBits = 4 - } + sizeShift = sizeBits + 1 - var sizeShift = sizeBits + 1 + NoPtrs = Layout(uintptr(0b0<