summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Igor Murashkin <iam@google.com> 2018-02-22 15:03:05 -0800
committer Igor Murashkin <iam@google.com> 2018-02-22 15:28:50 -0800
commit06537f7a6f0772cbef08bdded933828378b2d32a (patch)
treee1505a3dea19d6585973d2db0d9dd6988bf0f03d
parenta502c7202f56b8f5f2c5de567359fa7f6bab406f (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.cc2
-rw-r--r--runtime/native/java_lang_Class.cc2
-rw-r--r--runtime/native/java_lang_String.cc4
-rw-r--r--runtime/native/java_lang_System.cc37
-rw-r--r--runtime/native/java_lang_reflect_Array.cc2
-rw-r--r--runtime/native/java_lang_reflect_Executable.cc8
-rw-r--r--runtime/native/java_lang_reflect_Field.cc4
-rw-r--r--runtime/native/java_lang_reflect_Method.cc2
-rw-r--r--runtime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc2
-rw-r--r--runtime/native/sun_misc_Unsafe.cc4
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();