* [iOS] support multi-context
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2f9c032a Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2f9c032a Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2f9c032a Branch: refs/heads/master Commit: 2f9c032ae906fa8eb9b722c23730791936cf0783 Parents: be1c3fc Author: acton393 <[email protected]> Authored: Tue Dec 12 14:58:51 2017 +0800 Committer: acton393 <[email protected]> Committed: Wed Dec 20 17:47:55 2017 +0800 ---------------------------------------------------------------------- ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f9c032a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m ---------------------------------------------------------------------- diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m index ad0663b..62574ba 100644 --- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m +++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m @@ -462,10 +462,9 @@ _Pragma("clang diagnostic pop") \ classDefinition.attributes = kJSClassAttributeNoAutomaticPrototype; JSClassRef globalObjectClass = JSClassCreate(&classDefinition); JSGlobalContextRef sandboxGlobalContextRef = JSGlobalContextCreateInGroup(contextGroup, globalObjectClass); - JSClassRelease(globalObjectClass); + JSObjectRef sandBoxGlobalObjectRef = JSContextGetGlobalObject(sandboxGlobalContextRef); + JSObjectSetPrototype(sandboxGlobalContextRef, sandBoxGlobalObjectRef, [instanceContextEnvironment JSValueRef]); sdkInstance.instanceJavaScriptContext = [JSContext contextWithJSGlobalContextRef:sandboxGlobalContextRef]; - JSGlobalContextRelease(sandboxGlobalContextRef); - JSObjectSetPrototype(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef,JSContextGetGlobalObject(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef), [instanceContextEnvironment JSValueRef]); [sdkInstance.instanceJavaScriptContext evaluateScript:jsBundleString]; }]; } else { @@ -500,6 +499,8 @@ _Pragma("clang diagnostic pop") \ sdkInstance.instanceJavaScriptContext = nil; [self callJSMethod:@"destroyInstance" args:@[instance]]; + WXSDKInstance *sdkIntance = [WXSDKManager instanceForID:instance]; + sdkIntance.instanceJavaScriptContext = NULL; } - (void)forceGarbageCollection
