Updated bytecode of serialization for IR

`shouldEncodeElementDefault` now checked before evaluating default value
This commit is contained in:
Sergey Shanshin
2021-02-18 15:03:35 +03:00
committed by GitHub
parent 7b7b8fbea7
commit 8c20c655fe
@@ -474,9 +474,17 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
ALOAD (3) ALOAD (3)
INVOKEINTERFACE (kotlinx/serialization/encoding/Encoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeEncoder;) INVOKEINTERFACE (kotlinx/serialization/encoding/Encoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeEncoder;)
ASTORE (4) ASTORE (4)
ALOAD (4)
ALOAD (3)
ICONST_0
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, shouldEncodeElementDefault, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Z)
IFEQ (L2)
ICONST_1
GOTO (L3)
LABEL (L2)
ALOAD (2) ALOAD (2)
INVOKEVIRTUAL (OptionalUser, getUser, ()LUser;) INVOKEVIRTUAL (OptionalUser, getUser, ()LUser;)
LABEL (L2) LABEL (L4)
LINENUMBER (10) LINENUMBER (10)
NEW NEW
DUP DUP
@@ -484,18 +492,15 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
LDC () LDC ()
INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V) INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, areEqual, (Ljava/lang/Object;Ljava/lang/Object;)Z) INVOKESTATIC (kotlin/jvm/internal/Intrinsics, areEqual, (Ljava/lang/Object;Ljava/lang/Object;)Z)
IFNE (L3) IFNE (L5)
LABEL (L4)
LINENUMBER (9)
ICONST_1 ICONST_1
GOTO (L5) GOTO (L3)
LABEL (L3)
ALOAD (4)
ALOAD (3)
ICONST_0
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, shouldEncodeElementDefault, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Z)
LABEL (L5) LABEL (L5)
ICONST_0
LABEL (L3)
IFEQ (L6) IFEQ (L6)
LABEL (L7)
LINENUMBER (9)
ALOAD (4) ALOAD (4)
ALOAD (3) ALOAD (3)
ICONST_0 ICONST_0
@@ -509,7 +514,7 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
ALOAD (3) ALOAD (3)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
RETURN RETURN
LABEL (L7) LABEL (L8)
} }
public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value) { public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value) {
@@ -978,4 +983,4 @@ public final class User : java/lang/Object {
public final java.lang.String getFirstName() public final java.lang.String getFirstName()
public final java.lang.String getLastName() public final java.lang.String getLastName()
} }