From 7055f01e125eb4ad40b84a757a8748c0b88854f4 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Fri, 20 Mar 2020 10:34:58 -0400 Subject: [PATCH] [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 --- src/cmd/link/internal/loader/loader.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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) } -- 2.50.0