diff options
| author | Samuel Tan <samueltan@google.com> | 2015-12-17 00:35:43 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-12-17 00:35:43 +0000 |
| commit | d12959193c60254b6b03b2a60a9c6e598e9da2e5 (patch) | |
| tree | ac423f44b13804aaa3a2f1aa8bc34add6b67d28e /core/java | |
| parent | 477fa220b1766a3822171fa514983198e09daabb (diff) | |
| parent | ceafe5ed8a9968752c9454ae67428caf8c6719e6 (diff) | |
Merge "Fix PersistableBundle handling in Parcel.writeValue"
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/os/Parcel.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index 9b68f90aa28b..290202194732 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -1370,7 +1370,13 @@ public final class Parcel { // Must be before Parcelable writeInt(VAL_BUNDLE); writeBundle((Bundle) v); + } else if (v instanceof PersistableBundle) { + writeInt(VAL_PERSISTABLEBUNDLE); + writePersistableBundle((PersistableBundle) v); } else if (v instanceof Parcelable) { + // IMPOTANT: cases for classes that implement Parcelable must + // come before the Parcelable case, so that their specific VAL_* + // types will be written. writeInt(VAL_PARCELABLE); writeParcelable((Parcelable) v, 0); } else if (v instanceof Short) { @@ -1426,9 +1432,6 @@ public final class Parcel { } else if (v instanceof Byte) { writeInt(VAL_BYTE); writeInt((Byte) v); - } else if (v instanceof PersistableBundle) { - writeInt(VAL_PERSISTABLEBUNDLE); - writePersistableBundle((PersistableBundle) v); } else if (v instanceof Size) { writeInt(VAL_SIZE); writeSize((Size) v); |
