Jacek Caban : wininet: Moved WORKREQ_SENDCALLBACK out of WORKREQUEST.

Alexandre Julliard julliard at winehq.org
Tue Jan 29 12:35:42 CST 2013


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

Author: Jacek Caban <jacek at 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,




More information about the wine-cvs mailing list