Changeset 67953 in webkit


Ignore:
Timestamp:
Sep 21, 2010 7:35:48 AM (14 years ago)
Author:
Patrick Gansterer
Message:

2010-09-21 Patrick Gansterer <Patrick Gansterer>

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):
Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r67951 r67953  
     12010-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
    1142010-09-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
    215
  • trunk/WebCore/platform/network/ResourceHandleInternal.h

    r67291 r67953  
    9797            , m_jobId(0)
    9898            , m_threadId(0)
    99             , m_writing(false)
    100             , m_formDataString(0)
    101             , m_formDataLength(0)
     99            , m_sentEndRequest(false)
    102100            , m_bytesRemainingToWrite(0)
    103101            , m_hasReceivedResponse(false)
     
    172170        unsigned m_jobId;
    173171        DWORD m_threadId;
    174         bool m_writing;
    175         char* m_formDataString;
    176         int m_formDataLength;
     172        bool m_sentEndRequest;
     173        Vector<char> m_formData;
    177174        int m_bytesRemainingToWrite;
    178175        String m_postReferrer;
  • trunk/WebCore/platform/network/win/ResourceHandleWin.cpp

    r67553 r67953  
    236236        headers += "\n";
    237237        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        }
    239242        INTERNET_BUFFERSA buffers;
    240243        memset(&buffers, 0, sizeof(buffers));
     
    242245        buffers.lpcszHeader = headersLatin1.data();
    243246        buffers.dwHeadersLength = headers.length();
    244         buffers.dwBufferTotal = formData.length();
     247        buffers.dwBufferTotal = d->m_bytesRemainingToWrite;
    245248       
    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;
    251249        HttpSendRequestExA(d->m_secondaryHandle, &buffers, 0, 0, (DWORD_PTR)d->m_jobId);
    252250        // FIXME: add proper error handling
     
    267265void ResourceHandle::onRequestComplete(LPARAM lParam)
    268266{
    269     if (d->m_writing) {
     267    if (d->m_bytesRemainingToWrite) {
    270268        DWORD bytesWritten;
    271         InternetWriteFile(d->m_secondaryHandle,
    272                           d->m_formDataString + (d->m_formDataLength - d->m_bytesRemainingToWrite),
     269        InternetWriteFile(d->m_requestHandle,
     270                          d->m_formData.data() + (d->m_formData.size() - d->m_bytesRemainingToWrite),
    273271                          d->m_bytesRemainingToWrite,
    274272                          &bytesWritten);
    275273        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;
    283282        return;
    284283    }
Note: See TracChangeset for help on using the changeset viewer.