]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: delete shNames
authorAlex Brainman <alex.brainman@gmail.com>
Mon, 5 Jun 2017 04:35:46 +0000 (14:35 +1000)
committerAlex Brainman <alex.brainman@gmail.com>
Wed, 16 Aug 2017 05:13:18 +0000 (05:13 +0000)
Change-Id: Ie5d12ba4105fec17551637d066d0dffd508f74a4
Reviewed-on: https://go-review.googlesource.com/55261
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/link/internal/ld/pe.go

index a2ef5520a4371ecf7fd976ef9083b2b186f5024b..171fa6da6eb36ee9ab3953e97e0a11bafe77e16c 100644 (file)
@@ -340,9 +340,6 @@ var oh IMAGE_OPTIONAL_HEADER
 
 var oh64 PE64_IMAGE_OPTIONAL_HEADER
 
-// shNames stores full names of PE sections stored in sh.
-var shNames []string
-
 var dd []IMAGE_DATA_DIRECTORY
 
 type Imp struct {
@@ -450,7 +447,6 @@ func (f *peFile) addSection(name string, sectsize int, filesize int) *peSection
        }
        f.sections = append(f.sections, sect)
        pensect++
-       shNames = append(shNames, name)
        return sect
 }
 
@@ -951,9 +947,9 @@ func peemitreloc(ctxt *Link, text, data, ctors *peSection) {
 
 dwarfLoop:
        for _, sect := range Segdwarf.Sections {
-               for i, name := range shNames {
-                       if sect.Name == name {
-                               peemitsectreloc(pefile.sections[i], func() int {
+               for _, pesect := range pefile.sections {
+                       if sect.Name == pesect.name {
+                               peemitsectreloc(pesect, func() int {
                                        return perelocsect(ctxt, sect, dwarfp, sect.Vaddr)
                                })
                                continue dwarfLoop
@@ -1090,9 +1086,9 @@ func writePESymTableRecords(ctxt *Link) int {
        if Linkmode == LinkExternal {
                // Include section symbols as external, because
                // .ctors and .debug_* section relocations refer to it.
-               for idx, name := range shNames {
-                       sym := ctxt.Syms.Lookup(name, 0)
-                       writeOneSymbol(sym, 0, idx+1, IMAGE_SYM_TYPE_NULL, IMAGE_SYM_CLASS_STATIC)
+               for _, pesect := range pefile.sections {
+                       sym := ctxt.Syms.Lookup(pesect.name, 0)
+                       writeOneSymbol(sym, 0, pesect.index, IMAGE_SYM_TYPE_NULL, IMAGE_SYM_CLASS_STATIC)
                }
        }