]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: add bmap.setoverflow
authorJosh Bleecher Snyder <josharian@gmail.com>
Sun, 16 Apr 2017 13:27:24 +0000 (06:27 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Wed, 19 Apr 2017 13:43:01 +0000 (13:43 +0000)
bmap already has a overflow (getter) method.
Add a setoverflow (setter) method, for readability.

Updates #19931
Updates #19992

Change-Id: I00b3d94037c0d75508a7ebd51085c5c3857fb764
Reviewed-on: https://go-review.googlesource.com/40977
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/runtime/hashmap.go

index 745ff40b5bffd7bce1349e242242a67e5c104ad7..5243236f016230eba676705acad990e2640c9ebf 100644 (file)
@@ -174,6 +174,10 @@ func (b *bmap) overflow(t *maptype) *bmap {
        return *(**bmap)(add(unsafe.Pointer(b), uintptr(t.bucketsize)-sys.PtrSize))
 }
 
+func (b *bmap) setoverflow(t *maptype, ovf *bmap) {
+       *(**bmap)(add(unsafe.Pointer(b), uintptr(t.bucketsize)-sys.PtrSize)) = ovf
+}
+
 // incrnoverflow increments h.noverflow.
 // noverflow counts the number of overflow buckets.
 // This is used to trigger same-size map growth.
@@ -207,7 +211,7 @@ func (h *hmap) newoverflow(t *maptype, b *bmap) *bmap {
                h.createOverflow()
                *h.extra.overflow[0] = append(*h.extra.overflow[0], ovf)
        }
-       *(**bmap)(add(unsafe.Pointer(b), uintptr(t.bucketsize)-sys.PtrSize)) = ovf
+       b.setoverflow(t, ovf)
        return ovf
 }