diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-03-02 11:26:02 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-03-02 11:26:02 +0100 |
commit | 7e142e04f53a49587ca7133a1a1360374f87650d (patch) | |
tree | 0b4560a791f33e8e2ee59e2709cd0eeb1dc0965e | |
parent | 1c39cc5ff8c21a2fc20b3252bde38390a93de350 (diff) | |
parent | 7f24433e15081044aa8bcc3a646ded5129048bf5 (diff) | |
download | redot-engine-7e142e04f53a49587ca7133a1a1360374f87650d.tar.gz |
Merge pull request #73669 from bruvzg/icu_static_data
[TextServer] Ensure ICU data is initialised only one and cleaned only at exit.
-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 22652daa24..007f439a89 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 02244a294e..f092fa8cca 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; |