From: Than McIntosh Date: Fri, 20 Mar 2020 14:34:58 +0000 (-0400) Subject: [dev.link] cmd/link: minor perf tweak for PropagateLoaderChangesToSymbols X-Git-Tag: go1.15beta1~679^2~55 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7055f01e125eb4ad40b84a757a8748c0b88854f4;p=gostls13.git [dev.link] cmd/link: minor perf tweak for PropagateLoaderChangesToSymbols When fixing up relocations in PropagateLoaderChangesToSymbols, don't reallocate the target sym.Symbol relocation slice if it already has the desired size (this gets rid of some unneeded allocations). Change-Id: I05287772c18cab861c2df805fa9497103fb00dcc Reviewed-on: https://go-review.googlesource.com/c/go/+/224420 Reviewed-by: Jeremy Faller --- diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go index 77b072bcf0..a916c50f19 100644 --- a/src/cmd/link/internal/loader/loader.go +++ b/src/cmd/link/internal/loader/loader.go @@ -1977,7 +1977,9 @@ func (l *Loader) PropagateLoaderChangesToSymbols(toconvert []Sym, syms *sym.Symb s := l.Syms[cand] relocs := l.Relocs(cand) rslice = relocs.ReadAll(rslice) - s.R = make([]sym.Reloc, len(rslice)) + if len(s.R) != len(rslice) { + s.R = make([]sym.Reloc, len(rslice)) + } l.convertRelocations(rslice, s, true) }