| Index: base/message_loop/message_pump_android.cc
|
| diff --git a/base/message_loop/message_pump_android.cc b/base/message_loop/message_pump_android.cc
|
| index f3f1c9bcb4d83bc0f5b94312f1ef64371a4617c7..fff1539044526fb3a0489c70f11a0b947f16bd6e 100644
|
| --- a/base/message_loop/message_pump_android.cc
|
| +++ b/base/message_loop/message_pump_android.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/android/scoped_java_ref.h"
|
| #include "base/lazy_instance.h"
|
| #include "base/logging.h"
|
| +#include "base/message_loop/message_loop.h"
|
| #include "base/run_loop.h"
|
| #include "base/time/time.h"
|
| #include "jni/SystemMessageHandler_jni.h"
|
| @@ -21,7 +22,16 @@ using base::android::ScopedJavaLocalRef;
|
| // ----------------------------------------------------------------------------
|
| // This method can not move to anonymous namespace as it has been declared as
|
| // 'static' in system_message_handler_jni.h.
|
| -static void DoRunLoopOnce(JNIEnv* env, jobject obj, jint native_delegate) {
|
| +static void DoRunLoopOnce(
|
| + JNIEnv* env,
|
| + jobject obj,
|
| + jint native_delegate,
|
| + jint native_message_loop) {
|
| + base::MessageLoop* message_loop =
|
| + reinterpret_cast<base::MessageLoop*>(native_message_loop);
|
| + if (message_loop != base::MessageLoop::current())
|
| + return;
|
| +
|
| base::MessagePump::Delegate* delegate =
|
| reinterpret_cast<base::MessagePump::Delegate*>(native_delegate);
|
| DCHECK(delegate);
|
| @@ -81,7 +91,8 @@ void MessagePumpForUI::Start(Delegate* delegate) {
|
| DCHECK(env);
|
|
|
| system_message_handler_obj_.Reset(
|
| - Java_SystemMessageHandler_create(env, reinterpret_cast<jint>(delegate)));
|
| + Java_SystemMessageHandler_create(env, reinterpret_cast<jint>(delegate),
|
| + reinterpret_cast<jint>(MessageLoop::current())));
|
| }
|
|
|
| void MessagePumpForUI::Quit() {
|
|
|