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); |
} |