Skip to content
Snippets Groups Projects
Commit bec3244f authored by Alexandre Julliard's avatar Alexandre Julliard
Browse files

Lazy initialisation of thread locale.

parent 4da59ea6
Branches
Tags
No related merge requests found
......@@ -90,7 +90,6 @@ static BOOL THREAD_InitTEB( TEB *teb )
teb->StaticUnicodeString.MaximumLength = sizeof(teb->StaticUnicodeBuffer);
teb->StaticUnicodeString.Buffer = (PWSTR)teb->StaticUnicodeBuffer;
teb->teb_sel = SELECTOR_AllocBlock( teb, 0x1000, SEGMENT_DATA, TRUE, FALSE );
teb->CurrentLocale = GetUserDefaultLCID(); /* for threads in user context */
return (teb->teb_sel != 0);
}
......@@ -272,10 +271,6 @@ static void THREAD_Start(void)
/***********************************************************************
* CreateThread (KERNEL32.63)
*
* NOTE
* this function is not called for the first thread of a process
* do initializations in THREAD_InitTEB
*/
HANDLE WINAPI CreateThread( SECURITY_ATTRIBUTES *sa, DWORD stack,
LPTHREAD_START_ROUTINE start, LPVOID param,
......@@ -858,7 +853,9 @@ VOID WINAPI VWin32_BoostThreadStatic( DWORD threadId, INT boost )
*/
LCID WINAPI GetThreadLocale(void)
{
return NtCurrentTeb()->CurrentLocale;
LCID ret = NtCurrentTeb()->CurrentLocale;
if (!ret) NtCurrentTeb()->CurrentLocale = ret = GetUserDefaultLCID();
return ret;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment