Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(896)

Unified Diff: content/browser/renderer_host/java/java_bound_object.cc

Issue 8769005: Don't use Singleton to cache JNI method IDs in Java Bridge (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Finer grained locking Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/java/java_bound_object.cc
diff --git a/content/browser/renderer_host/java/java_bound_object.cc b/content/browser/renderer_host/java/java_bound_object.cc
index e139d4696a775748068d49d9434b00894d9a8b92..ff9a4bbb3e2f90602ff7abf42f218f0a1667531e 100644
--- a/content/browser/renderer_host/java/java_bound_object.cc
+++ b/content/browser/renderer_host/java/java_bound_object.cc
@@ -15,8 +15,8 @@
using base::StringPrintf;
using base::android::AttachCurrentThread;
using base::android::ConvertUTF8ToJavaString;
+using base::android::GetMethodIDFromClassName;
using base::android::JavaRef;
-using base::android::MethodID;
using base::android::ScopedJavaGlobalRef;
using base::android::ScopedJavaLocalRef;
using WebKit::WebBindings;
@@ -481,34 +481,6 @@ jvalue CoerceJavaScriptValueToJavaValue(const NPVariant& variant,
return jvalue();
}
-class ObjectGetClassID : public MethodID {
- public:
- static ObjectGetClassID* GetInstance() {
- return Singleton<ObjectGetClassID>::get();
- }
- private:
- friend struct DefaultSingletonTraits<ObjectGetClassID>;
- ObjectGetClassID()
- : MethodID(AttachCurrentThread(), "java/lang/Object", "getClass",
- "()Ljava/lang/Class;") {
- }
- DISALLOW_COPY_AND_ASSIGN(ObjectGetClassID);
-};
-
-class ClassGetMethodsID : public MethodID {
- public:
- static ClassGetMethodsID* GetInstance() {
- return Singleton<ClassGetMethodsID>::get();
- }
- private:
- friend struct DefaultSingletonTraits<ClassGetMethodsID>;
- ClassGetMethodsID()
- : MethodID(AttachCurrentThread(), "java/lang/Class", "getMethods",
- "()[Ljava/lang/reflect/Method;") {
- }
- DISALLOW_COPY_AND_ASSIGN(ClassGetMethodsID);
-};
-
} // namespace
@@ -591,11 +563,17 @@ void JavaBoundObject::EnsureMethodsAreSetUp() const {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jclass> clazz(env, static_cast<jclass>(
- env->CallObjectMethod(java_object_,
- ObjectGetClassID::GetInstance()->id())));
+ env->CallObjectMethod(java_object_, GetMethodIDFromClassName(
+ env,
+ "java/lang/Object",
+ "getClass",
+ "()Ljava/lang/Class;"))));
ScopedJavaLocalRef<jobjectArray> methods(env, static_cast<jobjectArray>(
- env->CallObjectMethod(clazz.obj(),
- ClassGetMethodsID::GetInstance()->id())));
+ env->CallObjectMethod(clazz.obj(), GetMethodIDFromClassName(
+ env,
+ "java/lang/Class",
+ "getMethods",
+ "()[Ljava/lang/reflect/Method;"))));
size_t num_methods = env->GetArrayLength(methods.obj());
DCHECK(num_methods) << "Java objects always have public methods";
for (size_t i = 0; i < num_methods; ++i) {

Powered by Google App Engine
This is Rietveld 408576698