Jacek Caban : winemac: Store driver thread data pointer in TEB.
Alexandre Julliard
julliard at winehq.org
Tue May 24 15:54:59 CDT 2022
Module: wine
Branch: master
Commit: 47e5a0bb5d8aef98557ddf65d10674e3b03877f3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=47e5a0bb5d8aef98557ddf65d10674e3b03877f3
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon May 23 20:32:11 2022 +0200
winemac: Store driver thread data pointer in TEB.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
dlls/winemac.drv/macdrv.h | 4 +---
dlls/winemac.drv/macdrv_main.c | 8 ++------
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 68ab74dc56e..04a8af81c53 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -114,13 +114,11 @@ struct macdrv_thread_data
WORD keyc2scan[128];
};
-extern DWORD thread_data_tls_index DECLSPEC_HIDDEN;
-
extern struct macdrv_thread_data *macdrv_init_thread_data(void) DECLSPEC_HIDDEN;
static inline struct macdrv_thread_data *macdrv_thread_data(void)
{
- return TlsGetValue(thread_data_tls_index);
+ return NtUserGetThreadInfo()->driver_data;
}
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index 2f05e55cb23..8c101576e99 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -46,8 +46,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(macdrv);
C_ASSERT(NUM_EVENT_TYPES <= sizeof(macdrv_event_mask) * 8);
-DWORD thread_data_tls_index = TLS_OUT_OF_INDEXES;
-
int topmost_float_inactive = TOPMOST_FLOAT_INACTIVE_NONFULLSCREEN;
int capture_displays_for_fullscreen = 0;
BOOL skip_single_buffer_flushes = FALSE;
@@ -463,8 +461,6 @@ static BOOL process_attach(void)
setup_options();
load_strings(macdrv_module);
- if ((thread_data_tls_index = TlsAlloc()) == TLS_OUT_OF_INDEXES) return FALSE;
-
macdrv_err_on = ERR_ON(macdrv);
if (macdrv_start_cocoa_app(GetTickCount64()))
{
@@ -493,7 +489,7 @@ void macdrv_ThreadDetach(void)
CFRelease(data->keyboard_layout_uchr);
HeapFree(GetProcessHeap(), 0, data);
/* clear data in case we get re-entered from user32 before the thread is truly dead */
- TlsSetValue(thread_data_tls_index, NULL);
+ NtUserGetThreadInfo()->driver_data = 0;
}
}
@@ -556,7 +552,7 @@ struct macdrv_thread_data *macdrv_init_thread_data(void)
macdrv_compute_keyboard_layout(data);
set_queue_display_fd(macdrv_get_event_queue_fd(data->queue));
- TlsSetValue(thread_data_tls_index, data);
+ NtUserGetThreadInfo()->driver_data = data;
NtUserActivateKeyboardLayout(data->active_keyboard_layout, 0);
return data;
More information about the wine-cvs
mailing list