You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/11/15 07:09:13 UTC

[incubator-weex] branch master updated: [core] fix env or jni object nullptr (#1761)

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 <yx...@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);
     }