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

This commit is contained in:
bruvzg 2023-02-21 09:43:54 +02:00
parent 052d8d804e
commit 7f24433e15
No known key found for this signature in database
GPG Key ID: 7960FCF39844EC38
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 {
switch (p_feature) {
case FEATURE_SIMPLE_LAYOUT:
@ -6599,5 +6601,6 @@ TextServerAdvanced::~TextServerAdvanced() {
uset_close(allowed);
allowed = nullptr;
}
u_cleanup();
std::atexit(u_cleanup);
}

View File

@ -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;