summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernardo Rufino <brufino@google.com>2021-12-09 10:54:30 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-12-09 10:54:30 +0000
commit91e53b04aa16a2ee16e1f67693d3b959387f7469 (patch)
tree930c7881e871c16d9f62033db7f3e6e4ad949d98
parent4bd88f5cd67c775e355066224a894211e5d822b1 (diff)
parent2ee662c767ba3a75242e6b63408e96d916181921 (diff)
downloadbase-91e53b04aa16a2ee16e1f67693d3b959387f7469.tar.gz
Merge "Deprecate unsafe Parcel.readParcelableArray(ClassLoader)" am: 2ee662c767
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1910046 Change-Id: I3f12c9a32b1b2146ec83f0a04eb5768cafd2eecd
-rw-r--r--core/api/current.txt2
-rw-r--r--core/java/android/os/Parcel.java9
2 files changed, 9 insertions, 2 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index b4eb62a20bc3..94ba409995e2 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -31591,7 +31591,7 @@ package android.os {
method public <K, V> void readMap(@NonNull java.util.Map<? super K,? super V>, @Nullable ClassLoader, @NonNull Class<K>, @NonNull Class<V>);
method @Deprecated @Nullable public <T extends android.os.Parcelable> T readParcelable(@Nullable ClassLoader);
method @Nullable public <T extends android.os.Parcelable> T readParcelable(@Nullable ClassLoader, @NonNull Class<T>);
- method @Nullable public android.os.Parcelable[] readParcelableArray(@Nullable ClassLoader);
+ method @Deprecated @Nullable public android.os.Parcelable[] readParcelableArray(@Nullable ClassLoader);
method @Nullable public <T> T[] readParcelableArray(@Nullable ClassLoader, @NonNull Class<T>);
method @Deprecated @Nullable public android.os.Parcelable.Creator<?> readParcelableCreator(@Nullable ClassLoader);
method @Nullable public <T> android.os.Parcelable.Creator<T> readParcelableCreator(@Nullable ClassLoader, @NonNull Class<T>);
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index 8894c85fa7b4..4d5f97c59907 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -4388,9 +4388,16 @@ public final class Parcel {
* The given class loader will be used to load any enclosed
* Parcelables.
* @return the Parcelable array, or null if the array is null
+ *
+ * @deprecated Use the type-safer version {@link #readParcelableArray(ClassLoader, Class)}
+ * starting from Android {@link Build.VERSION_CODES#TIRAMISU}. Also consider changing the
+ * format to use {@link #createTypedArray(Parcelable.Creator)} if possible (eg. if the
+ * items' class is final) since this is also more performant. Note that changing to the
+ * latter also requires changing the writes.
*/
+ @Deprecated
@Nullable
- public final Parcelable[] readParcelableArray(@Nullable ClassLoader loader) {
+ public Parcelable[] readParcelableArray(@Nullable ClassLoader loader) {
int N = readInt();
if (N < 0) {
return null;