Index: base/android/base_jni_onload.cc |
diff --git a/base/android/base_jni_onload.cc b/base/android/base_jni_onload.cc |
index ae64120902741e28a83f13f4f7da2e52e946bdd5..f87ab408d26ac55c8450495f8107c4333505feb6 100644 |
--- a/base/android/base_jni_onload.cc |
+++ b/base/android/base_jni_onload.cc |
@@ -16,48 +16,45 @@ namespace { |
// The JNIOnLoadDelegate implementation in base. |
class BaseJNIOnLoadDelegate : public JNIOnLoadDelegate { |
public: |
- bool RegisterJNI(JNIEnv* env) override; |
- bool Init() override; |
+ bool RegisterJNI(JNIEnv* env) override { |
+ return RegisterLibraryLoaderEntryHook(env); |
+ } |
+ bool Init() override { |
+ return true; |
+ } |
}; |
-bool BaseJNIOnLoadDelegate::RegisterJNI(JNIEnv* env) { |
- return RegisterLibraryLoaderEntryHook(env); |
-} |
- |
-bool BaseJNIOnLoadDelegate::Init() { |
- return true; |
-} |
- |
} // namespace |
-bool OnJNIOnLoad(JavaVM* vm, |
- std::vector<JNIOnLoadDelegate*>* delegates) { |
+bool OnJNIOnLoadRegisterJNI( |
+ JavaVM* vm, |
+ std::vector<JNIOnLoadDelegate*>* delegates) { |
base::android::InitVM(vm); |
JNIEnv* env = base::android::AttachCurrentThread(); |
BaseJNIOnLoadDelegate delegate; |
delegates->push_back(&delegate); |
- bool ret = true; |
for (std::vector<JNIOnLoadDelegate*>::reverse_iterator i = |
delegates->rbegin(); i != delegates->rend(); ++i) { |
- if (!(*i)->RegisterJNI(env)) { |
- ret = false; |
- break; |
- } |
+ if (!(*i)->RegisterJNI(env)) |
+ return false; |
} |
+ delegates->pop_back(); |
+ return true; |
+} |
+ |
+bool OnJNIOnLoadInit(std::vector<JNIOnLoadDelegate*>* delegates) { |
+ BaseJNIOnLoadDelegate delegate; |
+ delegates->push_back(&delegate); |
- if (ret) { |
- for (std::vector<JNIOnLoadDelegate*>::reverse_iterator i = |
- delegates->rbegin(); i != delegates->rend(); ++i) { |
- if (!(*i)->Init()) { |
- ret = false; |
- break; |
- } |
- } |
+ for (std::vector<JNIOnLoadDelegate*>::reverse_iterator i = |
+ delegates->rbegin(); i != delegates->rend(); ++i) { |
+ if (!(*i)->Init()) |
+ return false; |
} |
delegates->pop_back(); |
- return ret; |
+ return true; |
} |
} // namespace android |