Jacek Caban : wininet: Don' t call get_avail_data multiple times in HTTP_ReceiveRequestData.
Module: wine Branch: master Commit: 376a4f7837c3f50c49ea0704524db13449f9ccbc URL: http://source.winehq.org/git/wine.git/?a=commit;h=376a4f7837c3f50c49ea070452... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Tue Feb 26 15:43:34 2013 +0100 wininet: Don't call get_avail_data multiple times in HTTP_ReceiveRequestData. --- dlls/wininet/http.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 81439ca..bbbfe97 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -2774,10 +2774,8 @@ static void HTTP_ReceiveRequestData(http_request_t *req, BOOL first_notif, DWORD mode = first_notif && req->read_size ? READMODE_NOBLOCK : READMODE_ASYNC; res = refill_read_buffer(req, mode, &read); - if(res == ERROR_SUCCESS && !first_notif) + if(res == ERROR_SUCCESS) avail = get_avail_data(req); - if(ret_size) - *ret_size = get_avail_data(req); LeaveCriticalSection( &req->read_section ); @@ -2786,10 +2784,17 @@ static void HTTP_ReceiveRequestData(http_request_t *req, BOOL first_notif, DWORD http_release_netconn(req, FALSE); } - if(res == ERROR_SUCCESS) - send_request_complete(req, req->session->hdr.dwInternalFlags & INET_OPENURL ? (DWORD_PTR)req->hdr.hInternet : 1, avail); - else + if(res != ERROR_SUCCESS) { send_request_complete(req, 0, res); + return; + } + + if(ret_size) + *ret_size = avail; + if(first_notif) + avail = 0; + + send_request_complete(req, req->session->hdr.dwInternalFlags & INET_OPENURL ? (DWORD_PTR)req->hdr.hInternet : 1, avail); } /* read data from the http connection (the read section must be held) */
participants (1)
-
Alexandre Julliard