Changeset 67953 in webkit
- Timestamp:
- Sep 21, 2010 7:35:48 AM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r67951 r67953 1 2010-09-21 Patrick Gansterer <paroga@webkit.org> 2 3 Reviewed by Adam Roben. 4 5 Use WTF::Vector for storing formData in ResourceHandleWin. 6 https://bugs.webkit.org/show_bug.cgi?id=46180 7 8 * platform/network/ResourceHandleInternal.h: 9 (WebCore::ResourceHandleInternal::ResourceHandleInternal): 10 * platform/network/win/ResourceHandleWin.cpp: 11 (WebCore::ResourceHandle::onHandleCreated): 12 (WebCore::ResourceHandle::onRequestComplete): 13 1 14 2010-09-21 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> 2 15 -
trunk/WebCore/platform/network/ResourceHandleInternal.h
r67291 r67953 97 97 , m_jobId(0) 98 98 , m_threadId(0) 99 , m_writing(false) 100 , m_formDataString(0) 101 , m_formDataLength(0) 99 , m_sentEndRequest(false) 102 100 , m_bytesRemainingToWrite(0) 103 101 , m_hasReceivedResponse(false) … … 172 170 unsigned m_jobId; 173 171 DWORD m_threadId; 174 bool m_writing; 175 char* m_formDataString; 176 int m_formDataLength; 172 bool m_sentEndRequest; 173 Vector<char> m_formData; 177 174 int m_bytesRemainingToWrite; 178 175 String m_postReferrer; -
trunk/WebCore/platform/network/win/ResourceHandleWin.cpp
r67553 r67953 236 236 headers += "\n"; 237 237 const CString& headersLatin1 = headers.latin1(); 238 String formData = request().httpBody()->flattenToString(); 238 if (firstRequest().httpBody()) { 239 firstRequest().httpBody()->flatten(d->m_formData); 240 d->m_bytesRemainingToWrite = d->m_formData.size(); 241 } 239 242 INTERNET_BUFFERSA buffers; 240 243 memset(&buffers, 0, sizeof(buffers)); … … 242 245 buffers.lpcszHeader = headersLatin1.data(); 243 246 buffers.dwHeadersLength = headers.length(); 244 buffers.dwBufferTotal = formData.length();247 buffers.dwBufferTotal = d->m_bytesRemainingToWrite; 245 248 246 d->m_bytesRemainingToWrite = formData.length();247 d->m_formDataString = (char*)malloc(formData.length());248 d->m_formDataLength = formData.length();249 strncpy(d->m_formDataString, formData.latin1().data(), formData.length());250 d->m_writing = true;251 249 HttpSendRequestExA(d->m_secondaryHandle, &buffers, 0, 0, (DWORD_PTR)d->m_jobId); 252 250 // FIXME: add proper error handling … … 267 265 void ResourceHandle::onRequestComplete(LPARAM lParam) 268 266 { 269 if (d->m_ writing) {267 if (d->m_bytesRemainingToWrite) { 270 268 DWORD bytesWritten; 271 InternetWriteFile(d->m_ secondaryHandle,272 d->m_formData String + (d->m_formDataLength- d->m_bytesRemainingToWrite),269 InternetWriteFile(d->m_requestHandle, 270 d->m_formData.data() + (d->m_formData.size() - d->m_bytesRemainingToWrite), 273 271 d->m_bytesRemainingToWrite, 274 272 &bytesWritten); 275 273 d->m_bytesRemainingToWrite -= bytesWritten; 276 if (!d->m_bytesRemainingToWrite) { 277 // End the request. 278 d->m_writing = false; 279 HttpEndRequest(d->m_secondaryHandle, 0, 0, (DWORD_PTR)d->m_jobId); 280 free(d->m_formDataString); 281 d->m_formDataString = 0; 282 } 274 if (d->m_bytesRemainingToWrite) 275 return; 276 d->m_formData.clear(); 277 } 278 279 if (!d->m_sentEndRequest) { 280 HttpEndRequestW(d->m_requestHandle, 0, 0, reinterpret_cast<DWORD_PTR>(this)); 281 d->m_sentEndRequest = true; 283 282 return; 284 283 }
Note: See TracChangeset
for help on using the changeset viewer.