From: Josh Bleecher Snyder Date: Fri, 20 Apr 2018 17:22:54 +0000 (-0700) Subject: runtime: use sys.PtrSize in growslice X-Git-Tag: go1.11beta1~731 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=37dd7cd040e626d5a9c30f2880005643b3a23d22;p=gostls13.git runtime: use sys.PtrSize in growslice Minor cleanup. Change-Id: I4175de392969bb6408081a75cebdaeadcef1e68c Reviewed-on: https://go-review.googlesource.com/108576 Run-TryBot: Josh Bleecher Snyder Reviewed-by: Ian Lance Taylor --- diff --git a/src/runtime/slice.go b/src/runtime/slice.go index 0924d1d8e6..40c5995153 100644 --- a/src/runtime/slice.go +++ b/src/runtime/slice.go @@ -128,10 +128,9 @@ func growslice(et *_type, old slice, cap int) slice { var overflow bool var lenmem, newlenmem, capmem uintptr - const ptrSize = unsafe.Sizeof((*byte)(nil)) // Specialize for common values of et.size. // For 1 we don't need any division/multiplication. - // For ptrSize, compiler will optimize division/multiplication into a shift by a constant. + // For sys.PtrSize, compiler will optimize division/multiplication into a shift by a constant. // For powers of 2, use a variable shift. switch { case et.size == 1: @@ -140,15 +139,15 @@ func growslice(et *_type, old slice, cap int) slice { capmem = roundupsize(uintptr(newcap)) overflow = uintptr(newcap) > maxAlloc newcap = int(capmem) - case et.size == ptrSize: - lenmem = uintptr(old.len) * ptrSize - newlenmem = uintptr(cap) * ptrSize - capmem = roundupsize(uintptr(newcap) * ptrSize) - overflow = uintptr(newcap) > maxAlloc/ptrSize - newcap = int(capmem / ptrSize) + case et.size == sys.PtrSize: + lenmem = uintptr(old.len) * sys.PtrSize + newlenmem = uintptr(cap) * sys.PtrSize + capmem = roundupsize(uintptr(newcap) * sys.PtrSize) + overflow = uintptr(newcap) > maxAlloc/sys.PtrSize + newcap = int(capmem / sys.PtrSize) case isPowerOfTwo(et.size): var shift uintptr - if ptrSize == 8 { + if sys.PtrSize == 8 { // Mask shift for better code generation. shift = uintptr(sys.Ctz64(uint64(et.size))) & 63 } else {