From 4c08c125936b4ae3daff04cecf5309dd5dd1e2c5 Mon Sep 17 00:00:00 2001 From: Pouriya Date: Tue, 27 Feb 2024 21:51:31 +0000 Subject: runtime: use .Pointers() instead of manual checking Change-Id: Ib78c1513616089f4942297cd17212b1b11871fd5 GitHub-Last-Rev: f97fe5b5bffffe25dc31de7964588640cb70ec41 GitHub-Pull-Request: golang/go#65819 Reviewed-on: https://go-review.googlesource.com/c/go/+/565515 Reviewed-by: Jorropo LUCI-TryBot-Result: Go LUCI Auto-Submit: Keith Randall Reviewed-by: Michael Knyszek Reviewed-by: Keith Randall Reviewed-by: Keith Randall --- src/runtime/map.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/runtime/map.go') diff --git a/src/runtime/map.go b/src/runtime/map.go index 98bd792d2a..bb3ac39e94 100644 --- a/src/runtime/map.go +++ b/src/runtime/map.go @@ -256,7 +256,7 @@ func (h *hmap) newoverflow(t *maptype, b *bmap) *bmap { ovf = (*bmap)(newobject(t.Bucket)) } h.incrnoverflow() - if t.Bucket.PtrBytes == 0 { + if !t.Bucket.Pointers() { h.createOverflow() *h.extra.overflow = append(*h.extra.overflow, ovf) } @@ -346,7 +346,7 @@ func makeBucketArray(t *maptype, b uint8, dirtyalloc unsafe.Pointer) (buckets un // used with this value of b. nbuckets += bucketShift(b - 4) sz := t.Bucket.Size_ * nbuckets - up := roundupsize(sz, t.Bucket.PtrBytes == 0) + up := roundupsize(sz, !t.Bucket.Pointers()) if up != sz { nbuckets = up / t.Bucket.Size_ } @@ -360,7 +360,7 @@ func makeBucketArray(t *maptype, b uint8, dirtyalloc unsafe.Pointer) (buckets un // but may not be empty. buckets = dirtyalloc size := t.Bucket.Size_ * nbuckets - if t.Bucket.PtrBytes != 0 { + if t.Bucket.Pointers() { memclrHasPointers(buckets, size) } else { memclrNoHeapPointers(buckets, size) @@ -741,13 +741,13 @@ search: // Only clear key if there are pointers in it. if t.IndirectKey() { *(*unsafe.Pointer)(k) = nil - } else if t.Key.PtrBytes != 0 { + } else if t.Key.Pointers() { memclrHasPointers(k, t.Key.Size_) } e := add(unsafe.Pointer(b), dataOffset+abi.MapBucketCount*uintptr(t.KeySize)+i*uintptr(t.ValueSize)) if t.IndirectElem() { *(*unsafe.Pointer)(e) = nil - } else if t.Elem.PtrBytes != 0 { + } else if t.Elem.Pointers() { memclrHasPointers(e, t.Elem.Size_) } else { memclrNoHeapPointers(e, t.Elem.Size_) @@ -824,7 +824,7 @@ func mapiterinit(t *maptype, h *hmap, it *hiter) { // grab snapshot of bucket state it.B = h.B it.buckets = h.buckets - if t.Bucket.PtrBytes == 0 { + if !t.Bucket.Pointers() { // Allocate the current slice and remember pointers to both current and old. // This preserves all relevant overflow buckets alive even if // the table grows and/or overflow buckets are added to the table @@ -1252,7 +1252,7 @@ func evacuate(t *maptype, h *hmap, oldbucket uintptr) { } } // Unlink the overflow buckets & clear key/elem to help GC. - if h.flags&oldIterator == 0 && t.Bucket.PtrBytes != 0 { + if h.flags&oldIterator == 0 && t.Bucket.Pointers() { b := add(h.oldbuckets, oldbucket*uintptr(t.BucketSize)) // Preserve b.tophash because the evacuation // state is maintained there. -- cgit v1.3-6-g1900