Updated Branches:
  refs/heads/master de45f5d2a -> 533c707ee

[ios] Attempt to fix a crash in iOS XHR bridge mode.

Relevant issue: https://issues.apache.org/jira/browse/CB-1404


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/commit/533c707e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/533c707e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/533c707e

Branch: refs/heads/master
Commit: 533c707ee48f1191fde2d92376b1a5cc45e4a72a
Parents: de45f5d
Author: Andrew Grieve <agri...@chromium.org>
Authored: Tue Sep 25 13:08:53 2012 -0400
Committer: Andrew Grieve <agri...@chromium.org>
Committed: Tue Sep 25 13:08:53 2012 -0400

----------------------------------------------------------------------
 lib/ios/exec.js |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/533c707e/lib/ios/exec.js
----------------------------------------------------------------------
diff --git a/lib/ios/exec.js b/lib/ios/exec.js
index 1759ecc..6635c0b 100644
--- a/lib/ios/exec.js
+++ b/lib/ios/exec.js
@@ -115,6 +115,14 @@ function iOSExec() {
     // which case the command will be picked up without notification.
     if (cordova.commandQueue.length == 1 && !cordova.commandQueueFlushing) {
         if (bridgeMode) {
+            // Re-using the XHR improves exec() performance by about 10%.
+            // It is possible for a native 
stringByEvaluatingJavascriptFromString call
+            // to cause us to reach this point when a request is already in 
progress,
+            // so we check the readyState to guard agains re-using an 
inprogress XHR.
+            // Refer to CB-1404.
+            if (execXhr && execXhr.readyState != 4) {
+                execXhr = null;
+            }
             execXhr = execXhr || new XMLHttpRequest();
             // Changing this to a GET will make the XHR reach the URIProtocol 
on 4.2.
             // For some reason it still doesn't work though...

Reply via email to