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