aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/map_faststr.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/map_faststr.go')
-rw-r--r--src/runtime/map_faststr.go5
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--