Merge pull request #73669 from bruvzg/icu_static_data

[TextServer] Ensure ICU data is initialised only one and cleaned only at exit.
This commit is contained in:
Rémi Verschelde 2023-03-02 11:26:02 +01:00
commit 7e142e04f5
No known key found for this signature in database
GPG key ID: C3336907360768E1
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;