Loading apct-tests/perftests/core/src/android/os/ParcelPerfTest.java +55 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,46 @@ public class ParcelPerfTest { } } @Test public void timeGetDataPosition() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.dataPosition(); } } @Test public void timeSetDataSize() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.setDataSize(0); } } @Test public void timeGetDataSize() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.dataSize(); } } @Test public void timeSetDataCapacity() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.setDataCapacity(0); } } @Test public void timeGetDataCapacity() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.dataCapacity(); } } @Test public void timeWriteByte() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); Loading Loading @@ -112,4 +152,19 @@ public class ParcelPerfTest { mParcel.readLong(); } } @Test public void timeObtainRecycle() { // Use up the pooled instances. // A lot bigger than the actual size but in case someone increased it. final int POOL_SIZE = 100; for (int i = 0; i < POOL_SIZE; i++) { Parcel.obtain(); } final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { Parcel.obtain().recycle(); } } } core/java/android/os/Parcel.java +14 −12 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; import dalvik.system.VMRuntime; Loading Loading @@ -260,24 +261,24 @@ public final class Parcel { // see libbinder's binder/Status.h private static final int EX_TRANSACTION_FAILED = -129; @FastNative @CriticalNative private static native int nativeDataSize(long nativePtr); @FastNative @CriticalNative private static native int nativeDataAvail(long nativePtr); @FastNative @CriticalNative private static native int nativeDataPosition(long nativePtr); @FastNative @CriticalNative private static native int nativeDataCapacity(long nativePtr); @FastNative private static native long nativeSetDataSize(long nativePtr, int size); @FastNative @CriticalNative private static native void nativeSetDataPosition(long nativePtr, int pos); @FastNative private static native void nativeSetDataCapacity(long nativePtr, int size); @FastNative @CriticalNative private static native boolean nativePushAllowFds(long nativePtr, boolean allowFds); @FastNative @CriticalNative private static native void nativeRestoreAllowFds(long nativePtr, boolean lastValue); private static native void nativeWriteByteArray(long nativePtr, byte[] b, int offset, int len); Loading @@ -297,13 +298,13 @@ public final class Parcel { private static native byte[] nativeCreateByteArray(long nativePtr); private static native boolean nativeReadByteArray(long nativePtr, byte[] dest, int destLen); private static native byte[] nativeReadBlob(long nativePtr); @FastNative @CriticalNative private static native int nativeReadInt(long nativePtr); @FastNative @CriticalNative private static native long nativeReadLong(long nativePtr); @FastNative @CriticalNative private static native float nativeReadFloat(long nativePtr); @FastNative @CriticalNative private static native double nativeReadDouble(long nativePtr); private static native String nativeReadString(long nativePtr); private static native IBinder nativeReadStrongBinder(long nativePtr); Loading @@ -319,11 +320,12 @@ public final class Parcel { private static native int nativeCompareData(long thisNativePtr, long otherNativePtr); private static native long nativeAppendFrom( long thisNativePtr, long otherNativePtr, int offset, int length); @FastNative @CriticalNative private static native boolean nativeHasFileDescriptors(long nativePtr); private static native void nativeWriteInterfaceToken(long nativePtr, String interfaceName); private static native void nativeEnforceInterface(long nativePtr, String interfaceName); @CriticalNative private static native long nativeGetBlobAshmemSize(long nativePtr); public final static Parcelable.Creator<String> STRING_CREATOR Loading core/jni/android_os_Parcel.cpp +26 −25 Original line number Diff line number Diff line Loading @@ -90,25 +90,25 @@ void recycleJavaParcelObject(JNIEnv* env, jobject parcelObj) env->CallVoidMethod(parcelObj, gParcelOffsets.recycle); } static jint android_os_Parcel_dataSize(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataSize(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataSize() : 0; } static jint android_os_Parcel_dataAvail(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataAvail(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataAvail() : 0; } static jint android_os_Parcel_dataPosition(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataPosition(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataPosition() : 0; } static jint android_os_Parcel_dataCapacity(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataCapacity(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataCapacity() : 0; Loading @@ -127,7 +127,7 @@ static jlong android_os_Parcel_setDataSize(JNIEnv* env, jclass clazz, jlong nati return 0; } static void android_os_Parcel_setDataPosition(JNIEnv* env, jclass clazz, jlong nativePtr, jint pos) static void android_os_Parcel_setDataPosition(jlong nativePtr, jint pos) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -146,7 +146,7 @@ static void android_os_Parcel_setDataCapacity(JNIEnv* env, jclass clazz, jlong n } } static jboolean android_os_Parcel_pushAllowFds(JNIEnv* env, jclass clazz, jlong nativePtr, jboolean allowFds) static jboolean android_os_Parcel_pushAllowFds(jlong nativePtr, jboolean allowFds) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); jboolean ret = JNI_TRUE; Loading @@ -156,7 +156,7 @@ static jboolean android_os_Parcel_pushAllowFds(JNIEnv* env, jclass clazz, jlong return ret; } static void android_os_Parcel_restoreAllowFds(JNIEnv* env, jclass clazz, jlong nativePtr, jboolean lastValue) static void android_os_Parcel_restoreAllowFds(jlong nativePtr, jboolean lastValue) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading Loading @@ -398,7 +398,7 @@ static jbyteArray android_os_Parcel_readBlob(JNIEnv* env, jclass clazz, jlong na return ret; } static jint android_os_Parcel_readInt(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_readInt(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -407,7 +407,7 @@ static jint android_os_Parcel_readInt(JNIEnv* env, jclass clazz, jlong nativePtr return 0; } static jlong android_os_Parcel_readLong(JNIEnv* env, jclass clazz, jlong nativePtr) static jlong android_os_Parcel_readLong(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -416,7 +416,7 @@ static jlong android_os_Parcel_readLong(JNIEnv* env, jclass clazz, jlong nativeP return 0; } static jfloat android_os_Parcel_readFloat(JNIEnv* env, jclass clazz, jlong nativePtr) static jfloat android_os_Parcel_readFloat(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -425,7 +425,7 @@ static jfloat android_os_Parcel_readFloat(JNIEnv* env, jclass clazz, jlong nativ return 0; } static jdouble android_os_Parcel_readDouble(JNIEnv* env, jclass clazz, jlong nativePtr) static jdouble android_os_Parcel_readDouble(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading Loading @@ -673,7 +673,7 @@ static jlong android_os_Parcel_appendFrom(JNIEnv* env, jclass clazz, jlong thisN return thisParcel->getOpenAshmemSize(); } static jboolean android_os_Parcel_hasFileDescriptors(JNIEnv* env, jclass clazz, jlong nativePtr) static jboolean android_os_Parcel_hasFileDescriptors(jlong nativePtr) { jboolean ret = JNI_FALSE; Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); Loading Loading @@ -747,7 +747,7 @@ static jlong android_os_Parcel_getGlobalAllocCount(JNIEnv* env, jclass clazz) return Parcel::getGlobalAllocCount(); } static jlong android_os_Parcel_getBlobAshmemSize(JNIEnv* env, jclass clazz, jlong nativePtr) static jlong android_os_Parcel_getBlobAshmemSize(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -759,24 +759,24 @@ static jlong android_os_Parcel_getBlobAshmemSize(JNIEnv* env, jclass clazz, jlon // ---------------------------------------------------------------------------- static const JNINativeMethod gParcelMethods[] = { // @FastNative // @CriticalNative {"nativeDataSize", "(J)I", (void*)android_os_Parcel_dataSize}, // @FastNative // @CriticalNative {"nativeDataAvail", "(J)I", (void*)android_os_Parcel_dataAvail}, // @FastNative // @CriticalNative {"nativeDataPosition", "(J)I", (void*)android_os_Parcel_dataPosition}, // @FastNative // @CriticalNative {"nativeDataCapacity", "(J)I", (void*)android_os_Parcel_dataCapacity}, // @FastNative {"nativeSetDataSize", "(JI)J", (void*)android_os_Parcel_setDataSize}, // @FastNative // @CriticalNative {"nativeSetDataPosition", "(JI)V", (void*)android_os_Parcel_setDataPosition}, // @FastNative {"nativeSetDataCapacity", "(JI)V", (void*)android_os_Parcel_setDataCapacity}, // @FastNative // @CriticalNative {"nativePushAllowFds", "(JZ)Z", (void*)android_os_Parcel_pushAllowFds}, // @FastNative // @CriticalNative {"nativeRestoreAllowFds", "(JZ)V", (void*)android_os_Parcel_restoreAllowFds}, {"nativeWriteByteArray", "(J[BII)V", (void*)android_os_Parcel_writeByteArray}, Loading @@ -796,13 +796,13 @@ static const JNINativeMethod gParcelMethods[] = { {"nativeCreateByteArray", "(J)[B", (void*)android_os_Parcel_createByteArray}, {"nativeReadByteArray", "(J[BI)Z", (void*)android_os_Parcel_readByteArray}, {"nativeReadBlob", "(J)[B", (void*)android_os_Parcel_readBlob}, // @FastNative // @CriticalNative {"nativeReadInt", "(J)I", (void*)android_os_Parcel_readInt}, // @FastNative // @CriticalNative {"nativeReadLong", "(J)J", (void*)android_os_Parcel_readLong}, // @FastNative // @CriticalNative {"nativeReadFloat", "(J)F", (void*)android_os_Parcel_readFloat}, // @FastNative // @CriticalNative {"nativeReadDouble", "(J)D", (void*)android_os_Parcel_readDouble}, {"nativeReadString", "(J)Ljava/lang/String;", (void*)android_os_Parcel_readString}, {"nativeReadStrongBinder", "(J)Landroid/os/IBinder;", (void*)android_os_Parcel_readStrongBinder}, Loading @@ -821,7 +821,7 @@ static const JNINativeMethod gParcelMethods[] = { {"nativeUnmarshall", "(J[BII)J", (void*)android_os_Parcel_unmarshall}, {"nativeCompareData", "(JJ)I", (void*)android_os_Parcel_compareData}, {"nativeAppendFrom", "(JJII)J", (void*)android_os_Parcel_appendFrom}, // @FastNative // @CriticalNative {"nativeHasFileDescriptors", "(J)Z", (void*)android_os_Parcel_hasFileDescriptors}, {"nativeWriteInterfaceToken", "(JLjava/lang/String;)V", (void*)android_os_Parcel_writeInterfaceToken}, {"nativeEnforceInterface", "(JLjava/lang/String;)V", (void*)android_os_Parcel_enforceInterface}, Loading @@ -829,6 +829,7 @@ static const JNINativeMethod gParcelMethods[] = { {"getGlobalAllocSize", "()J", (void*)android_os_Parcel_getGlobalAllocSize}, {"getGlobalAllocCount", "()J", (void*)android_os_Parcel_getGlobalAllocCount}, // @CriticalNative {"nativeGetBlobAshmemSize", "(J)J", (void*)android_os_Parcel_getBlobAshmemSize}, }; Loading Loading
apct-tests/perftests/core/src/android/os/ParcelPerfTest.java +55 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,46 @@ public class ParcelPerfTest { } } @Test public void timeGetDataPosition() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.dataPosition(); } } @Test public void timeSetDataSize() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.setDataSize(0); } } @Test public void timeGetDataSize() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.dataSize(); } } @Test public void timeSetDataCapacity() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.setDataCapacity(0); } } @Test public void timeGetDataCapacity() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mParcel.dataCapacity(); } } @Test public void timeWriteByte() { final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); Loading Loading @@ -112,4 +152,19 @@ public class ParcelPerfTest { mParcel.readLong(); } } @Test public void timeObtainRecycle() { // Use up the pooled instances. // A lot bigger than the actual size but in case someone increased it. final int POOL_SIZE = 100; for (int i = 0; i < POOL_SIZE; i++) { Parcel.obtain(); } final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { Parcel.obtain().recycle(); } } }
core/java/android/os/Parcel.java +14 −12 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; import dalvik.system.VMRuntime; Loading Loading @@ -260,24 +261,24 @@ public final class Parcel { // see libbinder's binder/Status.h private static final int EX_TRANSACTION_FAILED = -129; @FastNative @CriticalNative private static native int nativeDataSize(long nativePtr); @FastNative @CriticalNative private static native int nativeDataAvail(long nativePtr); @FastNative @CriticalNative private static native int nativeDataPosition(long nativePtr); @FastNative @CriticalNative private static native int nativeDataCapacity(long nativePtr); @FastNative private static native long nativeSetDataSize(long nativePtr, int size); @FastNative @CriticalNative private static native void nativeSetDataPosition(long nativePtr, int pos); @FastNative private static native void nativeSetDataCapacity(long nativePtr, int size); @FastNative @CriticalNative private static native boolean nativePushAllowFds(long nativePtr, boolean allowFds); @FastNative @CriticalNative private static native void nativeRestoreAllowFds(long nativePtr, boolean lastValue); private static native void nativeWriteByteArray(long nativePtr, byte[] b, int offset, int len); Loading @@ -297,13 +298,13 @@ public final class Parcel { private static native byte[] nativeCreateByteArray(long nativePtr); private static native boolean nativeReadByteArray(long nativePtr, byte[] dest, int destLen); private static native byte[] nativeReadBlob(long nativePtr); @FastNative @CriticalNative private static native int nativeReadInt(long nativePtr); @FastNative @CriticalNative private static native long nativeReadLong(long nativePtr); @FastNative @CriticalNative private static native float nativeReadFloat(long nativePtr); @FastNative @CriticalNative private static native double nativeReadDouble(long nativePtr); private static native String nativeReadString(long nativePtr); private static native IBinder nativeReadStrongBinder(long nativePtr); Loading @@ -319,11 +320,12 @@ public final class Parcel { private static native int nativeCompareData(long thisNativePtr, long otherNativePtr); private static native long nativeAppendFrom( long thisNativePtr, long otherNativePtr, int offset, int length); @FastNative @CriticalNative private static native boolean nativeHasFileDescriptors(long nativePtr); private static native void nativeWriteInterfaceToken(long nativePtr, String interfaceName); private static native void nativeEnforceInterface(long nativePtr, String interfaceName); @CriticalNative private static native long nativeGetBlobAshmemSize(long nativePtr); public final static Parcelable.Creator<String> STRING_CREATOR Loading
core/jni/android_os_Parcel.cpp +26 −25 Original line number Diff line number Diff line Loading @@ -90,25 +90,25 @@ void recycleJavaParcelObject(JNIEnv* env, jobject parcelObj) env->CallVoidMethod(parcelObj, gParcelOffsets.recycle); } static jint android_os_Parcel_dataSize(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataSize(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataSize() : 0; } static jint android_os_Parcel_dataAvail(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataAvail(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataAvail() : 0; } static jint android_os_Parcel_dataPosition(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataPosition(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataPosition() : 0; } static jint android_os_Parcel_dataCapacity(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_dataCapacity(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); return parcel ? parcel->dataCapacity() : 0; Loading @@ -127,7 +127,7 @@ static jlong android_os_Parcel_setDataSize(JNIEnv* env, jclass clazz, jlong nati return 0; } static void android_os_Parcel_setDataPosition(JNIEnv* env, jclass clazz, jlong nativePtr, jint pos) static void android_os_Parcel_setDataPosition(jlong nativePtr, jint pos) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -146,7 +146,7 @@ static void android_os_Parcel_setDataCapacity(JNIEnv* env, jclass clazz, jlong n } } static jboolean android_os_Parcel_pushAllowFds(JNIEnv* env, jclass clazz, jlong nativePtr, jboolean allowFds) static jboolean android_os_Parcel_pushAllowFds(jlong nativePtr, jboolean allowFds) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); jboolean ret = JNI_TRUE; Loading @@ -156,7 +156,7 @@ static jboolean android_os_Parcel_pushAllowFds(JNIEnv* env, jclass clazz, jlong return ret; } static void android_os_Parcel_restoreAllowFds(JNIEnv* env, jclass clazz, jlong nativePtr, jboolean lastValue) static void android_os_Parcel_restoreAllowFds(jlong nativePtr, jboolean lastValue) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading Loading @@ -398,7 +398,7 @@ static jbyteArray android_os_Parcel_readBlob(JNIEnv* env, jclass clazz, jlong na return ret; } static jint android_os_Parcel_readInt(JNIEnv* env, jclass clazz, jlong nativePtr) static jint android_os_Parcel_readInt(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -407,7 +407,7 @@ static jint android_os_Parcel_readInt(JNIEnv* env, jclass clazz, jlong nativePtr return 0; } static jlong android_os_Parcel_readLong(JNIEnv* env, jclass clazz, jlong nativePtr) static jlong android_os_Parcel_readLong(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -416,7 +416,7 @@ static jlong android_os_Parcel_readLong(JNIEnv* env, jclass clazz, jlong nativeP return 0; } static jfloat android_os_Parcel_readFloat(JNIEnv* env, jclass clazz, jlong nativePtr) static jfloat android_os_Parcel_readFloat(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -425,7 +425,7 @@ static jfloat android_os_Parcel_readFloat(JNIEnv* env, jclass clazz, jlong nativ return 0; } static jdouble android_os_Parcel_readDouble(JNIEnv* env, jclass clazz, jlong nativePtr) static jdouble android_os_Parcel_readDouble(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading Loading @@ -673,7 +673,7 @@ static jlong android_os_Parcel_appendFrom(JNIEnv* env, jclass clazz, jlong thisN return thisParcel->getOpenAshmemSize(); } static jboolean android_os_Parcel_hasFileDescriptors(JNIEnv* env, jclass clazz, jlong nativePtr) static jboolean android_os_Parcel_hasFileDescriptors(jlong nativePtr) { jboolean ret = JNI_FALSE; Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); Loading Loading @@ -747,7 +747,7 @@ static jlong android_os_Parcel_getGlobalAllocCount(JNIEnv* env, jclass clazz) return Parcel::getGlobalAllocCount(); } static jlong android_os_Parcel_getBlobAshmemSize(JNIEnv* env, jclass clazz, jlong nativePtr) static jlong android_os_Parcel_getBlobAshmemSize(jlong nativePtr) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel != NULL) { Loading @@ -759,24 +759,24 @@ static jlong android_os_Parcel_getBlobAshmemSize(JNIEnv* env, jclass clazz, jlon // ---------------------------------------------------------------------------- static const JNINativeMethod gParcelMethods[] = { // @FastNative // @CriticalNative {"nativeDataSize", "(J)I", (void*)android_os_Parcel_dataSize}, // @FastNative // @CriticalNative {"nativeDataAvail", "(J)I", (void*)android_os_Parcel_dataAvail}, // @FastNative // @CriticalNative {"nativeDataPosition", "(J)I", (void*)android_os_Parcel_dataPosition}, // @FastNative // @CriticalNative {"nativeDataCapacity", "(J)I", (void*)android_os_Parcel_dataCapacity}, // @FastNative {"nativeSetDataSize", "(JI)J", (void*)android_os_Parcel_setDataSize}, // @FastNative // @CriticalNative {"nativeSetDataPosition", "(JI)V", (void*)android_os_Parcel_setDataPosition}, // @FastNative {"nativeSetDataCapacity", "(JI)V", (void*)android_os_Parcel_setDataCapacity}, // @FastNative // @CriticalNative {"nativePushAllowFds", "(JZ)Z", (void*)android_os_Parcel_pushAllowFds}, // @FastNative // @CriticalNative {"nativeRestoreAllowFds", "(JZ)V", (void*)android_os_Parcel_restoreAllowFds}, {"nativeWriteByteArray", "(J[BII)V", (void*)android_os_Parcel_writeByteArray}, Loading @@ -796,13 +796,13 @@ static const JNINativeMethod gParcelMethods[] = { {"nativeCreateByteArray", "(J)[B", (void*)android_os_Parcel_createByteArray}, {"nativeReadByteArray", "(J[BI)Z", (void*)android_os_Parcel_readByteArray}, {"nativeReadBlob", "(J)[B", (void*)android_os_Parcel_readBlob}, // @FastNative // @CriticalNative {"nativeReadInt", "(J)I", (void*)android_os_Parcel_readInt}, // @FastNative // @CriticalNative {"nativeReadLong", "(J)J", (void*)android_os_Parcel_readLong}, // @FastNative // @CriticalNative {"nativeReadFloat", "(J)F", (void*)android_os_Parcel_readFloat}, // @FastNative // @CriticalNative {"nativeReadDouble", "(J)D", (void*)android_os_Parcel_readDouble}, {"nativeReadString", "(J)Ljava/lang/String;", (void*)android_os_Parcel_readString}, {"nativeReadStrongBinder", "(J)Landroid/os/IBinder;", (void*)android_os_Parcel_readStrongBinder}, Loading @@ -821,7 +821,7 @@ static const JNINativeMethod gParcelMethods[] = { {"nativeUnmarshall", "(J[BII)J", (void*)android_os_Parcel_unmarshall}, {"nativeCompareData", "(JJ)I", (void*)android_os_Parcel_compareData}, {"nativeAppendFrom", "(JJII)J", (void*)android_os_Parcel_appendFrom}, // @FastNative // @CriticalNative {"nativeHasFileDescriptors", "(J)Z", (void*)android_os_Parcel_hasFileDescriptors}, {"nativeWriteInterfaceToken", "(JLjava/lang/String;)V", (void*)android_os_Parcel_writeInterfaceToken}, {"nativeEnforceInterface", "(JLjava/lang/String;)V", (void*)android_os_Parcel_enforceInterface}, Loading @@ -829,6 +829,7 @@ static const JNINativeMethod gParcelMethods[] = { {"getGlobalAllocSize", "()J", (void*)android_os_Parcel_getGlobalAllocSize}, {"getGlobalAllocCount", "()J", (void*)android_os_Parcel_getGlobalAllocCount}, // @CriticalNative {"nativeGetBlobAshmemSize", "(J)J", (void*)android_os_Parcel_getBlobAshmemSize}, }; Loading