You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2017/01/27 01:02:59 UTC

ios commit: CB-12388 - Fix memory leak due to strong reference

Repository: cordova-ios
Updated Branches:
  refs/heads/master 6e1d376a7 -> 4527e8ef1


CB-12388 - Fix memory leak due to strong reference


Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/4527e8ef
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/4527e8ef
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/4527e8ef

Branch: refs/heads/master
Commit: 4527e8ef11dedabf2245b5cfd38c094fbd158380
Parents: 6e1d376
Author: Shazron Abdullah <sh...@gmail.com>
Authored: Thu Jan 26 17:02:52 2017 -0800
Committer: Shazron Abdullah <sh...@gmail.com>
Committed: Thu Jan 26 17:02:52 2017 -0800

----------------------------------------------------------------------
 CordovaLib/Classes/Public/CDVViewController.m | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/4527e8ef/CordovaLib/Classes/Public/CDVViewController.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/Public/CDVViewController.m b/CordovaLib/Classes/Public/CDVViewController.m
index d6cd130..6e329aa 100644
--- a/CordovaLib/Classes/Public/CDVViewController.m
+++ b/CordovaLib/Classes/Public/CDVViewController.m
@@ -319,10 +319,11 @@
 
     // /////////////////
     NSURL* appURL = [self appUrl];
+    __weak __typeof__(self) weakSelf = self;
 
     [CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
-        _userAgentLockToken = lockToken;
-        [CDVUserAgentUtil setUserAgent:self.userAgent lockToken:lockToken];
+        // Fix the memory leak caused by the strong reference.
+        [weakSelf setLockToken:lockToken];
         if (appURL) {
             NSURLRequest* appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
             [self.webViewEngine loadRequest:appReq];
@@ -349,6 +350,12 @@
     [self.webView setBackgroundColor:bgColor];
 }
 
+- (void)setLockToken:(NSInteger)lockToken
+{
+	_userAgentLockToken = lockToken;
+	[CDVUserAgentUtil setUserAgent:self.userAgent lockToken:lockToken];
+}
+
 -(void)viewWillAppear:(BOOL)animated
 {
     [super viewWillAppear:animated];


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org