This is an automated email from the ASF dual-hosted git repository. kyork pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push: new e4f6763 [core] fix env or jni object nullptr (#1761) e4f6763 is described below commit e4f6763dc1e7f85489fd1a46546c8407231ce95a Author: yxping <yxp...@users.noreply.github.com> AuthorDate: Thu Nov 15 15:09:09 2018 +0800 [core] fix env or jni object nullptr (#1761) --- weex_core/Source/base/message_loop/message_pump_android.cc | 9 +++++++++ weex_core/Source/core/layout/measure_func_adapter_impl_android.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/weex_core/Source/base/message_loop/message_pump_android.cc b/weex_core/Source/base/message_loop/message_pump_android.cc index 765fa19..a4ad408 100644 --- a/weex_core/Source/base/message_loop/message_pump_android.cc +++ b/weex_core/Source/base/message_loop/message_pump_android.cc @@ -49,16 +49,25 @@ void MessagePumpAndroid::Run(Delegate* delegate) { void MessagePumpAndroid::Stop() { JNIEnv* env = ::base::android::AttachCurrentThread(); + if(!env || !jni_object()) { + return; + } Java_SystemMessageHandler_stop(env, jni_object()); } void MessagePumpAndroid::ScheduleWork() { JNIEnv* env = ::base::android::AttachCurrentThread(); + if(!env || !jni_object()) { + return; + } Java_SystemMessageHandler_scheduleWork(env, jni_object()); } void MessagePumpAndroid::ScheduleDelayedWork(TimeUnit delayed_time) { JNIEnv* env = ::base::android::AttachCurrentThread(); + if(!env || !jni_object()) { + return; + } Java_SystemMessageHandler_scheduleDelayedWork(env, jni_object(), delayed_time.ToMilliseconds()); } diff --git a/weex_core/Source/core/layout/measure_func_adapter_impl_android.h b/weex_core/Source/core/layout/measure_func_adapter_impl_android.h index 6703b56..444ec4c 100644 --- a/weex_core/Source/core/layout/measure_func_adapter_impl_android.h +++ b/weex_core/Source/core/layout/measure_func_adapter_impl_android.h @@ -46,6 +46,7 @@ namespace WeexCore { } JNIEnv* env = base::android::AttachCurrentThread(); + if (!env) return size; cumsmeasure_Imple_Android(env, measureFunc, width, height, @@ -65,6 +66,7 @@ namespace WeexCore { } JNIEnv *env = base::android::AttachCurrentThread(); + if (!env) return; LayoutBeforeImplAndroid(env, measureFunc); env->DeleteLocalRef(measureFunc); } @@ -75,6 +77,7 @@ namespace WeexCore { return; } JNIEnv *env = base::android::AttachCurrentThread(); + if (!env) return; LayoutAfterImplAndroid(env, measureFunc, width, height); env->DeleteLocalRef(measureFunc); }