diff --git a/protocol/src/main/resources/golang/ByteBuffer.go b/protocol/src/main/resources/golang/ByteBuffer.go index 38bfdaa7..a7e8f0a9 100644 --- a/protocol/src/main/resources/golang/ByteBuffer.go +++ b/protocol/src/main/resources/golang/ByteBuffer.go @@ -29,11 +29,18 @@ func (byteBuffer *ByteBuffer) AdjustPadding(predictionLength int, beforeWriteInd byteBuffer.SetWriteOffset(beforeWriteIndex) byteBuffer.WriteInt(length) byteBuffer.SetWriteOffset(currentWriteIndex) - } else { + } else if padding < 0 { var byteArray = byteBuffer.buffer[(currentWriteIndex - length):currentWriteIndex] byteBuffer.SetWriteOffset(beforeWriteIndex) byteBuffer.WriteInt(length) byteBuffer.WriteUBytes(byteArray) + } else { + var byteArray = byteBuffer.buffer[(currentWriteIndex - length):currentWriteIndex] + var copyBytes = make([]byte, length) + copy(copyBytes, byteArray) + byteBuffer.SetWriteOffset(beforeWriteIndex) + byteBuffer.WriteInt(length) + byteBuffer.WriteUBytes(copyBytes) } } diff --git a/protocol/src/test/golang/zfoogo/ByteBuffer.go b/protocol/src/test/golang/zfoogo/ByteBuffer.go index 38bfdaa7..a7e8f0a9 100644 --- a/protocol/src/test/golang/zfoogo/ByteBuffer.go +++ b/protocol/src/test/golang/zfoogo/ByteBuffer.go @@ -29,11 +29,18 @@ func (byteBuffer *ByteBuffer) AdjustPadding(predictionLength int, beforeWriteInd byteBuffer.SetWriteOffset(beforeWriteIndex) byteBuffer.WriteInt(length) byteBuffer.SetWriteOffset(currentWriteIndex) - } else { + } else if padding < 0 { var byteArray = byteBuffer.buffer[(currentWriteIndex - length):currentWriteIndex] byteBuffer.SetWriteOffset(beforeWriteIndex) byteBuffer.WriteInt(length) byteBuffer.WriteUBytes(byteArray) + } else { + var byteArray = byteBuffer.buffer[(currentWriteIndex - length):currentWriteIndex] + var copyBytes = make([]byte, length) + copy(copyBytes, byteArray) + byteBuffer.SetWriteOffset(beforeWriteIndex) + byteBuffer.WriteInt(length) + byteBuffer.WriteUBytes(copyBytes) } }