kotstd: update runtime
This commit is contained in:
@@ -187,7 +187,6 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class DirectionResponse private constructor (var code: Int) {
|
class DirectionResponse private constructor (var code: Int) {
|
||||||
//========== Properties ===========
|
//========== Properties ===========
|
||||||
//int32 code = 1
|
//int32 code = 1
|
||||||
|
|||||||
@@ -247,16 +247,25 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
val expectedByteSize = input.readInt32NoTag()
|
val expectedByteSize = input.readInt32NoTag()
|
||||||
var newArray = IntArray(0)
|
|
||||||
var readSize = 0
|
var readSize = 0
|
||||||
|
var arraySize = 0
|
||||||
|
input.mark()
|
||||||
do {
|
do {
|
||||||
var i = 0
|
var i = 0
|
||||||
while(readSize < expectedByteSize) {
|
while(readSize < expectedByteSize) {
|
||||||
var tmp = IntArray(1)
|
var tmp = 0
|
||||||
tmp[0] = input.readInt32NoTag()
|
tmp = input.readInt32NoTag()
|
||||||
newArray = newArray.plus(tmp)
|
arraySize += 1
|
||||||
readSize += WireFormat.getInt32SizeNoTag(tmp[0])
|
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||||
}
|
}
|
||||||
|
} while (false)
|
||||||
|
var newArray = IntArray(arraySize)
|
||||||
|
input.reset()
|
||||||
|
do {
|
||||||
|
var i = 0
|
||||||
|
while(i < arraySize) {
|
||||||
|
newArray[i] = input.readInt32NoTag()
|
||||||
|
i += 1}
|
||||||
distances = newArray
|
distances = newArray
|
||||||
} while (false)
|
} while (false)
|
||||||
}
|
}
|
||||||
@@ -266,16 +275,25 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
val expectedByteSize = input.readInt32NoTag()
|
val expectedByteSize = input.readInt32NoTag()
|
||||||
var newArray = IntArray(0)
|
|
||||||
var readSize = 0
|
var readSize = 0
|
||||||
|
var arraySize = 0
|
||||||
|
input.mark()
|
||||||
do {
|
do {
|
||||||
var i = 0
|
var i = 0
|
||||||
while(readSize < expectedByteSize) {
|
while(readSize < expectedByteSize) {
|
||||||
var tmp = IntArray(1)
|
var tmp = 0
|
||||||
tmp[0] = input.readInt32NoTag()
|
tmp = input.readInt32NoTag()
|
||||||
newArray = newArray.plus(tmp)
|
arraySize += 1
|
||||||
readSize += WireFormat.getInt32SizeNoTag(tmp[0])
|
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||||
}
|
}
|
||||||
|
} while (false)
|
||||||
|
var newArray = IntArray(arraySize)
|
||||||
|
input.reset()
|
||||||
|
do {
|
||||||
|
var i = 0
|
||||||
|
while(i < arraySize) {
|
||||||
|
newArray[i] = input.readInt32NoTag()
|
||||||
|
i += 1}
|
||||||
angles = newArray
|
angles = newArray
|
||||||
} while (false)
|
} while (false)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,15 @@
|
|||||||
class CodedInputStream(val buffer: ByteArray) {
|
class CodedInputStream(val buffer: ByteArray) {
|
||||||
val inputStream: KotlinInputStream
|
val inputStream: KotlinInputStream
|
||||||
init {
|
init {
|
||||||
inputStream = KotlinInputStream(buffer) // TODO: Java's realization uses hand-written buffers. Why?
|
inputStream = KotlinInputStream(buffer)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun mark() {
|
||||||
|
inputStream.mark()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun reset() {
|
||||||
|
inputStream.reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun readInt32(expectedFieldNumber: Int): Int {
|
fun readInt32(expectedFieldNumber: Int): Int {
|
||||||
|
|||||||
@@ -4,14 +4,22 @@
|
|||||||
|
|
||||||
class KotlinInputStream(val buffer: ByteArray) {
|
class KotlinInputStream(val buffer: ByteArray) {
|
||||||
var pos = 0
|
var pos = 0
|
||||||
|
var mark_ = 0
|
||||||
|
|
||||||
fun read(): Byte {
|
fun read(): Byte {
|
||||||
val result = buffer[pos]
|
pos += 1
|
||||||
pos++
|
return buffer[pos - 1]
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isAtEnd(): Boolean {
|
fun isAtEnd(): Boolean {
|
||||||
return pos >= buffer.size
|
return pos >= buffer.size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun mark() {
|
||||||
|
mark_ = pos
|
||||||
|
}
|
||||||
|
|
||||||
|
fun reset() {
|
||||||
|
pos = mark_
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user