[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