diff options
author | 2018-02-22 15:03:05 -0800 | |
---|---|---|
committer | 2018-02-22 15:28:50 -0800 | |
commit | 06537f7a6f0772cbef08bdded933828378b2d32a (patch) | |
tree | e1505a3dea19d6585973d2db0d9dd6988bf0f03d | |
parent | a502c7202f56b8f5f2c5de567359fa7f6bab406f (diff) |
native: Cleanup jni usage code
Make the C++ signature consistent with the JNI descriptor by using the
same type as the descriptor whenever possible.
e.g. "()Ljava/lang/String;" should actually be "jstring fn(JNIEnv*,jobject)"
instead of "jobject fn(JNIEnv*,jobject)".
Bug: 35325126
Change-Id: I72318525fc3b18b013b8d6fa604d8dd6b5dd4400
Test: make -j32 test-art-host # and also manually that it boots
-rw-r--r-- | runtime/native/dalvik_system_VMDebug.cc | 2 | ||||
-rw-r--r-- | runtime/native/java_lang_Class.cc | 2 | ||||
-rw-r--r-- | runtime/native/java_lang_String.cc | 4 | ||||
-rw-r--r-- | runtime/native/java_lang_System.cc | 37 | ||||
-rw-r--r-- | runtime/native/java_lang_reflect_Array.cc | 2 | ||||
-rw-r--r-- | runtime/native/java_lang_reflect_Executable.cc | 8 | ||||
-rw-r--r-- | runtime/native/java_lang_reflect_Field.cc | 4 | ||||
-rw-r--r-- | runtime/native/java_lang_reflect_Method.cc | 2 | ||||
-rw-r--r-- | runtime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc | 2 | ||||
-rw-r--r-- | runtime/native/sun_misc_Unsafe.cc | 4 |
10 files changed, 36 insertions, 31 deletions
diff --git a/runtime/native/dalvik_system_VMDebug.cc b/runtime/native/dalvik_system_VMDebug.cc index 6da34bcc60..fc9426650e 100644 --- a/runtime/native/dalvik_system_VMDebug.cc +++ b/runtime/native/dalvik_system_VMDebug.cc @@ -442,7 +442,7 @@ enum class VMDebugRuntimeStatId { kNumRuntimeStats, }; -static jobject VMDebug_getRuntimeStatInternal(JNIEnv* env, jclass, jint statId) { +static jstring VMDebug_getRuntimeStatInternal(JNIEnv* env, jclass, jint statId) { gc::Heap* heap = Runtime::Current()->GetHeap(); switch (static_cast<VMDebugRuntimeStatId>(statId)) { case VMDebugRuntimeStatId::kArtGcGcCount: { diff --git a/runtime/native/java_lang_Class.cc b/runtime/native/java_lang_Class.cc index e518553292..a4a8a376fb 100644 --- a/runtime/native/java_lang_Class.cc +++ b/runtime/native/java_lang_Class.cc @@ -532,7 +532,7 @@ static jobjectArray Class_getDeclaredConstructorsInternal( } static jobject Class_getDeclaredMethodInternal(JNIEnv* env, jobject javaThis, - jobject name, jobjectArray args) { + jstring name, jobjectArray args) { ScopedFastNativeObjectAccess soa(env); DCHECK_EQ(Runtime::Current()->GetClassLinker()->GetImagePointerSize(), kRuntimePointerSize); DCHECK(!Runtime::Current()->IsActiveTransaction()); diff --git a/runtime/native/java_lang_String.cc b/runtime/native/java_lang_String.cc index 9295ff7071..b5aea7ca7c 100644 --- a/runtime/native/java_lang_String.cc +++ b/runtime/native/java_lang_String.cc @@ -37,7 +37,7 @@ static jchar String_charAt(JNIEnv* env, jobject java_this, jint index) { return soa.Decode<mirror::String>(java_this)->CharAt(index); } -static jint String_compareTo(JNIEnv* env, jobject java_this, jobject java_rhs) { +static jint String_compareTo(JNIEnv* env, jobject java_this, jstring java_rhs) { ScopedFastNativeObjectAccess soa(env); if (UNLIKELY(java_rhs == nullptr)) { ThrowNullPointerException("rhs == null"); @@ -48,7 +48,7 @@ static jint String_compareTo(JNIEnv* env, jobject java_this, jobject java_rhs) { } } -static jstring String_concat(JNIEnv* env, jobject java_this, jobject java_string_arg) { +static jstring String_concat(JNIEnv* env, jobject java_this, jstring java_string_arg) { ScopedFastNativeObjectAccess soa(env); if (UNLIKELY(java_string_arg == nullptr)) { ThrowNullPointerException("string arg == null"); diff --git a/runtime/native/java_lang_System.cc b/runtime/native/java_lang_System.cc index 553cbeaabc..390f026588 100644 --- a/runtime/native/java_lang_System.cc +++ b/runtime/native/java_lang_System.cc @@ -182,50 +182,55 @@ inline void System_arraycopyTUnchecked(JNIEnv* env, jobject javaSrc, jint srcPos AsPrimitiveArray<T>(dstArray)->Memmove(dstPos, AsPrimitiveArray<T>(srcArray), srcPos, count); } -static void System_arraycopyCharUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyCharUnchecked(JNIEnv* env, jclass, jcharArray javaSrc, jint srcPos, + jcharArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::CharArray, Primitive::kPrimChar>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyByteUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyByteUnchecked(JNIEnv* env, jclass, jbyteArray javaSrc, jint srcPos, + jbyteArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::ByteArray, Primitive::kPrimByte>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyShortUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyShortUnchecked(JNIEnv* env, jclass, jshortArray javaSrc, jint srcPos, + jshortArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::ShortArray, Primitive::kPrimShort>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyIntUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyIntUnchecked(JNIEnv* env, jclass, jintArray javaSrc, jint srcPos, + jintArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::IntArray, Primitive::kPrimInt>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyLongUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyLongUnchecked(JNIEnv* env, jclass, jlongArray javaSrc, jint srcPos, + jlongArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::LongArray, Primitive::kPrimLong>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyFloatUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyFloatUnchecked(JNIEnv* env, jclass, jfloatArray javaSrc, jint srcPos, + jfloatArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::FloatArray, Primitive::kPrimFloat>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyDoubleUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyDoubleUnchecked(JNIEnv* env, jclass, jdoubleArray javaSrc, jint srcPos, + jdoubleArray javaDst, jint dstPos, jint count) { System_arraycopyTUnchecked<mirror::DoubleArray, Primitive::kPrimDouble>(env, javaSrc, srcPos, javaDst, dstPos, count); } -static void System_arraycopyBooleanUnchecked(JNIEnv* env, jclass, jobject javaSrc, jint srcPos, - jobject javaDst, jint dstPos, jint count) { +static void System_arraycopyBooleanUnchecked(JNIEnv* env, + jclass, + jbooleanArray javaSrc, + jint srcPos, + jbooleanArray javaDst, + jint dstPos, + jint count) { System_arraycopyTUnchecked<mirror::BooleanArray, Primitive::kPrimBoolean>(env, javaSrc, srcPos, javaDst, dstPos, count); } diff --git a/runtime/native/java_lang_reflect_Array.cc b/runtime/native/java_lang_reflect_Array.cc index 12d400895c..d28f74158e 100644 --- a/runtime/native/java_lang_reflect_Array.cc +++ b/runtime/native/java_lang_reflect_Array.cc @@ -31,7 +31,7 @@ namespace art { static jobject Array_createMultiArray( - JNIEnv* env, jclass, jclass javaElementClass, jobject javaDimArray) { + JNIEnv* env, jclass, jclass javaElementClass, jintArray javaDimArray) { ScopedFastNativeObjectAccess soa(env); DCHECK(javaElementClass != nullptr); StackHandleScope<2> hs(soa.Self()); diff --git a/runtime/native/java_lang_reflect_Executable.cc b/runtime/native/java_lang_reflect_Executable.cc index e37c14b41c..a5e70affa5 100644 --- a/runtime/native/java_lang_reflect_Executable.cc +++ b/runtime/native/java_lang_reflect_Executable.cc @@ -249,14 +249,14 @@ static jint Executable_compareMethodParametersInternal(JNIEnv* env, return 0; } -static jobject Executable_getMethodNameInternal(JNIEnv* env, jobject javaMethod) { +static jstring Executable_getMethodNameInternal(JNIEnv* env, jobject javaMethod) { ScopedFastNativeObjectAccess soa(env); ArtMethod* method = ArtMethod::FromReflectedMethod(soa, javaMethod); method = method->GetInterfaceMethodIfProxy(kRuntimePointerSize); - return soa.AddLocalReference<jobject>(method->GetNameAsString(soa.Self())); + return soa.AddLocalReference<jstring>(method->GetNameAsString(soa.Self())); } -static jobject Executable_getMethodReturnTypeInternal(JNIEnv* env, jobject javaMethod) { +static jclass Executable_getMethodReturnTypeInternal(JNIEnv* env, jobject javaMethod) { ScopedFastNativeObjectAccess soa(env); ArtMethod* method = ArtMethod::FromReflectedMethod(soa, javaMethod); method = method->GetInterfaceMethodIfProxy(kRuntimePointerSize); @@ -266,7 +266,7 @@ static jobject Executable_getMethodReturnTypeInternal(JNIEnv* env, jobject javaM return nullptr; } - return soa.AddLocalReference<jobject>(return_type); + return soa.AddLocalReference<jclass>(return_type); } // TODO: Move this to mirror::Class ? Other mirror types that commonly appear diff --git a/runtime/native/java_lang_reflect_Field.cc b/runtime/native/java_lang_reflect_Field.cc index f990c0421d..688ae1977e 100644 --- a/runtime/native/java_lang_reflect_Field.cc +++ b/runtime/native/java_lang_reflect_Field.cc @@ -460,10 +460,10 @@ static jlong Field_getArtField(JNIEnv* env, jobject javaField) { return reinterpret_cast<jlong>(field); } -static jobject Field_getNameInternal(JNIEnv* env, jobject javaField) { +static jstring Field_getNameInternal(JNIEnv* env, jobject javaField) { ScopedFastNativeObjectAccess soa(env); ArtField* field = soa.Decode<mirror::Field>(javaField)->GetArtField(); - return soa.AddLocalReference<jobject>( + return soa.AddLocalReference<jstring>( field->GetStringName(soa.Self(), true /* resolve */)); } diff --git a/runtime/native/java_lang_reflect_Method.cc b/runtime/native/java_lang_reflect_Method.cc index b604dc0fa1..4355c06acd 100644 --- a/runtime/native/java_lang_reflect_Method.cc +++ b/runtime/native/java_lang_reflect_Method.cc @@ -82,7 +82,7 @@ static jobjectArray Method_getExceptionTypes(JNIEnv* env, jobject javaMethod) { } static jobject Method_invoke(JNIEnv* env, jobject javaMethod, jobject javaReceiver, - jobject javaArgs) { + jobjectArray javaArgs) { ScopedFastNativeObjectAccess soa(env); return InvokeMethod(soa, javaMethod, javaReceiver, javaArgs); } diff --git a/runtime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc b/runtime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc index 836637f4f0..fbee7b31a3 100644 --- a/runtime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc +++ b/runtime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc @@ -162,7 +162,7 @@ static jbyteArray DdmVmInternal_getThreadStats(JNIEnv* env, jclass) { return result; } -static jint DdmVmInternal_heapInfoNotify(JNIEnv* env, jclass, jint when) { +static jboolean DdmVmInternal_heapInfoNotify(JNIEnv* env, jclass, jint when) { ScopedFastNativeObjectAccess soa(env); return Dbg::DdmHandleHpifChunk(static_cast<Dbg::HpifWhen>(when)); } diff --git a/runtime/native/sun_misc_Unsafe.cc b/runtime/native/sun_misc_Unsafe.cc index b2bdeed5cb..1af65a371b 100644 --- a/runtime/native/sun_misc_Unsafe.cc +++ b/runtime/native/sun_misc_Unsafe.cc @@ -198,14 +198,14 @@ static void Unsafe_putOrderedObject(JNIEnv* env, jobject, jobject javaObj, jlong obj->SetFieldObject<false>(MemberOffset(offset), newValue); } -static jint Unsafe_getArrayBaseOffsetForComponentType(JNIEnv* env, jclass, jobject component_class) { +static jint Unsafe_getArrayBaseOffsetForComponentType(JNIEnv* env, jclass, jclass component_class) { ScopedFastNativeObjectAccess soa(env); ObjPtr<mirror::Class> component = soa.Decode<mirror::Class>(component_class); Primitive::Type primitive_type = component->GetPrimitiveType(); return mirror::Array::DataOffset(Primitive::ComponentSize(primitive_type)).Int32Value(); } -static jint Unsafe_getArrayIndexScaleForComponentType(JNIEnv* env, jclass, jobject component_class) { +static jint Unsafe_getArrayIndexScaleForComponentType(JNIEnv* env, jclass, jclass component_class) { ScopedFastNativeObjectAccess soa(env); ObjPtr<mirror::Class> component = soa.Decode<mirror::Class>(component_class); Primitive::Type primitive_type = component->GetPrimitiveType(); |