From: Josh Bleecher Snyder Date: Sun, 16 Apr 2017 13:27:24 +0000 (-0700) Subject: runtime: add bmap.setoverflow X-Git-Tag: go1.9beta1~620 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=17d497feaabfee336e9eaec91803a5e9aff77bdb;p=gostls13.git runtime: add bmap.setoverflow 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 TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- diff --git a/src/runtime/hashmap.go b/src/runtime/hashmap.go index 745ff40b5b..5243236f01 100644 --- a/src/runtime/hashmap.go +++ b/src/runtime/hashmap.go @@ -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 }