Merge "Mark common android.os.Parcel methods as FastNative"
This commit is contained in:
committed by
Android (Google) Code Review
commit
ef16f64e60
@@ -305,8 +305,11 @@ public final class Parcel {
|
||||
private static native void nativeWriteFloat(long nativePtr, float val);
|
||||
@FastNative
|
||||
private static native void nativeWriteDouble(long nativePtr, double val);
|
||||
@FastNative
|
||||
static native void nativeWriteString(long nativePtr, String val);
|
||||
@FastNative
|
||||
private static native void nativeWriteStrongBinder(long nativePtr, IBinder val);
|
||||
@FastNative
|
||||
private static native long nativeWriteFileDescriptor(long nativePtr, FileDescriptor val);
|
||||
|
||||
private static native byte[] nativeCreateByteArray(long nativePtr);
|
||||
@@ -320,8 +323,11 @@ public final class Parcel {
|
||||
private static native float nativeReadFloat(long nativePtr);
|
||||
@CriticalNative
|
||||
private static native double nativeReadDouble(long nativePtr);
|
||||
@FastNative
|
||||
static native String nativeReadString(long nativePtr);
|
||||
@FastNative
|
||||
private static native IBinder nativeReadStrongBinder(long nativePtr);
|
||||
@FastNative
|
||||
private static native FileDescriptor nativeReadFileDescriptor(long nativePtr);
|
||||
|
||||
private static native long nativeCreate();
|
||||
|
||||
@@ -721,8 +721,11 @@ static const JNINativeMethod gParcelMethods[] = {
|
||||
{"nativeWriteFloat", "(JF)V", (void*)android_os_Parcel_writeFloat},
|
||||
// @FastNative
|
||||
{"nativeWriteDouble", "(JD)V", (void*)android_os_Parcel_writeDouble},
|
||||
// @FastNative
|
||||
{"nativeWriteString", "(JLjava/lang/String;)V", (void*)android_os_Parcel_writeString},
|
||||
// @FastNative
|
||||
{"nativeWriteStrongBinder", "(JLandroid/os/IBinder;)V", (void*)android_os_Parcel_writeStrongBinder},
|
||||
// @FastNative
|
||||
{"nativeWriteFileDescriptor", "(JLjava/io/FileDescriptor;)J", (void*)android_os_Parcel_writeFileDescriptor},
|
||||
|
||||
{"nativeCreateByteArray", "(J)[B", (void*)android_os_Parcel_createByteArray},
|
||||
@@ -736,8 +739,11 @@ static const JNINativeMethod gParcelMethods[] = {
|
||||
{"nativeReadFloat", "(J)F", (void*)android_os_Parcel_readFloat},
|
||||
// @CriticalNative
|
||||
{"nativeReadDouble", "(J)D", (void*)android_os_Parcel_readDouble},
|
||||
// @FastNative
|
||||
{"nativeReadString", "(J)Ljava/lang/String;", (void*)android_os_Parcel_readString},
|
||||
// @FastNative
|
||||
{"nativeReadStrongBinder", "(J)Landroid/os/IBinder;", (void*)android_os_Parcel_readStrongBinder},
|
||||
// @FastNative
|
||||
{"nativeReadFileDescriptor", "(J)Ljava/io/FileDescriptor;", (void*)android_os_Parcel_readFileDescriptor},
|
||||
|
||||
{"nativeCreate", "()J", (void*)android_os_Parcel_create},
|
||||
|
||||
@@ -697,6 +697,9 @@ BinderProxyNativeData* getBPNativeData(JNIEnv* env, jobject obj) {
|
||||
// same IBinder, and the original BinderProxy is still alive, return the same BinderProxy.
|
||||
jobject javaObjectForIBinder(JNIEnv* env, const sp<IBinder>& val)
|
||||
{
|
||||
// N.B. This function is called from a @FastNative JNI method, so don't take locks around
|
||||
// calls to Java code or block the calling thread for a long time for any reason.
|
||||
|
||||
if (val == NULL) return NULL;
|
||||
|
||||
if (val->checkSubclass(&gBinderOffsets)) {
|
||||
|
||||
Reference in New Issue
Block a user