Module: wine Branch: master Commit: f05b5b7e7e5f7c20774feae2539aeee61ed55195 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f05b5b7e7e5f7c20774feae253...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Jan 30 11:38:39 2013 +0100
wininet: Moved WORKREQ_FTPFINDFIRSTFILEW out of WORKREQUEST.
---
dlls/wininet/ftp.c | 38 +++++++++++++++++++++----------------- dlls/wininet/internet.h | 9 --------- 2 files changed, 21 insertions(+), 26 deletions(-)
diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c index 0adce0a..3d05a42 100644 --- a/dlls/wininet/ftp.c +++ b/dlls/wininet/ftp.c @@ -739,17 +739,23 @@ HINTERNET WINAPI FtpFindFirstFileA(HINTERNET hConnect, return ret; }
+typedef struct { + task_header_t hdr; + WCHAR *search_file; + WIN32_FIND_DATAW *find_file_data; + DWORD flags; + DWORD_PTR context; +} find_first_file_task_t;
-static void AsyncFtpFindFirstFileProc(WORKREQUEST *workRequest) +static void AsyncFtpFindFirstFileProc(task_header_t *hdr) { - struct WORKREQ_FTPFINDFIRSTFILEW const *req = &workRequest->u.FtpFindFirstFileW; - ftp_session_t *lpwfs = (ftp_session_t*) workRequest->hdr; + find_first_file_task_t *task = (find_first_file_task_t*)hdr; + ftp_session_t *session = (ftp_session_t*)task->hdr.hdr;
- TRACE("%p\n", lpwfs); + TRACE("%p\n", session);
- FTP_FtpFindFirstFileW(lpwfs, req->lpszSearchFile, - req->lpFindFileData, req->dwFlags, req->dwContext); - heap_free(req->lpszSearchFile); + FTP_FtpFindFirstFileW(session, task->search_file, task->find_file_data, task->flags, task->context); + heap_free(task->search_file); }
/*********************************************************************** @@ -785,18 +791,16 @@ HINTERNET WINAPI FtpFindFirstFileW(HINTERNET hConnect, hIC = lpwfs->lpAppInfo; if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC) { - WORKREQUEST *task; - struct WORKREQ_FTPFINDFIRSTFILEW *req; + find_first_file_t *task;
task = alloc_async_task(&lpwfs->hdr, AsyncFtpFindFirstFileProc, sizeof(*task)); - req = &task->u.FtpFindFirstFileW; - req->lpszSearchFile = (lpszSearchFile == NULL) ? NULL : heap_strdupW(lpszSearchFile); - req->lpFindFileData = lpFindFileData; - req->dwFlags = dwFlags; - req->dwContext= dwContext; + task->search_file = heap_strdupW(lpszSearchFile); + task->find_file_data = lpFindFileData; + task->flags = dwFlags; + task->context = dwContext;
- INTERNET_AsyncCall(task); - r = NULL; + INTERNET_AsyncCall(&task->hdr); + r = NULL; } else { diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h index 4dd0abe..7e49e9d 100644 --- a/dlls/wininet/internet.h +++ b/dlls/wininet/internet.h @@ -355,14 +355,6 @@ typedef struct } http_request_t;
-struct WORKREQ_FTPFINDFIRSTFILEW -{ - LPWSTR lpszSearchFile; - LPWIN32_FIND_DATAW lpFindFileData; - DWORD dwFlags; - DWORD_PTR dwContext; -}; - struct WORKREQ_FTPOPENFILEW { LPWSTR lpszFilename; @@ -396,7 +388,6 @@ typedef struct WORKREQ object_header_t *hdr;
union { - struct WORKREQ_FTPFINDFIRSTFILEW FtpFindFirstFileW; struct WORKREQ_FTPOPENFILEW FtpOpenFileW; struct WORKREQ_FTPDELETEFILEW FtpDeleteFileW; struct WORKREQ_FTPRENAMEFILEW FtpRenameFileW;