Alexandre Julliard : ntdll: Convert the handles to server handles in NTDLL_wait_for_multiple_objects.

Alexandre Julliard julliard at winehq.org
Fri Dec 12 07:04:07 CST 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Dec 11 20:38:21 2008 +0100

ntdll: Convert the handles to server handles in NTDLL_wait_for_multiple_objects.

---

 dlls/ntdll/sync.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index 0cfe893..bad6eab 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -1037,14 +1037,16 @@ NTSTATUS NTDLL_wait_for_multiple_objects( UINT count, const HANDLE *handles, UIN
                                           const LARGE_INTEGER *timeout, HANDLE signal_object )
 {
     NTSTATUS ret;
-    int cookie;
+    int i, cookie;
     BOOL user_apc = FALSE;
+    obj_handle_t obj_handles[MAXIMUM_WAIT_OBJECTS];
     obj_handle_t apc_handle = 0;
     apc_call_t call;
     apc_result_t result;
     timeout_t abs_timeout = timeout ? timeout->QuadPart : TIMEOUT_INFINITE;
 
     memset( &result, 0, sizeof(result) );
+    for (i = 0; i < count; i++) obj_handles[i] = wine_server_obj_handle( handles[i] );
 
     for (;;)
     {
@@ -1056,7 +1058,7 @@ NTSTATUS NTDLL_wait_for_multiple_objects( UINT count, const HANDLE *handles, UIN
             req->prev_apc = apc_handle;
             req->timeout  = abs_timeout;
             wine_server_add_data( req, &result, sizeof(result) );
-            wine_server_add_data( req, handles, count * sizeof(HANDLE) );
+            wine_server_add_data( req, obj_handles, count * sizeof(*obj_handles) );
             ret = wine_server_call( req );
             abs_timeout = reply->timeout;
             apc_handle  = reply->apc_handle;




More information about the wine-cvs mailing list