Jacek Caban : wininet:
Store handle in WININETHANDLEHEADER and use it in SendCallback.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Oct 30 05:22:30 CST 2006
Module: wine
Branch: master
Commit: ae430f93239ce13ff73e63bf966fe011c2642bdc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae430f93239ce13ff73e63bf966fe011c2642bdc
Author: Jacek Caban <jacek at 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 );
}
More information about the wine-cvs
mailing list