Module: wine Branch: master Commit: 376a4f7837c3f50c49ea0704524db13449f9ccbc URL: http://source.winehq.org/git/wine.git/?a=commit;h=376a4f7837c3f50c49ea070452...
Author: Jacek Caban jacek@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) */