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..7251ae8ec41ec380f036a3ccbdaf748ac003525c 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,33 +481,22 @@ jvalue CoerceJavaScriptValueToJavaValue(const NPVariant& variant, |
return jvalue(); |
} |
-class ObjectGetClassID : public MethodID { |
- public: |
- static ObjectGetClassID* GetInstance() { |
- return Singleton<ObjectGetClassID>::get(); |
M-A Ruel
2011/12/01 14:36:03
If you had used LazyInstance in the first place, y
joth
2011/12/02 11:39:02
I don't quite follow this bit-
- both Singleton<>
|
- } |
- private: |
- friend struct DefaultSingletonTraits<ObjectGetClassID>; |
- ObjectGetClassID() |
- : MethodID(AttachCurrentThread(), "java/lang/Object", "getClass", |
- "()Ljava/lang/Class;") { |
- } |
- DISALLOW_COPY_AND_ASSIGN(ObjectGetClassID); |
-}; |
+jmethodID GetObjectGetClassID() { |
+ static jmethodID id = GetMethodIDFromClassName(AttachCurrentThread(), |
M-A Ruel
2011/12/01 14:36:03
I'm really not a fan of static locals. Especially
|
+ "java/lang/Object", |
+ "getClass", |
+ "()Ljava/lang/Class;"); |
+ return id; |
+} |
-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); |
-}; |
+jmethodID GetClassGetMethodsID() { |
+ static jmethodID id = GetMethodIDFromClassName( |
+ AttachCurrentThread(), |
+ "java/lang/Class", |
+ "getMethods", |
+ "()[Ljava/lang/reflect/Method;"); |
+ return id; |
+} |
} // namespace |
@@ -591,11 +580,9 @@ 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_, GetObjectGetClassID()))); |
ScopedJavaLocalRef<jobjectArray> methods(env, static_cast<jobjectArray>( |
- env->CallObjectMethod(clazz.obj(), |
- ClassGetMethodsID::GetInstance()->id()))); |
+ env->CallObjectMethod(clazz.obj(), GetClassGetMethodsID()))); |
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) { |