aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2021-09-07 10:51:14 -0700
committerMatthew Dempsky <mdempsky@google.com>2021-09-07 18:36:13 +0000
commite581ec07eed006e7a54306457ff8d9931b2aae7c (patch)
treea61115e881875eb39d9741f5c8b9967400a77fdd /src/cmd
parent81188661f1fd51f67dfff40c451d4e878b533a66 (diff)
downloadgo-e581ec07eed006e7a54306457ff8d9931b2aae7c.tar.xz
cmd/compile: fix lazy loading in reader2
Calling reader2.obj fully loads the referenced object, which is necessary in general; but for reading the package index, we just need to setup the name->index mapping. This CL adds this, so that lazy loading works as intended. Change-Id: Ie51d59e2247d99b46f9dc69fba7ce89e2584b7c4 Reviewed-on: https://go-review.googlesource.com/c/go/+/348011 Trust: Matthew Dempsky <mdempsky@google.com> Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/compile/internal/noder/reader2.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/noder/reader2.go b/src/cmd/compile/internal/noder/reader2.go
index cffa037236..296d84289c 100644
--- a/src/cmd/compile/internal/noder/reader2.go
+++ b/src/cmd/compile/internal/noder/reader2.go
@@ -43,7 +43,12 @@ func readPackage2(check *types2.Checker, imports map[string]*types2.Package, inp
r.bool() // has init
for i, n := 0, r.len(); i < n; i++ {
- r.obj()
+ // As if r.obj(), but avoiding the Scope.Lookup call,
+ // to avoid eager loading of imports.
+ r.sync(syncObject)
+ assert(!r.bool())
+ r.p.objIdx(r.reloc(relocObj))
+ assert(r.len() == 0)
}
r.sync(syncEOF)