Skip to content
This repository was archived by the owner on May 8, 2019. It is now read-only.

Commit 953bdd2

Browse files
committed
renamed variables for consistency and improved writing small integers
1 parent eb97c00 commit 953bdd2

File tree

4 files changed

+69
-44
lines changed

4 files changed

+69
-44
lines changed

msgp/defs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func wfixstr(u uint8) byte {
123123
}
124124

125125
func rfixarray(b byte) uint8 {
126-
return (b & last4)
126+
return b & last4
127127
}
128128

129129
func wfixarray(u uint8) byte {

msgp/extension.go

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -111,84 +111,84 @@ func (mw *Writer) WriteExtension(e Extension) error {
111111
l := e.Len()
112112
switch l {
113113
case 0:
114-
o, err := mw.require(3)
114+
i, err := mw.require(3)
115115
if err != nil {
116116
return err
117117
}
118-
mw.buf[o] = mext8
119-
mw.buf[o+1] = 0
120-
mw.buf[o+2] = byte(e.ExtensionType())
118+
mw.buf[i] = mext8
119+
mw.buf[i+1] = 0
120+
mw.buf[i+2] = byte(e.ExtensionType())
121121
case 1:
122-
o, err := mw.require(2)
122+
i, err := mw.require(2)
123123
if err != nil {
124124
return err
125125
}
126-
mw.buf[o] = mfixext1
127-
mw.buf[o+1] = byte(e.ExtensionType())
126+
mw.buf[i] = mfixext1
127+
mw.buf[i+1] = byte(e.ExtensionType())
128128
case 2:
129-
o, err := mw.require(2)
129+
i, err := mw.require(2)
130130
if err != nil {
131131
return err
132132
}
133-
mw.buf[o] = mfixext2
134-
mw.buf[o+1] = byte(e.ExtensionType())
133+
mw.buf[i] = mfixext2
134+
mw.buf[i+1] = byte(e.ExtensionType())
135135
case 4:
136-
o, err := mw.require(2)
136+
i, err := mw.require(2)
137137
if err != nil {
138138
return err
139139
}
140-
mw.buf[o] = mfixext4
141-
mw.buf[o+1] = byte(e.ExtensionType())
140+
mw.buf[i] = mfixext4
141+
mw.buf[i+1] = byte(e.ExtensionType())
142142
case 8:
143-
o, err := mw.require(2)
143+
i, err := mw.require(2)
144144
if err != nil {
145145
return err
146146
}
147-
mw.buf[o] = mfixext8
148-
mw.buf[o+1] = byte(e.ExtensionType())
147+
mw.buf[i] = mfixext8
148+
mw.buf[i+1] = byte(e.ExtensionType())
149149
case 16:
150-
o, err := mw.require(2)
150+
i, err := mw.require(2)
151151
if err != nil {
152152
return err
153153
}
154-
mw.buf[o] = mfixext16
155-
mw.buf[o+1] = byte(e.ExtensionType())
154+
mw.buf[i] = mfixext16
155+
mw.buf[i+1] = byte(e.ExtensionType())
156156
default:
157157
switch {
158158
case l < math.MaxUint8:
159-
o, err := mw.require(3)
159+
i, err := mw.require(3)
160160
if err != nil {
161161
return err
162162
}
163-
mw.buf[o] = mext8
164-
mw.buf[o+1] = byte(uint8(l))
165-
mw.buf[o+2] = byte(e.ExtensionType())
163+
mw.buf[i] = mext8
164+
mw.buf[i+1] = byte(uint8(l))
165+
mw.buf[i+2] = byte(e.ExtensionType())
166166
case l < math.MaxUint16:
167-
o, err := mw.require(4)
167+
i, err := mw.require(4)
168168
if err != nil {
169169
return err
170170
}
171-
mw.buf[o] = mext16
172-
big.PutUint16(mw.buf[o+1:], uint16(l))
173-
mw.buf[o+3] = byte(e.ExtensionType())
171+
mw.buf[i] = mext16
172+
big.PutUint16(mw.buf[i+1:], uint16(l))
173+
mw.buf[i+3] = byte(e.ExtensionType())
174174
default:
175-
o, err := mw.require(6)
175+
i, err := mw.require(6)
176176
if err != nil {
177177
return err
178178
}
179-
mw.buf[o] = mext32
180-
big.PutUint32(mw.buf[o+1:], uint32(l))
181-
mw.buf[o+5] = byte(e.ExtensionType())
179+
mw.buf[i] = mext32
180+
big.PutUint32(mw.buf[i+1:], uint32(l))
181+
mw.buf[i+5] = byte(e.ExtensionType())
182182
}
183183
}
184184
// We can only write directly to the buffer if we're sure that it
185185
// fits the object.
186186
if l <= len(mw.buf) {
187-
o, err := mw.require(l)
187+
i, err := mw.require(l)
188188
if err != nil {
189189
return err
190190
}
191-
return e.MarshalBinaryTo(mw.buf[o:])
191+
return e.MarshalBinaryTo(mw.buf[i:])
192192
}
193193
// Here we create a new buffer just large enough for the body
194194
// and save it as the write buffer.

msgp/write.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,15 @@ func (mw *Writer) WriteInt64(i int64) error {
309309
}
310310

311311
// WriteInt8 writes an int8 to the writer.
312-
func (mw *Writer) WriteInt8(i int8) error { return mw.WriteInt64(int64(i)) }
312+
func (mw *Writer) WriteInt8(i int8) error {
313+
if i >= 0 {
314+
return mw.push(wfixint(uint8(i)))
315+
}
316+
if i >= -32 {
317+
return mw.push(wnfixint(i))
318+
}
319+
return mw.prefix8(mint8, uint8(i))
320+
}
313321

314322
// WriteInt16 writes an int16 to the writer.
315323
func (mw *Writer) WriteInt16(i int16) error { return mw.WriteInt64(int64(i)) }

msgp/write_bytes.go

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,18 @@ func AppendInt64(b []byte, i int64) []byte {
126126
}
127127
}
128128

129-
// AppendInt appends an int b.
130-
func AppendInt(b []byte, i int) []byte { return AppendInt64(b, int64(i)) }
131-
132129
// AppendInt8 appends an int8 b.
133-
func AppendInt8(b []byte, i int8) []byte { return AppendInt64(b, int64(i)) }
130+
func AppendInt8(b []byte, i int8) []byte {
131+
if i >= 0 {
132+
return append(b, wfixint(uint8(i)))
133+
}
134+
if i >= -32 {
135+
return append(b, wnfixint(int8(i)))
136+
}
137+
o, n := ensure(b, 2)
138+
putMint8(o[n:], i)
139+
return o
140+
}
134141

135142
// AppendInt16 appends an int16 b.
136143
func AppendInt16(b []byte, i int16) []byte { return AppendInt64(b, int64(i)) }
@@ -141,7 +148,7 @@ func AppendInt32(b []byte, i int32) []byte { return AppendInt64(b, int64(i)) }
141148
// AppendUint64 appends a uint64 b.
142149
func AppendUint64(b []byte, u uint64) []byte {
143150
switch {
144-
case u <= 127:
151+
case u <= math.MaxInt8:
145152
return append(b, wfixint(uint8(u)))
146153
case u <= math.MaxUint8:
147154
o, n := ensure(b, 2)
@@ -166,17 +173,27 @@ func AppendUint64(b []byte, u uint64) []byte {
166173
func AppendUint(b []byte, u uint) []byte { return AppendUint64(b, uint64(u)) }
167174

168175
// AppendUint8 appends a uint8 b.
169-
func AppendUint8(b []byte, u uint8) []byte { return AppendUint64(b, uint64(u)) }
170-
171-
// AppendByte is analogous to AppendUint8
172-
func AppendByte(b []byte, u byte) []byte { return AppendUint8(b, uint8(u)) }
176+
func AppendUint8(b []byte, u uint8) []byte {
177+
if u <= math.MaxInt8 {
178+
return append(b, wfixint(uint8(u)))
179+
}
180+
o, n := ensure(b, 2)
181+
putMuint8(o[n:], u)
182+
return o
183+
}
173184

174185
// AppendUint16 appends a uint16 b.
175186
func AppendUint16(b []byte, u uint16) []byte { return AppendUint64(b, uint64(u)) }
176187

177188
// AppendUint32 appends a uint32 b.
178189
func AppendUint32(b []byte, u uint32) []byte { return AppendUint64(b, uint64(u)) }
179190

191+
// AppendInt appends an int b.
192+
func AppendInt(b []byte, i int) []byte { return AppendInt64(b, int64(i)) }
193+
194+
// AppendByte does the same thing as AppendUint8
195+
func AppendByte(b []byte, u byte) []byte { return AppendUint8(b, u) }
196+
180197
// AppendBytes appends bytes b as MessagePack 'bin' data.
181198
func AppendBytes(b []byte, bts []byte) []byte {
182199
sz := len(bts)

0 commit comments

Comments
 (0)