]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: refactor setCgoAttr
authorAustin Clements <austin@google.com>
Sun, 11 Apr 2021 20:30:36 +0000 (16:30 -0400)
committerAustin Clements <austin@google.com>
Tue, 13 Apr 2021 20:07:43 +0000 (20:07 +0000)
setCgoAttr takes a lookup function, but there's only a single call and
setCgoAttr already has access to the lookup function passed at that
call. Simplify setCgoAttr by eliminating the lookup parameter and
calling the lookup function directly.

For #40724.

Change-Id: Ib27c0fa2b88c387e30423365f7757e3ba02cf7d5
Reviewed-on: https://go-review.googlesource.com/c/go/+/309338
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/cmd/link/internal/ld/go.go
src/cmd/link/internal/ld/lib.go

index fbc7a78d0ed299b98811419fb77c32366e3c96c0..8cbdd58b3a3dd3f41f3d996a70cf62c2fd53dd85 100644 (file)
@@ -130,7 +130,7 @@ func loadcgo(ctxt *Link, file string, pkg string, p string) {
 
 // Set symbol attributes or flags based on cgo directives.
 // Any newly discovered HOSTOBJ syms are added to 'hostObjSyms'.
-func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pkg string, directives [][]string, hostObjSyms map[loader.Sym]struct{}) {
+func setCgoAttr(ctxt *Link, file string, pkg string, directives [][]string, hostObjSyms map[loader.Sym]struct{}) {
        l := ctxt.loader
        for _, f := range directives {
                switch f[0] {
@@ -173,7 +173,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk
                        if i := strings.Index(remote, "#"); i >= 0 {
                                remote, q = remote[:i], remote[i+1:]
                        }
-                       s := lookup(local, 0)
+                       s := l.LookupOrCreateSym(local, 0)
                        st := l.SymType(s)
                        if st == 0 || st == sym.SXREF || st == sym.SBSS || st == sym.SNOPTRBSS || st == sym.SHOSTOBJ {
                                l.SetSymDynimplib(s, lib)
@@ -199,7 +199,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk
                        }
                        local := f[1]
 
-                       s := lookup(local, 0)
+                       s := l.LookupOrCreateSym(local, 0)
                        su := l.MakeSymbolUpdater(s)
                        su.SetType(sym.SHOSTOBJ)
                        su.SetSize(0)
@@ -222,7 +222,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk
                        // functions. Link.loadlib will resolve any
                        // ABI aliases we find here (since we may not
                        // yet know it's an alias).
-                       s := lookup(local, 0)
+                       s := l.LookupOrCreateSym(local, 0)
 
                        if l.SymType(s) == sym.SHOSTOBJ {
                                hostObjSyms[s] = struct{}{}
@@ -230,7 +230,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk
 
                        switch ctxt.BuildMode {
                        case BuildModeCShared, BuildModeCArchive, BuildModePlugin:
-                               if s == lookup("main", 0) {
+                               if s == l.Lookup("main", 0) {
                                        continue
                                }
                        }
index 46d238a3181f940e1e20282cb6cdfec495de3f16..520d57a72e7cefbcfb60db209d82c62f735f4d98 100644 (file)
@@ -681,7 +681,7 @@ func (ctxt *Link) loadcgodirectives() {
        l := ctxt.loader
        hostObjSyms := make(map[loader.Sym]struct{})
        for _, d := range ctxt.cgodata {
-               setCgoAttr(ctxt, ctxt.loader.LookupOrCreateSym, d.file, d.pkg, d.directives, hostObjSyms)
+               setCgoAttr(ctxt, d.file, d.pkg, d.directives, hostObjSyms)
        }
        ctxt.cgodata = nil