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

Commit 75d67c6a authored by Paul Duffin's avatar Paul Duffin Committed by Android Git Automerger
Browse files

am d562a9b5: Merge "Improve Parcel\'s handling of non-primitive arrays"

* commit 'd562a9b5':
  Improve Parcel's handling of non-primitive arrays
parents aa98fb51 d562a9b5
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -1246,9 +1246,6 @@ public final class Parcel {
        } else if (v instanceof Parcelable[]) {
            writeInt(VAL_PARCELABLEARRAY);
            writeParcelableArray((Parcelable[]) v, 0);
        } else if (v instanceof Object[]) {
            writeInt(VAL_OBJECTARRAY);
            writeArray((Object[]) v);
        } else if (v instanceof int[]) {
            writeInt(VAL_INTARRAY);
            writeIntArray((int[]) v);
@@ -1258,6 +1255,13 @@ public final class Parcel {
        } else if (v instanceof Byte) {
            writeInt(VAL_BYTE);
            writeInt((Byte) v);
        } else {
            Class<?> clazz = v.getClass();
            if (clazz.isArray() && clazz.getComponentType() == Object.class) {
                // Only pure Object[] are written here, Other arrays of non-primitive types are
                // handled by serialization as this does not record the component type.
                writeInt(VAL_OBJECTARRAY);
                writeArray((Object[]) v);
            } else if (v instanceof Serializable) {
                // Must be last
                writeInt(VAL_SERIALIZABLE);
@@ -1266,6 +1270,7 @@ public final class Parcel {
                throw new RuntimeException("Parcel: unable to marshal value " + v);
            }
        }
    }

    /**
     * Flatten the name of the class of the Parcelable and its contents