|
|
@@ -293,13 +293,13 @@ func (encoder *sortKeysMapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
|
|
|
subIter := stream.cfg.BorrowIterator(nil)
|
|
|
keyValues := encodedKeyValues{}
|
|
|
for mapIter.HasNext() {
|
|
|
- subStream.buf = make([]byte, 0, 64)
|
|
|
key, elem := mapIter.UnsafeNext()
|
|
|
+ subStreamIndex := subStream.Buffered()
|
|
|
encoder.keyEncoder.Encode(key, subStream)
|
|
|
if subStream.Error != nil && subStream.Error != io.EOF && stream.Error == nil {
|
|
|
stream.Error = subStream.Error
|
|
|
}
|
|
|
- encodedKey := subStream.Buffer()
|
|
|
+ encodedKey := subStream.Buffer()[subStreamIndex:]
|
|
|
subIter.ResetBytes(encodedKey)
|
|
|
decodedKey := subIter.ReadString()
|
|
|
if stream.indention > 0 {
|
|
|
@@ -310,7 +310,7 @@ func (encoder *sortKeysMapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
|
|
|
encoder.elemEncoder.Encode(elem, subStream)
|
|
|
keyValues = append(keyValues, encodedKV{
|
|
|
key: decodedKey,
|
|
|
- keyValue: subStream.Buffer(),
|
|
|
+ keyValue: subStream.Buffer()[subStreamIndex:],
|
|
|
})
|
|
|
}
|
|
|
sort.Sort(keyValues)
|