diff options
| author | 2015-12-17 09:53:44 -0800 | |
|---|---|---|
| committer | 2015-12-17 09:53:44 -0800 | |
| commit | 76d3072dd691666f451e8101d1053f66bd800e33 (patch) | |
| tree | a4e2f0ad77e6ce23bfe465d6c4cad33caa4e204a | |
| parent | 19091a7fad36a4a9b4a66bdc20d536f1354fdd52 (diff) | |
| parent | d3decff052c4f7471a21fbbb116b32586181b391 (diff) | |
Merge "Fix PersistableBundle handling in Parcel.writeValue" am: d12959193c
am: d3decff052
* commit 'd3decff052c4f7471a21fbbb116b32586181b391':
Fix PersistableBundle handling in Parcel.writeValue
| -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); |