Jacek Caban : wininet: Moved WORKREQ_FTPGETFILEW out of WORKREQUEST.

Alexandre Julliard julliard at winehq.org
Wed Jan 30 13:43:22 CST 2013


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Jan 30 11:38:12 2013 +0100

wininet: Moved WORKREQ_FTPGETFILEW out of WORKREQUEST.

---

 dlls/wininet/ftp.c      |   44 +++++++++++++++++++++++++-------------------
 dlls/wininet/internet.h |   11 -----------
 2 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index 599b38e..6694edb 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -1563,19 +1563,27 @@ BOOL WINAPI FtpGetFileA(HINTERNET hInternet, LPCSTR lpszRemoteFile, LPCSTR lpszN
     return ret;
 }
 
+typedef struct {
+    task_header_t hdr;
+    WCHAR *remote_file;
+    WCHAR *new_file;
+    BOOL fail_if_exists;
+    DWORD local_attr;
+    DWORD flags;
+    DWORD_PTR context;
+} get_file_task_t;
 
-static void AsyncFtpGetFileProc(WORKREQUEST *workRequest)
+static void AsyncFtpGetFileProc(task_header_t *hdr)
 {
-    struct WORKREQ_FTPGETFILEW const *req = &workRequest->u.FtpGetFileW;
-    ftp_session_t *lpwfs = (ftp_session_t*) workRequest->hdr;
+    get_file_task_t *task = (get_file_task_t*)hdr;
+    ftp_session_t *session = (ftp_session_t*)task->hdr.hdr;
 
-    TRACE("%p\n", lpwfs);
+    TRACE("%p\n", session);
 
-    FTP_FtpGetFileW(lpwfs, req->lpszRemoteFile,
-             req->lpszNewFile, req->fFailIfExists,
-             req->dwLocalFlagsAttribute, req->dwFlags, req->dwContext);
-    heap_free(req->lpszRemoteFile);
-    heap_free(req->lpszNewFile);
+    FTP_FtpGetFileW(session, task->remote_file, task->new_file, task->fail_if_exists,
+             task->local_attr, task->flags, task->context);
+    heap_free(task->remote_file);
+    heap_free(task->new_file);
 }
 
 
@@ -1631,19 +1639,17 @@ BOOL WINAPI FtpGetFileW(HINTERNET hInternet, LPCWSTR lpszRemoteFile, LPCWSTR lps
     hIC = lpwfs->lpAppInfo;
     if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC)
     {
-        WORKREQUEST *task;
-        struct WORKREQ_FTPGETFILEW *req;
+        get_file_task_t *task;
 
         task = alloc_async_task(&lpwfs->hdr, AsyncFtpGetFileProc, sizeof(*task));
-        req = &task->u.FtpGetFileW;
-        req->lpszRemoteFile = heap_strdupW(lpszRemoteFile);
-        req->lpszNewFile = heap_strdupW(lpszNewFile);
-	req->dwLocalFlagsAttribute = dwLocalFlagsAttribute;
-	req->fFailIfExists = fFailIfExists;
-	req->dwFlags = dwInternetFlags;
-	req->dwContext = dwContext;
+        task->remote_file = heap_strdupW(lpszRemoteFile);
+        task->new_file = heap_strdupW(lpszNewFile);
+        task->local_attr = dwLocalFlagsAttribute;
+        task->fail_if_exists = fFailIfExists;
+        task->flags = dwInternetFlags;
+        task->context = dwContext;
 
-	r = res_to_le(INTERNET_AsyncCall(task));
+        r = res_to_le(INTERNET_AsyncCall(&task->hdr));
     }
     else
     {
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h
index 382cae9..628f0c0 100644
--- a/dlls/wininet/internet.h
+++ b/dlls/wininet/internet.h
@@ -377,16 +377,6 @@ struct WORKREQ_FTPOPENFILEW
     DWORD_PTR dwContext;
 };
 
-struct WORKREQ_FTPGETFILEW
-{
-    LPWSTR lpszRemoteFile;
-    LPWSTR lpszNewFile;
-    BOOL   fFailIfExists;
-    DWORD  dwLocalFlagsAttribute;
-    DWORD  dwFlags;
-    DWORD_PTR dwContext;
-};
-
 struct WORKREQ_FTPDELETEFILEW
 {
     LPWSTR lpszFilename;
@@ -415,7 +405,6 @@ typedef struct WORKREQ
         struct WORKREQ_FTPFINDFIRSTFILEW        FtpFindFirstFileW;
         struct WORKREQ_FTPGETCURRENTDIRECTORYW  FtpGetCurrentDirectoryW;
         struct WORKREQ_FTPOPENFILEW             FtpOpenFileW;
-        struct WORKREQ_FTPGETFILEW              FtpGetFileW;
         struct WORKREQ_FTPDELETEFILEW           FtpDeleteFileW;
         struct WORKREQ_FTPRENAMEFILEW           FtpRenameFileW;
         struct WORKREQ_FTPFINDNEXTW             FtpFindNextW;




More information about the wine-cvs mailing list