[TextServer] Ensure ICU data is initialised only one and cleaned only at exit.

(cherry picked from commit 7f24433e15)
This commit is contained in:
bruvzg 2023-02-21 09:43:54 +02:00 committed by Yuri Sizov
parent e290448fe3
commit 466d226a4a
2 changed files with 5 additions and 2 deletions

View File

@ -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 { bool TextServerAdvanced::_has_feature(Feature p_feature) const {
switch (p_feature) { switch (p_feature) {
case FEATURE_SIMPLE_LAYOUT: case FEATURE_SIMPLE_LAYOUT:
@ -6599,5 +6601,6 @@ TextServerAdvanced::~TextServerAdvanced() {
uset_close(allowed); uset_close(allowed);
allowed = nullptr; allowed = nullptr;
} }
u_cleanup();
std::atexit(u_cleanup);
} }

View File

@ -158,7 +158,7 @@ class TextServerAdvanced : public TextServerExtension {
// ICU support data. // ICU support data.
bool icu_data_loaded = false; static bool icu_data_loaded;
mutable USet *allowed = nullptr; mutable USet *allowed = nullptr;
mutable USpoofChecker *sc_spoof = nullptr; mutable USpoofChecker *sc_spoof = nullptr;
mutable USpoofChecker *sc_conf = nullptr; mutable USpoofChecker *sc_conf = nullptr;