Parcelable: Convert I to Z explicitly, older Android Dex has strict checks for it (KT-20928)
This commit is contained in:
+23
@@ -676,6 +676,7 @@ internal open class PrimitiveTypeParcelSerializer private constructor(final over
|
||||
it to when (it) {
|
||||
Type.CHAR_TYPE -> CharParcelSerializer
|
||||
Type.SHORT_TYPE -> ShortParcelSerializer
|
||||
Type.BOOLEAN_TYPE -> BooleanParcelSerializer
|
||||
else -> PrimitiveTypeParcelSerializer(it)
|
||||
}
|
||||
}.toMap()
|
||||
@@ -707,6 +708,28 @@ internal open class PrimitiveTypeParcelSerializer private constructor(final over
|
||||
}
|
||||
}
|
||||
|
||||
object BooleanParcelSerializer : PrimitiveTypeParcelSerializer(Type.BOOLEAN_TYPE) {
|
||||
override fun writeValue(v: InstructionAdapter) {
|
||||
super.writeValue(v)
|
||||
}
|
||||
|
||||
override fun readValue(v: InstructionAdapter) {
|
||||
super.readValue(v)
|
||||
|
||||
val falseLabel = Label()
|
||||
val conditionIsOver = Label()
|
||||
|
||||
v.ifeq(falseLabel)
|
||||
v.iconst(1)
|
||||
v.goTo(conditionIsOver)
|
||||
|
||||
v.visitLabel(falseLabel)
|
||||
v.iconst(0)
|
||||
|
||||
v.visitLabel(conditionIsOver)
|
||||
}
|
||||
}
|
||||
|
||||
private val writeMethod = WRITE_METHOD_NAMES[asmType]!!
|
||||
private val readMethod = READ_METHOD_NAMES[asmType]!!
|
||||
|
||||
|
||||
Reference in New Issue
Block a user