You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ji...@apache.org on 2019/09/26 06:32:12 UTC

[incubator-weex] branch master updated: Double11 fix2 (#2937)

This is an automated email from the ASF dual-hosted git repository.

jianhan 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 69cfe53  Double11 fix2 (#2937)
69cfe53 is described below

commit 69cfe53cd1886e827306c20f020bb66ecd19b361
Author: wqyfavor <qi...@alibaba-inc.com>
AuthorDate: Thu Sep 26 14:32:07 2019 +0800

    Double11 fix2 (#2937)
    
    * [iOS] Fix issue JS thread may be deallocated not in JS thread.
    
    * [iOS] Fix the issue that iOS13 logic not working if config center is not set.
---
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm | 1 +
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m    | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm
index 9293fa5..9caff56 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm
@@ -80,6 +80,7 @@
 {
     _jsContext.instanceId = nil;
     __block JSContext* theContext = _jsContext;
+    _jsContext = nil; // Make sure that the context MUST be freed in JS thread.
     WXPerformBlockOnBridgeThreadForInstance(^{
          theContext = nil; // release the context in js thread to avoid main-thread deadlock
     }, _weexInstanceId);
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
index 360ad4f..7a22748 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
@@ -606,6 +606,10 @@ typedef enum : NSUInteger {
         BOOL alwaysUseMRCForObjectToWeexCore = [[configCenter configForKey:@"iOS_weex_ext_config.alwaysUseMRC" defaultValue:@(NO) isDefault:NULL] boolValue];
         ConvertSwitches(isIOS13, useMRCForInvalidJSONObject, alwaysUseMRCForObjectToWeexCore);
     }
+    else {
+        BOOL isIOS13 = [[[UIDevice currentDevice] systemVersion] integerValue] == 13;
+        ConvertSwitches(isIOS13, YES, NO);
+    }
     return NO;
 }