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