win32u: Move ThreadDetach driver call from user32.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2022-02-15 13:16:12 +01:00 committed by Alexandre Julliard
parent d6ae45b530
commit 9f6c004bb0
4 changed files with 5 additions and 7 deletions

View File

@ -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 );

View File

@ -254,7 +254,6 @@ static void thread_detach(void)
exiting_thread_id = GetCurrentThreadId();
WDML_NotifyThreadDetach();
USER_Driver->pThreadDetach();
NtUserCallNoParam( NtUserThreadDetach );
destroy_thread_windows();

View File

@ -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;

View File

@ -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;
}