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/05/23 12:11:29 UTC

incubator-weex git commit: [WEEX-395][Android] add more user tracks to track init framework

Repository: incubator-weex
Updated Branches:
  refs/heads/master 7f80f9043 -> dddd0f427


[WEEX-395][Android] add more user tracks to track init framework

add more user tracks to track init framework,
For example. we can track can't find libweexjss.so
Fix NPE cause str may be null

Bug: WEEX-395


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/dddd0f42
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/dddd0f42
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/dddd0f42

Branch: refs/heads/master
Commit: dddd0f4278f2df905f81993336aecbf1f30bc060
Parents: 7f80f90
Author: 东煜 <ya...@alibaba-inc.com>
Authored: Wed May 23 17:46:21 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Wed May 23 20:11:04 2018 +0800

----------------------------------------------------------------------
 .../Source/android/base/string/string_utils.h   | 21 +++++++++++++-------
 .../android/jsengine/multiprocess/WeexProxy.cpp | 16 +++++++++------
 2 files changed, 24 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/dddd0f42/weex_core/Source/android/base/string/string_utils.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/base/string/string_utils.h b/weex_core/Source/android/base/string/string_utils.h
index 8c51873..fd29371 100644
--- a/weex_core/Source/android/base/string/string_utils.h
+++ b/weex_core/Source/android/base/string/string_utils.h
@@ -52,9 +52,13 @@ static inline std::string jString2Str(JNIEnv *env, const jstring &jstr) {
   env->DeleteLocalRef(strencode);
   env->DeleteLocalRef(barr);
 
-  std::string stemp(rtn);
-  free(rtn);
-  return stemp;
+  if(rtn != NULL) {
+    std::string stemp(rtn);
+    free(rtn);
+    return stemp;
+  } else {
+    return "";
+  }
 }
 
 static inline std::string jString2StrFast(JNIEnv *env, const jstring &jstr){
@@ -72,14 +76,17 @@ static std::string jByteArray2Str(JNIEnv *env, jbyteArray barr) {
     rtn = (char *) malloc(alen + 1);
     memcpy(rtn, ba, alen);
     rtn[alen] = 0;
+  }
+  env->ReleaseByteArrayElements(barr, ba, 0);
+
+  if(rtn != NULL){
+    std::string stemp(rtn);
+    free(rtn);
+    return stemp;
   } else {
     return "";
   }
-  env->ReleaseByteArrayElements(barr, ba, 0);
 
-  std::string stemp(rtn);
-  free(rtn);
-  return stemp;
 }
 
 static inline jbyteArray newJByteArray(JNIEnv *env, const char* pat) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/dddd0f42/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp b/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp
index 316644b..44a9aca 100644
--- a/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp
+++ b/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp
@@ -518,7 +518,7 @@ namespace WeexCore {
             soPath += "/libweexjss.so";
             if (access(soPath.c_str(), 00) != 0) {
                 LOGE("so path: %s is not exsist", soPath.c_str());
-                //reportNativeInitStatus("-1004", error);
+                reportNativeInitStatus("-1004", error);
                 //return false;
                 //use libweexjss.so directly
                 soPath = "libweexjss.so";
@@ -531,7 +531,7 @@ namespace WeexCore {
         if (!handle) {
             const char *error = dlerror();
             LOGE("load libweexjss.so failed,error=%s\n", error);
-//        reportNativeInitStatus("-1005", error);
+            reportNativeInitStatus("-1005", error);
             // try again use current path
             dlclose(handle);
             return false;
@@ -545,7 +545,7 @@ namespace WeexCore {
         if (!initMethod) {
             const char *error = dlerror();
             LOGE("load External_InitFrameWork failed,error=%s\n", error);
-//        reportNativeInitStatus("-1006", error);
+            reportNativeInitStatus("-1006", error);
             dlclose(handle);
             return false;
         }
@@ -565,7 +565,7 @@ namespace WeexCore {
             dlclose(handle);
             free(pFunctions);
             free(js_server_api_functions);
-            //reportNativeInitStatus("-1007", "Init Functions failed");
+            reportNativeInitStatus("-1007", "Init Functions failed");
             return false;
         }
     }
@@ -716,8 +716,12 @@ namespace WeexCore {
                     serializer->add(c_value_chars, c_value_len);
                     initFrameworkParams.push_back(
                             genInitFrameworkParams(c_key_chars, c_value_chars));
-                    WXCoreEnvironment::getInstance()->AddOption(jString2Str(env, jkey),
-                                                                jString2Str(env, jvalue));
+                    const std::string &key = jString2Str(env, jkey);
+                    if (key != "") {
+                        WXCoreEnvironment::getInstance()->AddOption(key,
+                                                                    jString2Str(env, jvalue));
+                    }
+
                 }
             }
             env->DeleteLocalRef(jobjArray);