diff options
Diffstat (limited to 'src/cmd/link')
| -rw-r--r-- | src/cmd/link/internal/ld/lib.go | 5 | ||||
| -rw-r--r-- | src/cmd/link/internal/ld/macho_combine_dwarf.go | 2 | ||||
| -rw-r--r-- | src/cmd/link/internal/ld/xcoff.go | 8 | ||||
| -rw-r--r-- | src/cmd/link/internal/loadxcoff/ldxcoff.go | 4 |
4 files changed, 10 insertions, 9 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 0219beeb10..0db830e2c8 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2528,8 +2528,9 @@ func ldshlibsyms(ctxt *Link, shlib string) { Errorf(nil, "cannot read dep list from shared library %s: %v", libpath, err) return } - var deps []string - for _, dep := range strings.Split(string(depsbytes), "\n") { + depsSplit := strings.Split(string(depsbytes), "\n") + deps := make([]string, 0, len(depsSplit)) + for _, dep := range depsSplit { if dep == "" { continue } diff --git a/src/cmd/link/internal/ld/macho_combine_dwarf.go b/src/cmd/link/internal/ld/macho_combine_dwarf.go index 2e8bfcdbed..4fb3465fe8 100644 --- a/src/cmd/link/internal/ld/macho_combine_dwarf.go +++ b/src/cmd/link/internal/ld/macho_combine_dwarf.go @@ -256,7 +256,7 @@ func machoCompressSections(ctxt *Link, dwarfm *macho.File) ([]*macho.Section, [] } dwarfseg := dwarfm.Segment("__DWARF") - var sects []*macho.Section + sects := make([]*macho.Section, 0, len(dwarfm.Sections)) var buf bytes.Buffer for _, sect := range dwarfm.Sections { diff --git a/src/cmd/link/internal/ld/xcoff.go b/src/cmd/link/internal/ld/xcoff.go index d915ab393b..1ddd3a630b 100644 --- a/src/cmd/link/internal/ld/xcoff.go +++ b/src/cmd/link/internal/ld/xcoff.go @@ -1355,10 +1355,10 @@ func Loaderblk(ctxt *Link, off uint64) { } func (f *xcoffFile) writeLdrScn(ctxt *Link, globalOff uint64) { - var symtab []*XcoffLdSym64 - var strtab []*XcoffLdStr64 - var importtab []*XcoffLdImportFile64 - var reloctab []*XcoffLdRel64 + symtab := make([]*XcoffLdSym64, 0, len(f.loaderSymbols)) + strtab := make([]*XcoffLdStr64, 0, len(f.loaderSymbols)) + importtab := make([]*XcoffLdImportFile64, 0, len(f.dynLibraries)) + reloctab := make([]*XcoffLdRel64, 0, len(f.loaderReloc)) var dynimpreloc []*XcoffLdRel64 // As the string table is updated in any loader subsection, diff --git a/src/cmd/link/internal/loadxcoff/ldxcoff.go b/src/cmd/link/internal/loadxcoff/ldxcoff.go index 29d162596a..50b472047a 100644 --- a/src/cmd/link/internal/loadxcoff/ldxcoff.go +++ b/src/cmd/link/internal/loadxcoff/ldxcoff.go @@ -46,14 +46,14 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read return nil, fmt.Errorf("loadxcoff: %v: %v", pn, fmt.Sprintf(str, args...)) } - var ldSections []*ldSection - f, err := xcoff.NewFile((*xcoffBiobuf)(input)) if err != nil { return nil, err } defer f.Close() + ldSections := make([]*ldSection, 0, len(f.Sections)) + for _, sect := range f.Sections { //only text, data and bss section if sect.Type < xcoff.STYP_TEXT || sect.Type > xcoff.STYP_BSS { |
