Module: wine Branch: master Commit: ae430f93239ce13ff73e63bf966fe011c2642bdc URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae430f93239ce13ff73e63bf96...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Oct 29 18:57:11 2006 +0100
wininet: Store handle in WININETHANDLEHEADER and use it in SendCallback.
---
dlls/wininet/internet.c | 19 +++---------------- dlls/wininet/internet.h | 1 + dlls/wininet/utility.c | 13 ++----------- 3 files changed, 6 insertions(+), 27 deletions(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c index 4f2256a..2e653b9 100644 --- a/dlls/wininet/internet.c +++ b/dlls/wininet/internet.c @@ -151,26 +151,13 @@ HINTERNET WININET_AllocHandle( LPWININET end: LeaveCriticalSection( &WININET_cs );
- return (HINTERNET) (handle+1); + return info->hInternet = (HINTERNET) (handle+1); }
HINTERNET WININET_FindHandle( LPWININETHANDLEHEADER info ) { - UINT i, handle = 0; - - EnterCriticalSection( &WININET_cs ); - for( i=0; i<WININET_dwMaxHandles; i++ ) - { - if( info == WININET_Handles[i] ) - { - WININET_AddRef( info ); - handle = i+1; - break; - } - } - LeaveCriticalSection( &WININET_cs ); - - return (HINTERNET) handle; + WININET_AddRef(info); + return info->hInternet; }
LPWININETHANDLEHEADER WININET_AddRef( LPWININETHANDLEHEADER info ) diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h index c57cef7..43b1c85 100644 --- a/dlls/wininet/internet.h +++ b/dlls/wininet/internet.h @@ -139,6 +139,7 @@ typedef void (*WININET_object_destructor struct _WININETHANDLEHEADER { WH_TYPE htype; + HINTERNET hInternet; DWORD dwFlags; DWORD dwContext; DWORD dwError; diff --git a/dlls/wininet/utility.c b/dlls/wininet/utility.c index 7e3ca0f..4f969f8 100644 --- a/dlls/wininet/utility.c +++ b/dlls/wininet/utility.c @@ -214,7 +214,6 @@ VOID INTERNET_SendCallback(LPWININETHAND DWORD dwInternetStatus, LPVOID lpvStatusInfo, DWORD dwStatusInfoLength) { - HINTERNET hHttpSession; LPVOID lpvNewInfo = NULL;
if( !hdr->lpfnStatusCB ) @@ -225,12 +224,6 @@ VOID INTERNET_SendCallback(LPWININETHAND if( !dwContext ) return;
- hHttpSession = WININET_FindHandle( hdr ); - if( !hHttpSession ) { - TRACE(" Could not convert header '%p' into a handle !\n", hdr); - return; - } - lpvNewInfo = lpvStatusInfo; if(hdr->dwInternalFlags & INET_CALLBACKW) { switch(dwInternetStatus) { @@ -249,18 +242,16 @@ VOID INTERNET_SendCallback(LPWININETHAND }
TRACE(" callback(%p) (%p (%p), %08x, %d (%s), %p, %d)\n", - hdr->lpfnStatusCB, hHttpSession, hdr, dwContext, dwInternetStatus, get_callback_name(dwInternetStatus), + hdr->lpfnStatusCB, hdr->hInternet, hdr, dwContext, dwInternetStatus, get_callback_name(dwInternetStatus), lpvNewInfo, dwStatusInfoLength);
- hdr->lpfnStatusCB(hHttpSession, dwContext, dwInternetStatus, + hdr->lpfnStatusCB(hdr->hInternet, dwContext, dwInternetStatus, lpvNewInfo, dwStatusInfoLength);
TRACE(" end callback().\n");
if(lpvNewInfo != lpvStatusInfo) HeapFree(GetProcessHeap(), 0, lpvNewInfo); - - WININET_Release( hdr ); }