Commit 9d206d1a authored by Him188's avatar Him188

Fix nested struct list deserializing

parent d8eb2e12
......@@ -496,9 +496,7 @@ class Jce private constructor(private val charset: JceCharset, context: SerialMo
@PublishedApi
internal val input: IoBuffer
) : Closeable {
override fun close() {
input.close()
}
override fun close() = IoBuffer.Pool.recycle(input)
@PublishedApi
internal fun readHead(): JceHead = input.readHead() ?: error("no enough data to read head")
......
......@@ -13,7 +13,7 @@ import kotlin.test.assertEquals
class JceDecoderTest {
@Serializable
class TestSimpleJceStruct(
data class TestSimpleJceStruct(
@SerialId(0) val string: String = "123",
@SerialId(1) val byte: Byte = 123,
@SerialId(2) val short: Short = 123,
......@@ -182,8 +182,8 @@ class JceDecoderTest {
@Test
fun testNestedStruct() {
@Serializable
class OuterStruct(
@SerialId(0) val innerSturctList: List<TestSimpleJceStruct>
data class OuterStruct(
@SerialId(0) val innerStructList: List<TestSimpleJceStruct>
) : JceStruct
assertEquals(
......@@ -192,6 +192,15 @@ class JceDecoderTest {
}.readBytes().toUHexString(),
OuterStruct(listOf(TestSimpleJceStruct(), TestSimpleJceStruct())).toByteArray(OuterStruct.serializer()).toUHexString()
)
//println(OuterStruct(listOf(TestSimpleJceStruct(), TestSimpleJceStruct())).toByteArray(OuterStruct.serializer()).loadAs(OuterStruct.serializer()))
assertEquals(
OuterStruct(
listOf(
TestSimpleJceStruct(),
TestSimpleJceStruct()
)
).toByteArray(OuterStruct.serializer()).loadAs(OuterStruct.serializer()).contentToString(),
OuterStruct(listOf(TestSimpleJceStruct(), TestSimpleJceStruct())).contentToString()
)
}
}
\ No newline at end of file
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