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