Parcelize: Fix IBinderIInterface test

This commit is contained in:
Steven Schäfer
2020-04-07 16:27:25 +02:00
committed by Alexander Udalov
parent 518c7a32b8
commit 9fc210224d
3 changed files with 94 additions and 15 deletions
@@ -0,0 +1,89 @@
public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final User createFromParcel(android.os.Parcel parcel) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
NEW
DUP
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readStrongBinder, ()Landroid/os/IBinder;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, createBinderArray, ()[Landroid/os/IBinder;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, createBinderArrayList, ()Ljava/util/ArrayList;)
CHECKCAST
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, createBinderArrayList, ()Ljava/util/ArrayList;)
INVOKESPECIAL (User, <init>, (Landroid/os/IBinder;[Landroid/os/IBinder;Ljava/util/List;Ljava/util/ArrayList;)V)
ARETURN
LABEL (L1)
}
public java.lang.Object createFromParcel(android.os.Parcel source) {
LABEL (L0)
ALOAD (0)
ALOAD (1)
INVOKEVIRTUAL (User$Creator, createFromParcel, (Landroid/os/Parcel;)LUser;)
ARETURN
LABEL (L1)
}
public final User[] newArray(int size)
public java.lang.Object[] newArray(int size)
}
public final class User : java/lang/Object, android/os/Parcelable {
public final static android.os.Parcelable$Creator CREATOR
private final android.os.IBinder binder
private final android.os.IBinder[] binderArray
private final java.util.ArrayList binderArrayList
private final java.util.List binderList
static void <clinit>()
public void <init>(android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList)
public int describeContents()
public final android.os.IBinder getBinder()
public final android.os.IBinder[] getBinderArray()
public final java.util.ArrayList getBinderArrayList()
public final java.util.List getBinderList()
public void writeToParcel(android.os.Parcel out, int flags) {
LABEL (L0)
ALOAD (1)
LDC (out)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (binder, Landroid/os/IBinder;)
INVOKEVIRTUAL (android/os/Parcel, writeStrongBinder, (Landroid/os/IBinder;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (binderArray, [Landroid/os/IBinder;)
INVOKEVIRTUAL (android/os/Parcel, writeBinderArray, ([Landroid/os/IBinder;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (binderList, Ljava/util/List;)
INVOKEVIRTUAL (android/os/Parcel, writeBinderList, (Ljava/util/List;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (binderArrayList, Ljava/util/ArrayList;)
CHECKCAST
INVOKEVIRTUAL (android/os/Parcel, writeBinderList, (Ljava/util/List;)V)
RETURN
LABEL (L1)
}
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// CURIOUS_ABOUT writeToParcel, createFromParcel
// WITH_RUNTIME
@@ -12,6 +11,7 @@ class User(
val binder: IBinder,
val binderArray: Array<IBinder>,
val binderList: List<IBinder>,
val binderArrayList: ArrayList<IBinder>, // should be serialized using our strategy, not using Parcel.writeBinderList()
val intf: IInterface?
val binderArrayList: ArrayList<IBinder> // should be serialized using our strategy, not using Parcel.writeBinderList()
// There is no readStrongInterface method in Parcel.
// val intf: IInterface?
) : Parcelable
@@ -39,9 +39,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato
LABEL (L3)
SWAP
POP
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readStrongInterface, ()Landroid/os/IInterface;)
INVOKESPECIAL (User, <init>, (Landroid/os/IBinder;[Landroid/os/IBinder;Ljava/util/List;Ljava/util/ArrayList;Landroid/os/IInterface;)V)
INVOKESPECIAL (User, <init>, (Landroid/os/IBinder;[Landroid/os/IBinder;Ljava/util/List;Ljava/util/ArrayList;)V)
ARETURN
LABEL (L4)
}
@@ -60,11 +58,9 @@ public final class User : java/lang/Object, android/os/Parcelable {
private final java.util.List binderList
private final android.os.IInterface intf
static void <clinit>()
public void <init>(android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList, android.os.IInterface intf)
public void <init>(android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList)
public int describeContents()
@@ -76,8 +72,6 @@ public final class User : java/lang/Object, android/os/Parcelable {
public final java.util.List getBinderList()
public final android.os.IInterface getIntf()
public void writeToParcel(android.os.Parcel parcel, int flags) {
LABEL (L0)
ALOAD (1)
@@ -115,10 +109,6 @@ public final class User : java/lang/Object, android/os/Parcelable {
GOTO (L1)
LABEL (L2)
POP
ALOAD (1)
ALOAD (0)
GETFIELD (intf, Landroid/os/IInterface;)
INVOKEVIRTUAL (android/os/Parcel, writeStrongInterface, (Landroid/os/IInterface;)V)
RETURN
LABEL (L3)
}