diff options
| author | Matthew Dempsky <mdempsky@google.com> | 2021-09-07 10:51:14 -0700 |
|---|---|---|
| committer | Matthew Dempsky <mdempsky@google.com> | 2021-09-07 18:36:13 +0000 |
| commit | e581ec07eed006e7a54306457ff8d9931b2aae7c (patch) | |
| tree | a61115e881875eb39d9741f5c8b9967400a77fdd /src/cmd/compile/internal/noder/reader2.go | |
| parent | 81188661f1fd51f67dfff40c451d4e878b533a66 (diff) | |
| download | go-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/compile/internal/noder/reader2.go')
| -rw-r--r-- | src/cmd/compile/internal/noder/reader2.go | 7 |
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) |
