aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/symtab.go
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2021-04-12 22:40:36 +0000
committerMichael Knyszek <mknyszek@google.com>2021-10-29 18:35:29 +0000
commit9da64156a62e4661fb5b0e64a2f196f253ce0dc5 (patch)
tree980008ec8e622265169466539c121d0148374310 /src/runtime/symtab.go
parent9ac1ee2d464eff73077afda83677f155bd69c6b8 (diff)
downloadgo-9da64156a62e4661fb5b0e64a2f196f253ce0dc5.tar.xz
runtime: track scannable globals space
For #44167. Change-Id: I2cd13229d88f630451fabd113b0e5a04841e9e79 Reviewed-on: https://go-review.googlesource.com/c/go/+/309590 Trust: Michael Knyszek <mknyszek@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/runtime/symtab.go')
-rw-r--r--src/runtime/symtab.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/runtime/symtab.go b/src/runtime/symtab.go
index 41161d6f90..3237a6b708 100644
--- a/src/runtime/symtab.go
+++ b/src/runtime/symtab.go
@@ -529,8 +529,11 @@ func modulesinit() {
}
*modules = append(*modules, md)
if md.gcdatamask == (bitvector{}) {
- md.gcdatamask = progToPointerMask((*byte)(unsafe.Pointer(md.gcdata)), md.edata-md.data)
- md.gcbssmask = progToPointerMask((*byte)(unsafe.Pointer(md.gcbss)), md.ebss-md.bss)
+ scanDataSize := md.edata - md.data
+ md.gcdatamask = progToPointerMask((*byte)(unsafe.Pointer(md.gcdata)), scanDataSize)
+ scanBSSSize := md.ebss - md.bss
+ md.gcbssmask = progToPointerMask((*byte)(unsafe.Pointer(md.gcbss)), scanBSSSize)
+ gcController.addGlobals(int64(scanDataSize + scanBSSSize))
}
}