fix[go]: golang adjust padding is not deep clone

This commit is contained in:
godotg
2024-07-29 11:02:00 +08:00
parent 7c516da9d1
commit 7c58329a28
2 changed files with 16 additions and 2 deletions
@@ -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)
}
}
@@ -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)
}
}