Commit f48e27d7 authored by Him188's avatar Him188

Fix map skipping, close #145

parent 702d8d9f
......@@ -126,17 +126,23 @@ internal class JceInput(
Jce.STRING1 -> this.input.discardExact(this.input.readUByte().toInt())
Jce.STRING4 -> this.input.discardExact(this.input.readInt())
Jce.MAP -> { // map
repeat(skipToHeadAndUseIfPossibleOrFail(0) {
nextHead()
repeat(skipToHeadAndUseIfPossibleOrFail(0, message = { "tag 0 not found when skipping map" }) {
readJceIntValue(it)
} * 2) {
useHead { skipField(it.type) }
val currentHead = currentHead
prepareNextHead()
skipField(currentHead.type)
}
}
Jce.LIST -> { // list
repeat(skipToHeadAndUseIfPossibleOrFail(0) {
nextHead()
repeat(skipToHeadAndUseIfPossibleOrFail(0, message = { "tag 0 not found when skipping list" }) {
readJceIntValue(it)
}) {
useHead { skipField(it.type) }
val currentHead = currentHead
prepareNextHead()
skipField(currentHead.type)
}
}
Jce.STRUCT_BEGIN -> {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment