Module: wine Branch: master Commit: 195ea90f3bd55304c5f1c2cd69a1861adab41acf URL: http://source.winehq.org/git/wine.git/?a=commit;h=195ea90f3bd55304c5f1c2cd69...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jan 29 12:04:28 2013 +0100
wininet: Moved WORKREQ_SENDCALLBACK out of WORKREQUEST.
---
dlls/wininet/internet.h | 9 --------- dlls/wininet/utility.c | 46 +++++++++++++++++++++++++--------------------- 2 files changed, 25 insertions(+), 30 deletions(-)
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h index c61caf2..b1a7cfe 100644 --- a/dlls/wininet/internet.h +++ b/dlls/wininet/internet.h @@ -427,14 +427,6 @@ struct WORKREQ_FTPFINDNEXTW LPWIN32_FIND_DATAW lpFindFileData; };
-struct WORKREQ_SENDCALLBACK -{ - DWORD_PTR dwContext; - DWORD dwInternetStatus; - LPVOID lpvStatusInfo; - DWORD dwStatusInfoLength; -}; - typedef struct WORKREQ task_header_t; typedef void (*async_task_proc_t)(task_header_t*);
@@ -455,7 +447,6 @@ typedef struct WORKREQ struct WORKREQ_FTPREMOVEDIRECTORYW FtpRemoveDirectoryW; struct WORKREQ_FTPRENAMEFILEW FtpRenameFileW; struct WORKREQ_FTPFINDNEXTW FtpFindNextW; - struct WORKREQ_SENDCALLBACK SendCallback; } u; } WORKREQUEST, *LPWORKREQUEST;
diff --git a/dlls/wininet/utility.c b/dlls/wininet/utility.c index c6b75fd..8879b8d 100644 --- a/dlls/wininet/utility.c +++ b/dlls/wininet/utility.c @@ -356,18 +356,24 @@ VOID INTERNET_SendCallback(object_header_t *hdr, DWORD_PTR dwContext, heap_free(lpvNewInfo); }
-static void SendAsyncCallbackProc(WORKREQUEST *workRequest) +typedef struct { + task_header_t hdr; + DWORD_PTR context; + DWORD status; + LPVOID status_info; + DWORD status_info_len; +} send_callback_task_t; + +static void SendAsyncCallbackProc(task_header_t *hdr) { - struct WORKREQ_SENDCALLBACK const *req = &workRequest->u.SendCallback; + send_callback_task_t *task = (send_callback_task_t*)hdr;
- TRACE("%p\n", workRequest->hdr); + TRACE("%p\n", task->hdr.hdr);
- INTERNET_SendCallback(workRequest->hdr, - req->dwContext, req->dwInternetStatus, req->lpvStatusInfo, - req->dwStatusInfoLength); + INTERNET_SendCallback(task->hdr.hdr, task->context, task->status, task->status_info, task->status_info_len);
/* And frees the copy of the status info */ - heap_free(req->lpvStatusInfo); + heap_free(task->status_info); }
void SendAsyncCallback(object_header_t *hdr, DWORD_PTR dwContext, @@ -385,24 +391,22 @@ void SendAsyncCallback(object_header_t *hdr, DWORD_PTR dwContext,
if (hdr->dwFlags & INTERNET_FLAG_ASYNC) { - WORKREQUEST *task; - struct WORKREQ_SENDCALLBACK *req; - void *lpvStatusInfo_copy = lpvStatusInfo; + send_callback_task_t *task; + void *lpvStatusInfo_copy = lpvStatusInfo;
- if (lpvStatusInfo) - { - lpvStatusInfo_copy = heap_alloc(dwStatusInfoLength); - memcpy(lpvStatusInfo_copy, lpvStatusInfo, dwStatusInfoLength); - } + if (lpvStatusInfo) + { + lpvStatusInfo_copy = heap_alloc(dwStatusInfoLength); + memcpy(lpvStatusInfo_copy, lpvStatusInfo, dwStatusInfoLength); + }
task = alloc_async_task(hdr, SendAsyncCallbackProc, sizeof(*task)); - req = &task->u.SendCallback; - req->dwContext = dwContext; - req->dwInternetStatus = dwInternetStatus; - req->lpvStatusInfo = lpvStatusInfo_copy; - req->dwStatusInfoLength = dwStatusInfoLength; + task->context = dwContext; + task->status = dwInternetStatus; + task->status_info = lpvStatusInfo_copy; + task->status_info_len = dwStatusInfoLength; - INTERNET_AsyncCall(task); + INTERNET_AsyncCall(&task->hdr); } else INTERNET_SendCallback(hdr, dwContext, dwInternetStatus,