aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/mbitmap_allocheaders.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/mbitmap_allocheaders.go')
-rw-r--r--src/runtime/mbitmap_allocheaders.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/runtime/mbitmap_allocheaders.go b/src/runtime/mbitmap_allocheaders.go
index 77f5b4c990..319d71f92f 100644
--- a/src/runtime/mbitmap_allocheaders.go
+++ b/src/runtime/mbitmap_allocheaders.go
@@ -1078,6 +1078,11 @@ func getgcmask(ep any) (mask []byte) {
for len(mask) > 0 && mask[len(mask)-1] == 0 {
mask = mask[:len(mask)-1]
}
+
+ // Make sure we keep ep alive. We may have stopped referencing
+ // ep's data pointer sometime before this point and it's possible
+ // for that memory to get freed.
+ KeepAlive(ep)
return
}