Jacek Caban : mshtml: Call on_start_nsrequest synchronously in async_stop_request is no data was read before .

Alexandre Julliard julliard at winehq.org
Thu Jun 16 14:28:51 CDT 2011


Module: wine
Branch: master
Commit: 17e6d75ed41bf2207c4206adf63ba835d1e06609
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=17e6d75ed41bf2207c4206adf63ba835d1e06609

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jun 16 16:42:12 2011 +0200

mshtml: Call on_start_nsrequest synchronously in async_stop_request is no data was read before.

---

 dlls/mshtml/navigate.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 2d45f09..6d84d3f 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -689,6 +689,8 @@ HRESULT start_binding(HTMLWindow *window, HTMLDocumentNode *doc, BSCallback *bsc
     IStream *str = NULL;
     HRESULT hres;
 
+    TRACE("(%p %p %p %p)\n", window, doc, bscallback, bctx);
+
     bscallback->doc = doc;
 
     /* NOTE: IE7 calls IsSystemMoniker here*/
@@ -1001,11 +1003,6 @@ static void on_stop_nsrequest(nsChannelBSC *This, HRESULT result)
         request_result = NS_ERROR_FAILURE;
     }
 
-    if(!This->bsc.readed && SUCCEEDED(result)) {
-        TRACE("No data read! Calling OnStartRequest\n");
-        on_start_nsrequest(This);
-    }
-
     if(This->nslistener) {
         nsres = nsIStreamListener_OnStopRequest(This->nslistener,
                  (nsIRequest*)&This->nschannel->nsIHttpChannel_iface, This->nscontext,
@@ -1270,6 +1267,11 @@ static HRESULT async_stop_request(nsChannelBSC *This)
 {
     stop_request_task_t *task;
 
+    if(!This->bsc.readed) {
+        TRACE("No data read, calling OnStartRequest\n");
+        on_start_nsrequest(This);
+    }
+
     task = heap_alloc(sizeof(*task));
     if(!task)
         return E_OUTOFMEMORY;




More information about the wine-cvs mailing list