]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: minor perf tweak for PropagateLoaderChangesToSymbols
authorThan McIntosh <thanm@google.com>
Fri, 20 Mar 2020 14:34:58 +0000 (10:34 -0400)
committerThan McIntosh <thanm@google.com>
Fri, 20 Mar 2020 20:31:35 +0000 (20:31 +0000)
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 <jeremy@golang.org>
src/cmd/link/internal/loader/loader.go

index 77b072bcf0fabcfbdeb90e0bb4e1603654c94db0..a916c50f19ddb4bbd97328ea227e64f952cbfe15 100644 (file)
@@ -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)
        }