Jacek Caban : win32u: Move ThreadDetach driver call from user32.
Alexandre Julliard
julliard at winehq.org
Tue Feb 15 16:07:20 CST 2022
Module: wine
Branch: master
Commit: 9f6c004bb0426a502862c8bfbefe34c596a5483b
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9f6c004bb0426a502862c8bfbefe34c596a5483b
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Feb 15 13:16:12 2022 +0100
win32u: Move ThreadDetach driver call from user32.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/driver.c | 7 +------
dlls/user32/user_main.c | 1 -
dlls/win32u/driver.c | 2 ++
dlls/win32u/sysparams.c | 2 ++
4 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index 6dbc07d318a..7e9f63ad1c7 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -266,10 +266,6 @@ static void CDECL nulldrv_WindowPosChanged( HWND hwnd, HWND insert_after, UINT s
{
}
-static void CDECL nulldrv_ThreadDetach( void )
-{
-}
-
/**********************************************************************
* Lazy loading user driver
@@ -398,7 +394,7 @@ static struct user_driver_funcs lazy_load_driver =
/* vulkan support */
NULL,
/* thread management */
- nulldrv_ThreadDetach
+ NULL
};
void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version )
@@ -445,7 +441,6 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v
SET_USER_FUNC(WindowMessage);
SET_USER_FUNC(WindowPosChanging);
SET_USER_FUNC(WindowPosChanged);
- SET_USER_FUNC(ThreadDetach);
#undef SET_USER_FUNC
prev = InterlockedCompareExchangePointer( (void **)&USER_Driver, driver, &lazy_load_driver );
diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c
index 939271aeb17..91c466aff11 100644
--- a/dlls/user32/user_main.c
+++ b/dlls/user32/user_main.c
@@ -254,7 +254,6 @@ static void thread_detach(void)
exiting_thread_id = GetCurrentThreadId();
WDML_NotifyThreadDetach();
- USER_Driver->pThreadDetach();
NtUserCallNoParam( NtUserThreadDetach );
destroy_thread_windows();
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c
index e332a03b0db..b3a3e70f83f 100644
--- a/dlls/win32u/driver.c
+++ b/dlls/win32u/driver.c
@@ -1070,6 +1070,8 @@ static const struct user_driver_funcs lazy_load_driver =
.pSystemParametersInfo = nulldrv_SystemParametersInfo,
/* vulkan support */
.pwine_get_vulkan_driver = loaderdrv_wine_get_vulkan_driver,
+ /* thread management */
+ .pThreadDetach = nulldrv_ThreadDetach,
};
const struct user_driver_funcs *user_driver = &lazy_load_driver;
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c
index 7aee5eae0b9..93fda23a31e 100644
--- a/dlls/win32u/sysparams.c
+++ b/dlls/win32u/sysparams.c
@@ -4488,6 +4488,8 @@ static void thread_detach(void)
{
struct user_thread_info *thread_info = get_user_thread_info();
+ user_driver->pThreadDetach();
+
free( thread_info->key_state );
thread_info->key_state = 0;
}
More information about the wine-cvs
mailing list