Skip to content

Commit b681149

Browse files
authored
Merge pull request #424 from aaronbee/sortKeysMapAllocations
Reduce allocations in sortKeysMapEncoder
2 parents d1af763 + f814d6c commit b681149

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

reflect_map.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,13 +293,13 @@ func (encoder *sortKeysMapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
293293
subIter := stream.cfg.BorrowIterator(nil)
294294
keyValues := encodedKeyValues{}
295295
for mapIter.HasNext() {
296-
subStream.buf = make([]byte, 0, 64)
297296
key, elem := mapIter.UnsafeNext()
297+
subStreamIndex := subStream.Buffered()
298298
encoder.keyEncoder.Encode(key, subStream)
299299
if subStream.Error != nil && subStream.Error != io.EOF && stream.Error == nil {
300300
stream.Error = subStream.Error
301301
}
302-
encodedKey := subStream.Buffer()
302+
encodedKey := subStream.Buffer()[subStreamIndex:]
303303
subIter.ResetBytes(encodedKey)
304304
decodedKey := subIter.ReadString()
305305
if stream.indention > 0 {
@@ -310,7 +310,7 @@ func (encoder *sortKeysMapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
310310
encoder.elemEncoder.Encode(elem, subStream)
311311
keyValues = append(keyValues, encodedKV{
312312
key: decodedKey,
313-
keyValue: subStream.Buffer(),
313+
keyValue: subStream.Buffer()[subStreamIndex:],
314314
})
315315
}
316316
sort.Sort(keyValues)

0 commit comments

Comments
 (0)