Jacek Caban : wininet: Store WININETFTPSESSIONW pointer in WININETFTPFINDNEXTW.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Oct 30 05:22:28 CST 2006


Module: wine
Branch: master
Commit: 51ba292716707be61a03547e58d0cd20ae4c5488
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=51ba292716707be61a03547e58d0cd20ae4c5488

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Oct 29 18:54:29 2006 +0100

wininet: Store WININETFTPSESSIONW pointer in WININETFTPFINDNEXTW.

---

 dlls/wininet/ftp.c      |    5 +++++
 dlls/wininet/internet.c |    6 +-----
 dlls/wininet/internet.h |    1 +
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index fd3a0e8..12a6d80 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -2780,6 +2780,8 @@ static void FTP_CloseFindNextHandle(LPWI
 
     TRACE("\n");
 
+    WININET_Release(&lpwfn->lpFtpSession->hdr);
+
     for (i = 0; i < lpwfn->size; i++)
     {
         HeapFree(GetProcessHeap(), 0, lpwfn->lpafp[i].lpszName);
@@ -2858,6 +2860,9 @@ static HINTERNET FTP_ReceiveFileList(LPW
             lpwfn->size = dwSize;
             lpwfn->lpafp = lpafp;
 
+            WININET_AddRef( &lpwfs->hdr );
+            lpwfn->lpFtpSession = lpwfs;
+
             handle = WININET_AllocHandle( &lpwfn->hdr );
         }
     }
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 63e3460..ebb581e 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -74,10 +74,6 @@ #define MAX_IDLE_WORKER 1000*60*1
 #define MAX_WORKER_THREADS 10
 #define RESPONSE_TIMEOUT        30
 
-#define GET_HWININET_FROM_LPWININETFINDNEXT(lpwh) \
-(((LPWININETFTPSESSIONW)(lpwh->hdr.lpwhparent))->lpAppInfo)
-
-
 typedef struct
 {
     DWORD  dwError;
@@ -955,7 +951,7 @@ BOOL WINAPI InternetFindNextFileW(HINTER
         goto lend;
     }
 
-    hIC = GET_HWININET_FROM_LPWININETFINDNEXT(lpwh);
+    hIC = lpwh->lpFtpSession->lpAppInfo;
     if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC)
     {
         WORKREQUEST workRequest;
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h
index 54bbef3..e7af552 100644
--- a/dlls/wininet/internet.h
+++ b/dlls/wininet/internet.h
@@ -238,6 +238,7 @@ typedef struct
 typedef struct
 {
     WININETHANDLEHEADER hdr;
+    WININETFTPSESSIONW *lpFtpSession;
     DWORD index;
     DWORD size;
     LPFILEPROPERTIESW lpafp;




More information about the wine-cvs mailing list