diff options
Diffstat (limited to 'src/runtime/map_fast64.go')
| -rw-r--r-- | src/runtime/map_fast64.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/map_fast64.go b/src/runtime/map_fast64.go index aa3eff8ac8..4bde9e2be0 100644 --- a/src/runtime/map_fast64.go +++ b/src/runtime/map_fast64.go @@ -293,10 +293,11 @@ search: if t.key.kind&kindNoPointers == 0 { memclrHasPointers(k, t.key.size) } - // Only clear value if there are pointers in it. + v := add(unsafe.Pointer(b), dataOffset+bucketCnt*8+i*uintptr(t.valuesize)) if t.elem.kind&kindNoPointers == 0 { - v := add(unsafe.Pointer(b), dataOffset+bucketCnt*8+i*uintptr(t.valuesize)) memclrHasPointers(v, t.elem.size) + } else { + memclrNoHeapPointers(v, t.elem.size) } b.tophash[i] = empty h.count-- |
