From f05b5b7e7e5f7c20774feae2539aeee61ed55195 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 30 Jan 2013 11:38:39 +0100 Subject: [PATCH] wininet: Moved WORKREQ_FTPFINDFIRSTFILEW out of WORKREQUEST. --- dlls/wininet/ftp.c | 36 ++++++++++++++++++++---------------- dlls/wininet/internet.h | 9 --------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c index 0adce0aef2f..3d05a4263b2 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 4dd0abecc46..7e49e9d9c89 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;