Chromium Code Reviews| 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) { |