| Index: base/android/jni_android.cc
|
| diff --git a/base/android/jni_android.cc b/base/android/jni_android.cc
|
| index a34bc186ef216adf621bf549f7ebca9baabadde2..c2ca14d3587eb742bf76edf8c5caf68a5ecafccb 100644
|
| --- a/base/android/jni_android.cc
|
| +++ b/base/android/jni_android.cc
|
| @@ -7,8 +7,8 @@
|
| #include <map>
|
|
|
| #include "base/android/build_info.h"
|
| +#include "base/android/jni_method_id.h"
|
| #include "base/android/jni_string.h"
|
| -#include "base/atomicops.h"
|
| #include "base/lazy_instance.h"
|
| #include "base/logging.h"
|
| #include "base/threading/platform_thread.h"
|
| @@ -97,35 +97,6 @@ std::string GetJavaExceptionInfo(JNIEnv* env, jthrowable java_throwable) {
|
| return ConvertJavaStringToUTF8(exception_string);
|
| }
|
|
|
| -enum MethodType {
|
| - METHODTYPE_STATIC,
|
| - METHODTYPE_NORMAL,
|
| -};
|
| -
|
| -enum ExceptionCheck {
|
| - EXCEPTIONCHECK_YES,
|
| - EXCEPTIONCHECK_NO,
|
| -};
|
| -
|
| -template<MethodType method_type, ExceptionCheck exception_check>
|
| -jmethodID GetMethodIDInternal(JNIEnv* env,
|
| - jclass clazz,
|
| - const char* method_name,
|
| - const char* jni_signature) {
|
| - jmethodID method_id = method_type == METHODTYPE_STATIC ?
|
| - env->GetStaticMethodID(clazz, method_name, jni_signature) :
|
| - env->GetMethodID(clazz, method_name, jni_signature);
|
| - if (exception_check == EXCEPTIONCHECK_YES) {
|
| - CHECK(!base::android::ClearException(env) && method_id) <<
|
| - "Failed to find " <<
|
| - (method_type == METHODTYPE_STATIC ? "static " : "") <<
|
| - "method " << method_name << " " << jni_signature;
|
| - } else if (base::android::HasException(env)) {
|
| - env->ExceptionClear();
|
| - }
|
| - return method_id;
|
| -}
|
| -
|
| } // namespace
|
|
|
| namespace base {
|
| @@ -195,7 +166,8 @@ jmethodID GetMethodID(JNIEnv* env,
|
| jclass clazz,
|
| const char* method_name,
|
| const char* jni_signature) {
|
| - return GetMethodIDInternal<METHODTYPE_NORMAL, EXCEPTIONCHECK_YES>(
|
| + return MethodID::Get<MethodID::METHODTYPE_NORMAL,
|
| + MethodID::EXCEPTIONCHECK_YES>(
|
| env, clazz, method_name, jni_signature);
|
| }
|
|
|
| @@ -203,7 +175,8 @@ jmethodID GetMethodIDOrNull(JNIEnv* env,
|
| jclass clazz,
|
| const char* method_name,
|
| const char* jni_signature) {
|
| - return GetMethodIDInternal<METHODTYPE_NORMAL, EXCEPTIONCHECK_NO>(
|
| + return MethodID::Get<MethodID::METHODTYPE_NORMAL,
|
| + MethodID::EXCEPTIONCHECK_NO>(
|
| env, clazz, method_name, jni_signature);
|
| }
|
|
|
| @@ -219,15 +192,8 @@ jmethodID GetStaticMethodID(JNIEnv* env,
|
| jclass clazz,
|
| const char* method_name,
|
| const char* jni_signature) {
|
| - return GetMethodIDInternal<METHODTYPE_STATIC, EXCEPTIONCHECK_YES>(
|
| - env, clazz, method_name, jni_signature);
|
| -}
|
| -
|
| -jmethodID GetStaticMethodIDOrNull(JNIEnv* env,
|
| - jclass clazz,
|
| - const char* method_name,
|
| - const char* jni_signature) {
|
| - return GetMethodIDInternal<METHODTYPE_STATIC, EXCEPTIONCHECK_NO>(
|
| + return MethodID::Get<MethodID::METHODTYPE_STATIC,
|
| + MethodID::EXCEPTIONCHECK_YES>(
|
| env, clazz, method_name, jni_signature);
|
| }
|
|
|
|
|