diff options
| author | Keith Randall <khr@golang.org> | 2023-08-23 15:19:15 -0700 |
|---|---|---|
| committer | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2023-08-25 16:10:03 +0000 |
| commit | b303fb48558612e5c2a1f10acbc0b1accdb8f260 (patch) | |
| tree | f34de0757ceb37a21560a8f24e9cccb3cc285a06 /src/runtime/map.go | |
| parent | 3b4d428ca0efaa309f7254ed378111cf76a1267d (diff) | |
| download | go-b303fb48558612e5c2a1f10acbc0b1accdb8f260.tar.xz | |
runtime: fix maps.Clone bug when cloning a map mid-grow
Fixes #62203
Change-Id: I0459d3f481b0cd20102f6d9fd3ea84335a7739a8
Reviewed-on: https://go-review.googlesource.com/c/go/+/522317
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/runtime/map.go')
| -rw-r--r-- | src/runtime/map.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/map.go b/src/runtime/map.go index 5d4e470b9e..e6d651f688 100644 --- a/src/runtime/map.go +++ b/src/runtime/map.go @@ -1553,7 +1553,7 @@ func mapclone2(t *maptype, src *hmap) *hmap { } if oldB >= dst.B { // main bucket bits in dst is less than oldB bits in src - dstBmap := (*bmap)(add(dst.buckets, uintptr(i)&bucketMask(dst.B))) + dstBmap := (*bmap)(add(dst.buckets, (uintptr(i)&bucketMask(dst.B))*uintptr(t.BucketSize))) for dstBmap.overflow(t) != nil { dstBmap = dstBmap.overflow(t) } |
