1
0
mirror of https://github.com/golang/go synced 2024-11-20 00:04:43 -07:00

cmd/link: refactor container()

* rename to emitPcln because I'd like to skip not only container types,
  but also something like "go.buildid" in the future.
* return bool instead of int.

Change-Id: I029adb81292f7dd2fe98e69f3877c5c27f32ec30
Reviewed-on: https://go-review.googlesource.com/59415
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Hiroshi Ioka 2017-08-28 15:00:49 +09:00 committed by Ian Lance Taylor
parent 0564e304a6
commit 0e2cde7c69

View File

@ -171,19 +171,19 @@ func onlycsymbol(s *Symbol) bool {
return false
}
func container(s *Symbol) int {
func emitPcln(s *Symbol) bool {
if s == nil {
return 0
return true
}
if Buildmode == BuildmodePlugin && Headtype == objabi.Hdarwin && onlycsymbol(s) {
return 1
return false
}
// We want to generate func table entries only for the "lowest level" symbols,
// not containers of subsymbols.
if s.Type&SCONTAINER != 0 {
return 1
return false
}
return 0
return true
}
// pclntab initializes the pclntab symbol with
@ -220,7 +220,7 @@ func (ctxt *Link) pclntab() {
}
for _, s := range ctxt.Textp {
if container(s) == 0 {
if emitPcln(s) {
nfunc++
}
}
@ -247,7 +247,7 @@ func (ctxt *Link) pclntab() {
var last *Symbol
for _, s := range ctxt.Textp {
last = s
if container(s) != 0 {
if !emitPcln(s) {
continue
}
pcln := s.FuncInfo
@ -464,7 +464,7 @@ func (ctxt *Link) findfunctab() {
}
idx := int32(0)
for i, s := range ctxt.Textp {
if container(s) != 0 {
if !emitPcln(s) {
continue
}
p := s.Value
@ -473,7 +473,7 @@ func (ctxt *Link) findfunctab() {
if i < len(ctxt.Textp) {
e = ctxt.Textp[i]
}
for container(e) != 0 && i < len(ctxt.Textp) {
for !emitPcln(e) && i < len(ctxt.Textp) {
e = ctxt.Textp[i]
i++
}