Jacek Caban : kernel32: Import FreeConsole from kernelbase.

Alexandre Julliard julliard at winehq.org
Wed Jul 1 15:22:49 CDT 2020


Module: wine
Branch: master
Commit: 99e6bab3ed43498e71695e9f2885ae7de6209431
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=99e6bab3ed43498e71695e9f2885ae7de6209431

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Jul  1 16:27:14 2020 +0200

kernel32: Import FreeConsole from kernelbase.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/console.c     | 22 ++--------------------
 dlls/kernel32/kernel32.spec |  2 +-
 dlls/kernel32/sync.c        | 23 +----------------------
 3 files changed, 4 insertions(+), 43 deletions(-)

diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index 04b89f8f55..ba3e4b0dd8 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -425,7 +425,7 @@ static enum read_console_input_return read_console_input(HANDLE handle, PINPUT_R
     if ((fd = get_console_bare_fd(handle)) != -1)
     {
         put_console_into_raw_mode(fd);
-        if (WaitForSingleObject(GetConsoleInputWaitHandle(), 0) != WAIT_OBJECT_0)
+        if (WaitForSingleObject(handle, 0) != WAIT_OBJECT_0)
         {
             ret = bare_console_fetch_input(handle, fd, timeout);
         }
@@ -437,7 +437,7 @@ static enum read_console_input_return read_console_input(HANDLE handle, PINPUT_R
     {
         if (!VerifyConsoleIoHandle(handle)) return rci_error;
 
-        if (WaitForSingleObject(GetConsoleInputWaitHandle(), timeout) != WAIT_OBJECT_0)
+        if (WaitForSingleObject(handle, timeout) != WAIT_OBJECT_0)
             return rci_timeout;
     }
 
@@ -531,24 +531,6 @@ DWORD WINAPI GetConsoleTitleA(LPSTR title, DWORD size)
 static WCHAR*	S_EditString /* = NULL */;
 static unsigned S_EditStrPos /* = 0 */;
 
-/***********************************************************************
- *            FreeConsole (KERNEL32.@)
- */
-BOOL WINAPI FreeConsole(VOID)
-{
-    BOOL ret;
-
-    /* invalidate local copy of input event handle */
-    console_wait_event = 0;
-
-    SERVER_START_REQ(free_console)
-    {
-        ret = !wine_server_call_err( req );
-    }
-    SERVER_END_REQ;
-    return ret;
-}
-
 /******************************************************************
  *		start_console_renderer
  *
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index e7a7f162b7..c2ca098d5f 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -524,7 +524,7 @@
 @ stdcall -import FoldStringW(long wstr long ptr long)
 @ stdcall -import FormatMessageA(long ptr long long ptr long ptr)
 @ stdcall -import FormatMessageW(long ptr long long ptr long ptr)
-@ stdcall FreeConsole()
+@ stdcall -import FreeConsole()
 @ stdcall -import FreeEnvironmentStringsA(ptr)
 @ stdcall -import FreeEnvironmentStringsW(ptr)
 @ stub -i386 FreeLSCallback
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index 4032315750..b3a59a4df9 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -85,24 +85,6 @@ static BOOL get_open_object_attributes( OBJECT_ATTRIBUTES *attr, UNICODE_STRING
     return TRUE;
 }
 
-static HANDLE normalize_handle_if_console(HANDLE handle)
-{
-    if ((handle == (HANDLE)STD_INPUT_HANDLE) ||
-        (handle == (HANDLE)STD_OUTPUT_HANDLE) ||
-        (handle == (HANDLE)STD_ERROR_HANDLE))
-        handle = GetStdHandle( HandleToULong(handle) );
-
-    /* yes, even screen buffer console handles are waitable, and are
-     * handled as a handle to the console itself !!
-     */
-    if (is_console_handle(handle))
-    {
-        if (VerifyConsoleIoHandle(handle))
-            handle = GetConsoleInputWaitHandle();
-    }
-    return handle;
-}
-
 /******************************************************************************
  *           GetTickCount64       (KERNEL32.@)
  */
@@ -135,10 +117,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
 BOOL WINAPI RegisterWaitForSingleObject( HANDLE *wait, HANDLE object, WAITORTIMERCALLBACK callback,
                                          void *context, ULONG timeout, ULONG flags )
 {
-    TRACE( "%p %p %p %p %d %d\n", wait, object, callback, context, timeout, flags );
-
-    object = normalize_handle_if_console( object );
-    return set_ntstatus( RtlRegisterWait( wait, object, callback, context, timeout, flags ));
+    return (*wait = RegisterWaitForSingleObjectEx( object, callback, context, timeout, flags)) != NULL;
 }
 
 /***********************************************************************




More information about the wine-cvs mailing list