14#ifdef _CRT_GLOBAL_STATE_ISOLATION
63 if (
ptd->_locale_info)
68 ptd->_locale_info->refcount == 0)
74 ptd->_locale_info = new_locale_info;
75 if (
ptd->_locale_info)
102 ptd->_setloc_data._cachein[0] =
L'C';
103 ptd->_setloc_data._cacheout[0] =
L'C';
106 ptd->_setloc_downlevel_data =
nullptr;
125 for (
size_t i = 0;
i != __crt_state_management::state_index_count; ++
i)
181 for (
size_t i = 0;
i != __crt_state_management::state_index_count; ++
i)
227 static void*
const reentrancy_sentinel =
reinterpret_cast<void*
>(
SIZE_MAX);
230 if (existing_ptd_head == reentrancy_sentinel)
234 else if (existing_ptd_head !=
nullptr)
236 return existing_ptd_head;
244 __crt_unique_heap_ptr<__acrt_ptd> new_ptd_head(_calloc_crt_t(
__acrt_ptd, __crt_state_management::state_index_count));
258 return new_ptd_head.detach();
266 __crt_scoped_get_last_error_reset
const& last_error_reset,
267 size_t const global_state_index
271 __acrt_ptd*
const ptd_head = internal_get_ptd_head();
277 return ptd_head + global_state_index;
282 __crt_scoped_get_last_error_reset
const last_error_reset;
283 return internal_getptd_noexit(last_error_reset, __crt_state_management::get_current_state_index(last_error_reset));
311 __acrt_ptd*
const ptd_head = internal_get_ptd_head();
void __cdecl __acrt_release_locale_ref(__crt_locale_data *)
BOOL WINAPI __acrt_FlsFree(_In_ DWORD dwFlsIndex)
@ __acrt_multibyte_cp_lock
void __cdecl __acrt_free_locale(__crt_locale_data *)
BOOL WINAPI __acrt_FlsSetValue(_In_ DWORD dwFlsIndex, _In_opt_ PVOID lpFlsData)
__crt_locale_data __acrt_initial_locale_data
struct __crt_signal_action_t const __acrt_exception_action_table[]
void __cdecl __acrt_add_locale_ref(__crt_locale_data *)
__crt_multibyte_data __acrt_initial_multibyte_data
#define _GLOBAL_LOCALE_BIT
PVOID WINAPI __acrt_FlsGetValue(_In_ DWORD dwFlsIndex)
DWORD WINAPI __acrt_FlsAlloc(_In_opt_ PFLS_CALLBACK_FUNCTION lpCallback)
result_buffer_count char *const _In_ int const _In_ bool const _In_ unsigned const _In_ STRFLT const _In_ bool const _Inout_ __crt_cached_ptd_host &ptd throw()
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
long __cdecl _InterlockedIncrement(_Interlocked_operand_ long volatile *_Addend)
long __cdecl _InterlockedDecrement(_Interlocked_operand_ long volatile *_Addend)
__crt_state_management::dual_state_global< __crt_locale_data * > __acrt_current_locale_data
#define UNREFERENCED_PARAMETER(P)
static void __cdecl destroy_ptd_array(__acrt_ptd *const ptd)
static void __cdecl construct_ptd(__acrt_ptd *const ptd, __crt_locale_data **const locale_data)
__acrt_ptd *__cdecl __acrt_getptd_noexit()
static void __cdecl replace_current_thread_locale_nolock(__acrt_ptd *const ptd, __crt_locale_data *const new_locale_info)
uintptr_t __cdecl __threadhandle()
static void WINAPI destroy_fls(void *)
__acrt_ptd *__cdecl __acrt_getptd_head()
static void __cdecl construct_ptd_array(__acrt_ptd *const ptd)
static __forceinline __acrt_ptd *__cdecl internal_getptd_noexit()
__acrt_ptd *__cdecl __acrt_getptd()
static unsigned long __acrt_flsindex
unsigned long __cdecl __threadid()
bool __cdecl __acrt_uninitialize_ptd(bool)
static void __cdecl destroy_ptd(__acrt_ptd *const ptd)
void __cdecl __acrt_freeptd()
static __forceinline __acrt_ptd * try_get_ptd_head()
bool __cdecl __acrt_initialize_ptd()
__acrt_ptd *__cdecl __acrt_getptd_noexit_explicit(__crt_scoped_get_last_error_reset const &last_error_reset, size_t const global_state_index)
static PIXELFORMATDESCRIPTOR pfd
HANDLE WINAPI GetCurrentThread(void)
#define FLS_OUT_OF_INDEXES
DWORD WINAPI GetCurrentThreadId(void)