Lazy initialisation of thread locale.
This commit is contained in:
parent
4da59ea6dd
commit
bec3244f39
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue