Parcelize: Use the class loader of the Parcelable class for reading

In `readBundle`, `readPersistableBundle`, and `readValue`.
This commit is contained in:
Steven Schäfer
2021-09-20 15:00:36 +02:00
committed by Alexander Udalov
parent 08eaac7e56
commit 897c09bf8d
9 changed files with 217 additions and 28 deletions
@@ -0,0 +1,79 @@
public final class A$Creator : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final A createFromParcel(android.os.Parcel in) {
LABEL (L0)
ALOAD (1)
LDC (in)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
NEW
DUP
ALOAD (1)
LDC (Ljava/lang/Object;)
INVOKEVIRTUAL (java/lang/Class, getClassLoader, ()Ljava/lang/ClassLoader;)
INVOKEVIRTUAL (android/os/Parcel, readValue, (Ljava/lang/ClassLoader;)Ljava/lang/Object;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readBundle, ()Landroid/os/Bundle;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readBundle, ()Landroid/os/PersistableBundle;)
INVOKESPECIAL (A, <init>, (Ljava/lang/Object;Landroid/os/Bundle;Landroid/os/PersistableBundle;)V)
ARETURN
LABEL (L1)
}
public java.lang.Object createFromParcel(android.os.Parcel p0) {
LABEL (L0)
LINENUMBER (15)
ALOAD (0)
ALOAD (1)
INVOKEVIRTUAL (A$Creator, createFromParcel, (Landroid/os/Parcel;)LA;)
ARETURN
}
public final A[] newArray(int size)
public java.lang.Object[] newArray(int p0)
}
public final class A : java/lang/Object, android/os/Parcelable {
public final static android.os.Parcelable$Creator CREATOR
private final java.lang.Object a
private final android.os.Bundle b
private final android.os.PersistableBundle c
static void <clinit>()
public void <init>(java.lang.Object a, android.os.Bundle b, android.os.PersistableBundle c)
public int describeContents()
public final java.lang.Object getA()
public final android.os.Bundle getB()
public final android.os.PersistableBundle getC()
public void writeToParcel(android.os.Parcel parcel, int flags) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (A, a, Ljava/lang/Object;)
INVOKEVIRTUAL (android/os/Parcel, writeValue, (Ljava/lang/Object;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (A, b, Landroid/os/Bundle;)
INVOKEVIRTUAL (android/os/Parcel, writeBundle, (Landroid/os/Bundle;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (A, c, Landroid/os/PersistableBundle;)
INVOKEVIRTUAL (android/os/Parcel, writeBundle, (Landroid/os/PersistableBundle;)V)
RETURN
LABEL (L1)
}
}