ReactOS 0.4.16-dev-835-gd769f56
locale_update.cpp
Go to the documentation of this file.
1//
2// locale_update.cpp
3//
4// Copyright (c) Microsoft Corporation. All rights reserved.
5//
6// Encapsulated implementation details of _LocaleUpdate that cannot be defined
7// in the header because they refer to data not exported from the AppCRT DLL.
8//
9#include <corecrt_internal.h>
10
12 __acrt_ptd* const ptd,
13 __crt_locale_data** const locale_info
14 )
15{
16 if (*locale_info != __acrt_current_locale_data.value() && __acrt_should_sync_with_global_locale(ptd))
17 {
18 *locale_info = __acrt_update_thread_locale_data();
19 }
20}
21
23 __acrt_ptd* const ptd,
24 __crt_multibyte_data** const multibyte_info
25 )
26{
27 if (*multibyte_info != __acrt_current_multibyte_data.value() && __acrt_should_sync_with_global_locale(ptd))
28 {
29 *multibyte_info = __acrt_update_thread_multibyte_data();
30 }
31}
32
34 __acrt_ptd* const ptd,
35 __crt_locale_data** const locale_info,
36 size_t const current_global_state_index
37 )
38{
39 if (*locale_info != __acrt_current_locale_data.value_explicit(current_global_state_index) && __acrt_should_sync_with_global_locale(ptd))
40 {
41 *locale_info = __acrt_update_thread_locale_data();
42 }
43}
44
46 __acrt_ptd* const ptd,
47 __crt_multibyte_data** const multibyte_info,
48 size_t const current_global_state_index
49 )
50{
51 if (*multibyte_info != __acrt_current_multibyte_data.value_explicit(current_global_state_index) && __acrt_should_sync_with_global_locale(ptd))
52 {
53 *multibyte_info = __acrt_update_thread_multibyte_data();
54 }
55}
__crt_multibyte_data *__cdecl __acrt_update_thread_multibyte_data(void)
Definition: mbctype.cpp:361
__crt_locale_data *__cdecl __acrt_update_thread_locale_data(void)
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
Definition: cvt.cpp:355
void __acrt_update_multibyte_info_explicit(__acrt_ptd *const ptd, __crt_multibyte_data **const multibyte_info, size_t const current_global_state_index)
void __acrt_update_locale_info(__acrt_ptd *const ptd, __crt_locale_data **const locale_info)
void __acrt_update_multibyte_info(__acrt_ptd *const ptd, __crt_multibyte_data **const multibyte_info)
void __acrt_update_locale_info_explicit(__acrt_ptd *const ptd, __crt_locale_data **const locale_info, size_t const current_global_state_index)
__crt_state_management::dual_state_global< __crt_multibyte_data * > __acrt_current_multibyte_data
Definition: mbctype.cpp:131
__crt_state_management::dual_state_global< __crt_locale_data * > __acrt_current_locale_data
Definition: nlsdata.cpp:132