From: Michael Hudson-Doyle Date: Thu, 27 Apr 2017 20:07:56 +0000 (+1200) Subject: cmd/internal/objabi: shrink SymType down to a uint8 X-Git-Tag: go1.9beta1~401 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4aca8b00fffe2d228d6dc9d4d061148bb721efd4;p=gostls13.git cmd/internal/objabi: shrink SymType down to a uint8 Now that it only takes small values. Change-Id: I08086d392529d8775b470d65afc2475f8d0e7f4a Reviewed-on: https://go-review.googlesource.com/42030 Run-TryBot: Michael Hudson-Doyle TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index b81d569348..2528064a82 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -283,7 +283,7 @@ func (w *objWriter) writeSym(s *LSym) { } w.wr.WriteByte(symPrefix) - w.writeInt(int64(s.Type)) + w.wr.WriteByte(byte(s.Type)) w.writeRefIndex(s) flags := int64(0) if s.DuplicateOK() { diff --git a/src/cmd/internal/objabi/symkind.go b/src/cmd/internal/objabi/symkind.go index 6219436fb7..62a7efd964 100644 --- a/src/cmd/internal/objabi/symkind.go +++ b/src/cmd/internal/objabi/symkind.go @@ -31,7 +31,7 @@ package objabi // A SymKind describes the kind of memory represented by a symbol. -type SymKind int16 +type SymKind uint8 // Defined SymKind values. // diff --git a/src/cmd/internal/objabi/symkind_string.go b/src/cmd/internal/objabi/symkind_string.go index b28628b520..aabcfd2d54 100644 --- a/src/cmd/internal/objabi/symkind_string.go +++ b/src/cmd/internal/objabi/symkind_string.go @@ -9,7 +9,7 @@ const _SymKind_name = "SxxxSTEXTSRODATASNOPTRDATASDATASBSSSNOPTRBSSSTLSBSSSDWARF var _SymKind_index = [...]uint8{0, 4, 9, 16, 26, 31, 35, 44, 51, 61} func (i SymKind) String() string { - if i < 0 || i >= SymKind(len(_SymKind_index)-1) { + if i >= SymKind(len(_SymKind_index)-1) { return fmt.Sprintf("SymKind(%d)", i) } return _SymKind_name[_SymKind_index[i]:_SymKind_index[i+1]] diff --git a/src/cmd/link/internal/ld/objfile.go b/src/cmd/link/internal/ld/objfile.go index 2bfa5d3e7c..c91fe28458 100644 --- a/src/cmd/link/internal/ld/objfile.go +++ b/src/cmd/link/internal/ld/objfile.go @@ -155,10 +155,15 @@ func (r *objReader) readSlices() { const symPrefix = 0xfe func (r *objReader) readSym() { - if c, err := r.rd.ReadByte(); c != symPrefix || err != nil { + var c byte + var err error + if c, err = r.rd.ReadByte(); c != symPrefix || err != nil { log.Fatalln("readSym out of sync") } - t := abiSymKindToSymKind[r.readInt()] + if c, err = r.rd.ReadByte(); err != nil { + log.Fatalln("error reading input: ", err) + } + t := abiSymKindToSymKind[c] s := r.readSymIndex() flags := r.readInt() dupok := flags&1 != 0