mirror of
https://github.com/tursom/TursomServer.git
synced 2025-03-13 11:20:10 +08:00
fix fucking java nio buffer bugs
This commit is contained in:
parent
5e7d84e856
commit
3a11dac3b4
@ -33,11 +33,16 @@ class DirectByteBuffer(
|
||||
}
|
||||
|
||||
override fun reset() {
|
||||
buffer.limit(writePosition)
|
||||
buffer.position(readPosition)
|
||||
buffer.compact()
|
||||
readPosition = buffer.position()
|
||||
writePosition = buffer.limit()
|
||||
if (writePosition == readPosition) {
|
||||
readPosition = 0
|
||||
writePosition = 0
|
||||
} else {
|
||||
buffer.limit(writePosition)
|
||||
buffer.position(readPosition)
|
||||
buffer.compact()
|
||||
readPosition = buffer.position()
|
||||
writePosition = buffer.limit()
|
||||
}
|
||||
}
|
||||
|
||||
override fun slice(position: Int, size: Int, readPosition: Int, writePosition: Int): ByteBuffer {
|
||||
|
@ -41,11 +41,16 @@ class HeapByteBuffer(
|
||||
}
|
||||
|
||||
override fun reset() {
|
||||
buffer.limit(writePosition)
|
||||
buffer.position(readPosition)
|
||||
buffer.compact()
|
||||
readPosition = buffer.position()
|
||||
writePosition = buffer.limit()
|
||||
if (writePosition == readPosition) {
|
||||
readPosition = 0
|
||||
writePosition = 0
|
||||
} else {
|
||||
buffer.limit(writePosition)
|
||||
buffer.position(readPosition)
|
||||
buffer.compact()
|
||||
readPosition = buffer.position()
|
||||
writePosition = buffer.limit()
|
||||
}
|
||||
}
|
||||
|
||||
override fun slice(position: Int, size: Int, readPosition: Int, writePosition: Int): ByteBuffer {
|
||||
|
Loading…
Reference in New Issue
Block a user