Loading core/java/android/content/pm/BaseParceledListSlice.java +15 −15 Original line number Original line Diff line number Diff line Loading @@ -75,16 +75,7 @@ abstract class BaseParceledListSlice<T> implements Parcelable { if (p.readInt() == 0) { if (p.readInt() == 0) { break; break; } } listElementClass = readVerifyAndAddElement(creator, p, loader, listElementClass); final T parcelable = readCreator(creator, p, loader); if (listElementClass == null) { listElementClass = parcelable.getClass(); } else { verifySameType(listElementClass, parcelable.getClass()); } mList.add(parcelable); if (DEBUG) Log.d(TAG, "Read inline #" + i + ": " + mList.get(mList.size()-1)); if (DEBUG) Log.d(TAG, "Read inline #" + i + ": " + mList.get(mList.size()-1)); i++; i++; } } Loading @@ -104,11 +95,8 @@ abstract class BaseParceledListSlice<T> implements Parcelable { return; return; } } while (i < N && reply.readInt() != 0) { while (i < N && reply.readInt() != 0) { final T parcelable = readCreator(creator, reply, loader); listElementClass = readVerifyAndAddElement(creator, reply, loader, verifySameType(listElementClass, parcelable.getClass()); listElementClass); mList.add(parcelable); if (DEBUG) Log.d(TAG, "Read extra #" + i + ": " + mList.get(mList.size()-1)); if (DEBUG) Log.d(TAG, "Read extra #" + i + ": " + mList.get(mList.size()-1)); i++; i++; } } Loading @@ -117,6 +105,18 @@ abstract class BaseParceledListSlice<T> implements Parcelable { } } } } private Class<?> readVerifyAndAddElement(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader, Class<?> listElementClass) { final T parcelable = readCreator(creator, p, loader); if (listElementClass == null) { listElementClass = parcelable.getClass(); } else { verifySameType(listElementClass, parcelable.getClass()); } mList.add(parcelable); return listElementClass; } private T readCreator(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader) { private T readCreator(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader) { if (creator instanceof Parcelable.ClassLoaderCreator<?>) { if (creator instanceof Parcelable.ClassLoaderCreator<?>) { Parcelable.ClassLoaderCreator<?> classLoaderCreator = Parcelable.ClassLoaderCreator<?> classLoaderCreator = Loading Loading
core/java/android/content/pm/BaseParceledListSlice.java +15 −15 Original line number Original line Diff line number Diff line Loading @@ -75,16 +75,7 @@ abstract class BaseParceledListSlice<T> implements Parcelable { if (p.readInt() == 0) { if (p.readInt() == 0) { break; break; } } listElementClass = readVerifyAndAddElement(creator, p, loader, listElementClass); final T parcelable = readCreator(creator, p, loader); if (listElementClass == null) { listElementClass = parcelable.getClass(); } else { verifySameType(listElementClass, parcelable.getClass()); } mList.add(parcelable); if (DEBUG) Log.d(TAG, "Read inline #" + i + ": " + mList.get(mList.size()-1)); if (DEBUG) Log.d(TAG, "Read inline #" + i + ": " + mList.get(mList.size()-1)); i++; i++; } } Loading @@ -104,11 +95,8 @@ abstract class BaseParceledListSlice<T> implements Parcelable { return; return; } } while (i < N && reply.readInt() != 0) { while (i < N && reply.readInt() != 0) { final T parcelable = readCreator(creator, reply, loader); listElementClass = readVerifyAndAddElement(creator, reply, loader, verifySameType(listElementClass, parcelable.getClass()); listElementClass); mList.add(parcelable); if (DEBUG) Log.d(TAG, "Read extra #" + i + ": " + mList.get(mList.size()-1)); if (DEBUG) Log.d(TAG, "Read extra #" + i + ": " + mList.get(mList.size()-1)); i++; i++; } } Loading @@ -117,6 +105,18 @@ abstract class BaseParceledListSlice<T> implements Parcelable { } } } } private Class<?> readVerifyAndAddElement(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader, Class<?> listElementClass) { final T parcelable = readCreator(creator, p, loader); if (listElementClass == null) { listElementClass = parcelable.getClass(); } else { verifySameType(listElementClass, parcelable.getClass()); } mList.add(parcelable); return listElementClass; } private T readCreator(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader) { private T readCreator(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader) { if (creator instanceof Parcelable.ClassLoaderCreator<?>) { if (creator instanceof Parcelable.ClassLoaderCreator<?>) { Parcelable.ClassLoaderCreator<?> classLoaderCreator = Parcelable.ClassLoaderCreator<?> classLoaderCreator = Loading