runtime: use morePointers and isPointer in more places
This makes this code better self-documenting and makes it easier to
find these places in the future.
Change-Id: I31dc5598ae67f937fb9ef26df92fd41d01e983c3
Reviewed-on: https://go-review.googlesource.com/22631
Reviewed-by: Rick Hudson <rlh@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/runtime/cgocall.go b/src/runtime/cgocall.go
index fa996d2..887343e 100644
--- a/src/runtime/cgocall.go
+++ b/src/runtime/cgocall.go
@@ -559,12 +559,11 @@
}
n := span.elemsize
for i = uintptr(0); i < n; i += sys.PtrSize {
- bits := hbits.bits()
- if i >= 2*sys.PtrSize && bits&bitMarked == 0 {
+ if i >= 2*sys.PtrSize && !hbits.morePointers() {
// No more possible pointers.
break
}
- if bits&bitPointer != 0 {
+ if hbits.isPointer() {
if cgoIsGoPointer(*(*unsafe.Pointer)(unsafe.Pointer(base + i))) {
panic(errorString(msg))
}
diff --git a/src/runtime/mgcmark.go b/src/runtime/mgcmark.go
index 14449c3..8c8ce67 100644
--- a/src/runtime/mgcmark.go
+++ b/src/runtime/mgcmark.go
@@ -1132,11 +1132,10 @@
// in the type bit for the one word. The only one-word objects
// are pointers, or else they'd be merged with other non-pointer
// data into larger allocations.
- bits := hbits.bits()
- if i >= 2*sys.PtrSize && bits&bitMarked == 0 {
+ if i >= 2*sys.PtrSize && !hbits.morePointers() {
break // no more pointers in this object
}
- if bits&bitPointer == 0 {
+ if !hbits.isPointer() {
continue // not a pointer
}