Index: content/browser/android/java/java_method.cc |
diff --git a/content/browser/android/java/java_method.cc b/content/browser/android/java/java_method.cc |
index d1ebbb5287fe622cfe3656d3a0579ca41948a0cd..9da0102cf33bb36c59103fc9a3abce4ec5cca72b 100644 |
--- a/content/browser/android/java/java_method.cc |
+++ b/content/browser/android/java/java_method.cc |
@@ -8,7 +8,6 @@ |
#include "base/android/jni_string.h" |
#include "base/lazy_instance.h" |
#include "base/memory/singleton.h" |
-#include "base/strings/string_util.h" // For ReplaceSubstringsAfterOffset |
#include "content/browser/android/java/jni_helper.h" |
using base::android::AttachCurrentThread; |
@@ -50,43 +49,11 @@ struct ModifierClassTraits : |
base::LazyInstance<ScopedJavaGlobalRef<jclass>, ModifierClassTraits> |
g_java_lang_reflect_modifier_class = LAZY_INSTANCE_INITIALIZER; |
-std::string BinaryNameToJNIName(const std::string& binary_name, |
- JavaType* type) { |
+std::string BinaryNameToJNISignature(const std::string& binary_name, |
+ JavaType* type) { |
DCHECK(type); |
*type = JavaType::CreateFromBinaryName(binary_name); |
- switch (type->type) { |
- case JavaType::TypeBoolean: |
- return "Z"; |
- case JavaType::TypeByte: |
- return "B"; |
- case JavaType::TypeChar: |
- return "C"; |
- case JavaType::TypeShort: |
- return "S"; |
- case JavaType::TypeInt: |
- return "I"; |
- case JavaType::TypeLong: |
- return "J"; |
- case JavaType::TypeFloat: |
- return "F"; |
- case JavaType::TypeDouble: |
- return "D"; |
- case JavaType::TypeVoid: |
- return "V"; |
- case JavaType::TypeArray: { |
- // For array types, the binary name uses the JNI name encodings. |
- std::string jni_name = binary_name; |
- ReplaceSubstringsAfterOffset(&jni_name, 0, ".", "/"); |
- return jni_name; |
- } |
- case JavaType::TypeString: |
- case JavaType::TypeObject: |
- std::string jni_name = "L" + binary_name + ";"; |
- ReplaceSubstringsAfterOffset(&jni_name, 0, ".", "/"); |
- return jni_name; |
- } |
- NOTREACHED(); |
- return std::string(); |
+ return type->JNISignature(); |
} |
} // namespace |
@@ -191,7 +158,7 @@ void JavaMethod::EnsureTypesAndIDAreSetUp() const { |
kGetName, |
kReturningJavaLangString)))); |
std::string name_utf8 = ConvertJavaStringToUTF8(name); |
- signature += BinaryNameToJNIName(name_utf8, ¶meter_types_[i]); |
+ signature += BinaryNameToJNISignature(name_utf8, ¶meter_types_[i]); |
} |
signature += ")"; |
@@ -208,8 +175,8 @@ void JavaMethod::EnsureTypesAndIDAreSetUp() const { |
kJavaLangClass, |
kGetName, |
kReturningJavaLangString)))); |
- signature += BinaryNameToJNIName(ConvertJavaStringToUTF8(name), |
- &return_type_); |
+ signature += BinaryNameToJNISignature(ConvertJavaStringToUTF8(name), |
+ &return_type_); |
// Determine whether the method is static. |
jint modifiers = env->CallIntMethod( |