Jacek Caban : mshtml: Fix handling offset in BSCallback.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Aug 4 06:29:59 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 9def0ca2a6cddf9b3dfd5ccc4422b41a3fead949
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=9def0ca2a6cddf9b3dfd5ccc4422b41a3fead949

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Aug  3 22:00:30 2006 +0200

mshtml: Fix handling offset in BSCallback.

---

 dlls/mshtml/mshtml_private.h |    1 +
 dlls/mshtml/navigate.c       |   26 ++++++++++++++------------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index e93658a..79ac281 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -160,6 +160,7 @@ struct BSCallback {
     LPWSTR headers;
     HGLOBAL post_data;
     ULONG post_data_len;
+    ULONG readed;
 
     nsChannel *nschannel;
     nsIStreamListener *nslistener;
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index ecd8333..2b0b194 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -365,19 +365,20 @@ static HRESULT WINAPI BindStatusCallback
 
         do {
             hres = IStream_Read(pstgmed->u.pstm, This->nsstream->buf, sizeof(This->nsstream->buf),
-                                &This->nsstream->buf_size);
-            if(This->nsstream->buf_size) {
-                nsres = nsIStreamListener_OnDataAvailable(This->nslistener,
-                        (nsIRequest*)NSCHANNEL(This->nschannel), This->nscontext,
-                        NSINSTREAM(This->nsstream), 0 /* FIXME */, dwSize);
-                if(NS_FAILED(nsres))
-                    FIXME("OnDataAvailable failed: %08lx\n", nsres);
-
-                if(This->nsstream->buf_size)
-                    FIXME("buffer is not empty!\n");
-            }else {
+                         &This->nsstream->buf_size);
+            if(!This->nsstream->buf_size)
                 break;
-            }
+
+            nsres = nsIStreamListener_OnDataAvailable(This->nslistener,
+                    (nsIRequest*)NSCHANNEL(This->nschannel), This->nscontext,
+                    NSINSTREAM(This->nsstream), This->readed, This->nsstream->buf_size);
+            if(NS_FAILED(nsres))
+                FIXME("OnDataAvailable failed: %08lx\n", nsres);
+
+            if(This->nsstream->buf_size)
+                FIXME("buffer is not empty!\n");
+
+            This->readed += This->nsstream->buf_size;
         }while(hres == S_OK);
     }
 
@@ -575,6 +576,7 @@ BSCallback *create_bscallback(HTMLDocume
     ret->post_data = NULL;
     ret->headers = NULL;
     ret->post_data_len = 0;
+    ret->readed = 0;
     ret->nschannel = NULL;
     ret->nslistener = NULL;
     ret->nscontext = NULL;




More information about the wine-cvs mailing list