Repository: cordova-plugin-inappbrowser
Updated Branches:
  refs/heads/master 49757716f -> 8fb224443


fix async self usage


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/1bc51f93
Tree: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/1bc51f93
Diff: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/1bc51f93

Branch: refs/heads/master
Commit: 1bc51f9381ccade59dad29f7a41dd37ec2a62f32
Parents: 1912d12
Author: Jesse MacFadyen <[email protected]>
Authored: Tue Nov 17 11:50:40 2015 -0800
Committer: Jesse MacFadyen <[email protected]>
Committed: Tue Nov 17 11:50:40 2015 -0800

----------------------------------------------------------------------
 src/ios/CDVInAppBrowser.m | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/blob/1bc51f93/src/ios/CDVInAppBrowser.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVInAppBrowser.m b/src/ios/CDVInAppBrowser.m
index 1e64a30..9549e73 100644
--- a/src/ios/CDVInAppBrowser.m
+++ b/src/ios/CDVInAppBrowser.m
@@ -214,14 +214,17 @@
 
     _previousStatusBarStyle = [UIApplication sharedApplication].statusBarStyle;
 
-    CDVInAppBrowserNavigationController* nav = 
[[CDVInAppBrowserNavigationController alloc]
+    __block CDVInAppBrowserNavigationController* nav = 
[[CDVInAppBrowserNavigationController alloc]
                                    
initWithRootViewController:self.inAppBrowserViewController];
     nav.orientationDelegate = self.inAppBrowserViewController;
     nav.navigationBarHidden = YES;
+
+    __weak CDVInAppBrowser* weakSelf = self;
+
     // Run later to avoid the "took a long time" log message.
     dispatch_async(dispatch_get_main_queue(), ^{
-        if (self.inAppBrowserViewController != nil) {
-            [self.viewController presentViewController:nav animated:YES 
completion:nil];
+        if (weakSelf.inAppBrowserViewController != nil) {
+            [weakSelf.viewController presentViewController:nav animated:YES 
completion:nil];
         }
     });
 }
@@ -755,12 +758,14 @@
         [self.navigationDelegate browserExit];
     }
 
+    __weak UIViewController* weakSelf = self;
+
     // Run later to avoid the "took a long time" log message.
     dispatch_async(dispatch_get_main_queue(), ^{
-        if ([self respondsToSelector:@selector(presentingViewController)]) {
-            [[self presentingViewController] dismissViewControllerAnimated:YES 
completion:nil];
+        if ([weakSelf respondsToSelector:@selector(presentingViewController)]) 
{
+            [[weakSelf presentingViewController] 
dismissViewControllerAnimated:YES completion:nil];
         } else {
-            [[self parentViewController] dismissViewControllerAnimated:YES 
completion:nil];
+            [[weakSelf parentViewController] dismissViewControllerAnimated:YES 
completion:nil];
         }
     });
 }
@@ -772,10 +777,11 @@
     if (_userAgentLockToken != 0) {
         [self.webView loadRequest:request];
     } else {
+        __weak CDVInAppBrowser* weakSelf = self;
         [CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
             _userAgentLockToken = lockToken;
             [CDVUserAgentUtil setUserAgent:_userAgent lockToken:lockToken];
-            [self.webView loadRequest:request];
+            [weakSelf.webView loadRequest:request];
         }];
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to