diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2023-02-21 09:43:54 +0200 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2023-02-21 09:43:54 +0200 |
commit | 7f24433e15081044aa8bcc3a646ded5129048bf5 (patch) | |
tree | d74ce21d71ea16d02bc33547ac167cb7953ee9c1 /modules/text_server_adv | |
parent | 052d8d804e9ad62f672fe13cecb5de34352b7ea5 (diff) | |
download | redot-engine-7f24433e15081044aa8bcc3a646ded5129048bf5.tar.gz |
[TextServer] Ensure ICU data is initialised only one and cleaned only at exit.
Diffstat (limited to 'modules/text_server_adv')
-rw-r--r-- | modules/text_server_adv/text_server_adv.cpp | 5 | ||||
-rw-r--r-- | modules/text_server_adv/text_server_adv.h | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp index b55188ce0c..697c3b66bb 100644 --- a/modules/text_server_adv/text_server_adv.cpp +++ b/modules/text_server_adv/text_server_adv.cpp @@ -334,6 +334,8 @@ _FORCE_INLINE_ bool is_connected_to_prev(char32_t p_chr, char32_t p_pchr) { /*************************************************************************/ +bool TextServerAdvanced::icu_data_loaded = false; + bool TextServerAdvanced::_has_feature(Feature p_feature) const { switch (p_feature) { case FEATURE_SIMPLE_LAYOUT: @@ -6599,5 +6601,6 @@ TextServerAdvanced::~TextServerAdvanced() { uset_close(allowed); allowed = nullptr; } - u_cleanup(); + + std::atexit(u_cleanup); } diff --git a/modules/text_server_adv/text_server_adv.h b/modules/text_server_adv/text_server_adv.h index 1acf5b21f0..850a6fcae9 100644 --- a/modules/text_server_adv/text_server_adv.h +++ b/modules/text_server_adv/text_server_adv.h @@ -158,7 +158,7 @@ class TextServerAdvanced : public TextServerExtension { // ICU support data. - bool icu_data_loaded = false; + static bool icu_data_loaded; mutable USet *allowed = nullptr; mutable USpoofChecker *sc_spoof = nullptr; mutable USpoofChecker *sc_conf = nullptr; |