}
}
lists := [][]*LSym{ctxt.Text, ctxt.Data}
+ files := ctxt.PosTable.FileTable()
for _, list := range lists {
for _, s := range list {
if flag&traverseDefs != 0 {
f := func(parent *LSym, aux *LSym) {
fn(aux)
}
- ctxt.traverseFuncAux(flag, s, f)
+ ctxt.traverseFuncAux(flag, s, f, files)
}
}
if flag&traversePcdata != 0 && s.Type == objabi.STEXT {
}
}
-func (ctxt *Link) traverseFuncAux(flag traverseFlag, fsym *LSym, fn func(parent *LSym, aux *LSym)) {
+func (ctxt *Link) traverseFuncAux(flag traverseFlag, fsym *LSym, fn func(parent *LSym, aux *LSym), files []string) {
fninfo := fsym.Func()
pc := &fninfo.Pcln
if flag&traverseAux == 0 {
fn(fsym, d)
}
}
- files := ctxt.PosTable.FileTable()
usedFiles := make([]goobj.CUFileIndex, 0, len(pc.UsedFiles))
for f := range pc.UsedFiles {
usedFiles = append(usedFiles, f)
// Traverse aux symbols, calling fn for each sym/aux pair.
func (ctxt *Link) traverseAuxSyms(flag traverseFlag, fn func(parent *LSym, aux *LSym)) {
lists := [][]*LSym{ctxt.Text, ctxt.Data}
+ files := ctxt.PosTable.FileTable()
for _, list := range lists {
for _, s := range list {
if s.Gotype != nil {
if s.Type != objabi.STEXT {
continue
}
- ctxt.traverseFuncAux(flag, s, fn)
+ ctxt.traverseFuncAux(flag, s, fn, files)
}
}
}