* [iOS] release jsContext object
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/be1c3fcb Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/be1c3fcb Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/be1c3fcb Branch: refs/heads/master Commit: be1c3fcb445f62e35a2777fcc4488a083d53e98c Parents: d9317bf Author: acton393 <[email protected]> Authored: Thu Dec 14 19:12:34 2017 +0800 Committer: acton393 <[email protected]> Committed: Wed Dec 20 17:44:28 2017 +0800 ---------------------------------------------------------------------- ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/be1c3fcb/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 c9ae7dd..ad0663b 100644 --- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m +++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m @@ -462,9 +462,10 @@ _Pragma("clang diagnostic pop") \ classDefinition.attributes = kJSClassAttributeNoAutomaticPrototype; JSClassRef globalObjectClass = JSClassCreate(&classDefinition); JSGlobalContextRef sandboxGlobalContextRef = JSGlobalContextCreateInGroup(contextGroup, globalObjectClass); - JSObjectRef sandBoxGlobalObjectRef = JSContextGetGlobalObject(sandboxGlobalContextRef); - JSObjectSetPrototype(sandboxGlobalContextRef, sandBoxGlobalObjectRef, [instanceContextEnvironment JSValueRef]); + JSClassRelease(globalObjectClass); sdkInstance.instanceJavaScriptContext = [JSContext contextWithJSGlobalContextRef:sandboxGlobalContextRef]; + JSGlobalContextRelease(sandboxGlobalContextRef); + JSObjectSetPrototype(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef,JSContextGetGlobalObject(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef), [instanceContextEnvironment JSValueRef]); [sdkInstance.instanceJavaScriptContext evaluateScript:jsBundleString]; }]; } else { @@ -495,10 +496,10 @@ _Pragma("clang diagnostic pop") \ if(self.sendQueue[instance]){ [self.sendQueue removeObjectForKey:instance]; } + WXSDKInstance * sdkInstance = [WXSDKManager instanceForID:instance]; + sdkInstance.instanceJavaScriptContext = nil; [self callJSMethod:@"destroyInstance" args:@[instance]]; - WXSDKInstance *sdkIntance = [WXSDKManager instanceForID:instance]; - sdkIntance.instanceJavaScriptContext = NULL; } - (void)forceGarbageCollection
