[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

paroga at webkit.org paroga at webkit.org
Wed Dec 22 13:36:45 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit d5089557f946c4e724e5f93459f517b8d66c9744
Author: paroga at webkit.org <paroga at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Sep 21 14:35:48 2010 +0000

    2010-09-21  Patrick Gansterer  <paroga at webkit.org>
    
            Reviewed by Adam Roben.
    
            Use WTF::Vector for storing formData in ResourceHandleWin.
            https://bugs.webkit.org/show_bug.cgi?id=46180
    
            * platform/network/ResourceHandleInternal.h:
            (WebCore::ResourceHandleInternal::ResourceHandleInternal):
            * platform/network/win/ResourceHandleWin.cpp:
            (WebCore::ResourceHandle::onHandleCreated):
            (WebCore::ResourceHandle::onRequestComplete):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67953 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 5b06da3..edb4e97 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-09-21  Patrick Gansterer  <paroga at webkit.org>
+
+        Reviewed by Adam Roben.
+
+        Use WTF::Vector for storing formData in ResourceHandleWin.
+        https://bugs.webkit.org/show_bug.cgi?id=46180
+
+        * platform/network/ResourceHandleInternal.h:
+        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
+        * platform/network/win/ResourceHandleWin.cpp:
+        (WebCore::ResourceHandle::onHandleCreated):
+        (WebCore::ResourceHandle::onRequestComplete):
+
 2010-09-21  Jocelyn Turcotte  <jocelyn.turcotte at nokia.com>
 
         Reviewed by Andreas Kling.
diff --git a/WebCore/platform/network/ResourceHandleInternal.h b/WebCore/platform/network/ResourceHandleInternal.h
index 7b6db90..1f2cff9 100644
--- a/WebCore/platform/network/ResourceHandleInternal.h
+++ b/WebCore/platform/network/ResourceHandleInternal.h
@@ -96,9 +96,7 @@ namespace WebCore {
             , m_secondaryHandle(0)
             , m_jobId(0)
             , m_threadId(0)
-            , m_writing(false)
-            , m_formDataString(0)
-            , m_formDataLength(0)
+            , m_sentEndRequest(false)
             , m_bytesRemainingToWrite(0)
             , m_hasReceivedResponse(false)
             , m_resend(false)
@@ -171,9 +169,8 @@ namespace WebCore {
         HINTERNET m_secondaryHandle;
         unsigned m_jobId;
         DWORD m_threadId;
-        bool m_writing;
-        char* m_formDataString;
-        int m_formDataLength;
+        bool m_sentEndRequest;
+        Vector<char> m_formData;
         int m_bytesRemainingToWrite;
         String m_postReferrer;
         bool m_hasReceivedResponse;
diff --git a/WebCore/platform/network/win/ResourceHandleWin.cpp b/WebCore/platform/network/win/ResourceHandleWin.cpp
index 832a8e2..67c54bc 100644
--- a/WebCore/platform/network/win/ResourceHandleWin.cpp
+++ b/WebCore/platform/network/win/ResourceHandleWin.cpp
@@ -235,19 +235,17 @@ void ResourceHandle::onHandleCreated(LPARAM lParam)
         headers += d->m_postReferrer;
         headers += "\n";
         const CString& headersLatin1 = headers.latin1();
-        String formData = request().httpBody()->flattenToString();
+        if (firstRequest().httpBody()) {
+            firstRequest().httpBody()->flatten(d->m_formData);
+            d->m_bytesRemainingToWrite = d->m_formData.size();
+        }
         INTERNET_BUFFERSA buffers;
         memset(&buffers, 0, sizeof(buffers));
         buffers.dwStructSize = sizeof(INTERNET_BUFFERSA);
         buffers.lpcszHeader = headersLatin1.data();
         buffers.dwHeadersLength = headers.length();
-        buffers.dwBufferTotal = formData.length();
+        buffers.dwBufferTotal = d->m_bytesRemainingToWrite;
         
-        d->m_bytesRemainingToWrite = formData.length();
-        d->m_formDataString = (char*)malloc(formData.length());
-        d->m_formDataLength = formData.length();
-        strncpy(d->m_formDataString, formData.latin1().data(), formData.length());
-        d->m_writing = true;
         HttpSendRequestExA(d->m_secondaryHandle, &buffers, 0, 0, (DWORD_PTR)d->m_jobId);
         // FIXME: add proper error handling
     }
@@ -266,20 +264,21 @@ void ResourceHandle::onRequestRedirected(LPARAM lParam)
 
 void ResourceHandle::onRequestComplete(LPARAM lParam)
 {
-    if (d->m_writing) {
+    if (d->m_bytesRemainingToWrite) {
         DWORD bytesWritten;
-        InternetWriteFile(d->m_secondaryHandle,
-                          d->m_formDataString + (d->m_formDataLength - d->m_bytesRemainingToWrite),
+        InternetWriteFile(d->m_requestHandle,
+                          d->m_formData.data() + (d->m_formData.size() - d->m_bytesRemainingToWrite),
                           d->m_bytesRemainingToWrite,
                           &bytesWritten);
         d->m_bytesRemainingToWrite -= bytesWritten;
-        if (!d->m_bytesRemainingToWrite) {
-            // End the request.
-            d->m_writing = false;
-            HttpEndRequest(d->m_secondaryHandle, 0, 0, (DWORD_PTR)d->m_jobId);
-            free(d->m_formDataString);
-            d->m_formDataString = 0;
-        }
+        if (d->m_bytesRemainingToWrite)
+            return;
+        d->m_formData.clear();
+    }
+
+    if (!d->m_sentEndRequest) {
+        HttpEndRequestW(d->m_requestHandle, 0, 0, reinterpret_cast<DWORD_PTR>(this));
+        d->m_sentEndRequest = true;
         return;
     }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list