Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99c9242a authored by Hao Ke's avatar Hao Ke Committed by Automerger Merge Worker
Browse files

Merge "Set default ClassLoader for Parcel readSerializable API." am: 3760188d am: d0ba4745

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1899432

Change-Id: Iaefad8c2728987e12b089edfe74660424ceacbda
parents 8c7ee3da d0ba4745
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -4430,6 +4430,9 @@ public final class Parcel {
     * @return the Serializable object, or null if the Serializable name
     * wasn't found in the parcel.
     *
     * Unlike {@link #readSerializable(ClassLoader, Class)}, it uses the nearest valid class loader
     * up the execution stack to instantiate the Serializable object.
     *
     * @deprecated Use the type-safer version {@link #readSerializable(ClassLoader, Class)} starting
     *       from Android {@link Build.VERSION_CODES#TIRAMISU}.
     */
@@ -4440,9 +4443,11 @@ public final class Parcel {
    }

    /**
     * Same as {@link #readSerializable()} but accepts {@code loader} parameter
     * as the primary classLoader for resolving the Serializable class; and {@code clazz} parameter
     * as the required type.
     * Same as {@link #readSerializable()} but accepts {@code loader} and {@code clazz} parameters.
     *
     * @param loader A ClassLoader from which to instantiate the Serializable object,
     * or null for the default class loader.
     * @param clazz The type of the object expected.
     *
     * @throws BadParcelableException Throws BadParcelableException if the item to be deserialized
     * is not an instance of that class or any of its children class or there there was an error
@@ -4452,7 +4457,8 @@ public final class Parcel {
    public <T extends Serializable> T readSerializable(@Nullable ClassLoader loader,
            @NonNull Class<T> clazz) {
        Objects.requireNonNull(clazz);
        return readSerializableInternal(loader, clazz);
        return readSerializableInternal(
                loader == null ? getClass().getClassLoader() : loader, clazz);
    }

    /**