diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2023-10-23 12:44:02 +0200 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-10-23 12:44:02 +0200 |
| commit | c21c2706ad33c59295f6a3ac1e128db6fa7cce69 (patch) | |
| tree | 2c0a9e1b5ae829a4df9c700daca89aa9554c22ab /modules/text_server_adv/text_server_adv.cpp | |
| parent | 13144dead8d78f149cccc186c883d33fea9bfb25 (diff) | |
| parent | 0fb5d53feb9ee1a51ea1b5e1d8a1fbc4688f4e33 (diff) | |
| download | redot-engine-c21c2706ad33c59295f6a3ac1e128db6fa7cce69.tar.gz | |
Merge pull request #83827 from bruvzg/icu_data_keep
[TextServerAdvanced] Keep dynamically loaded ICU data in memory.
Diffstat (limited to 'modules/text_server_adv/text_server_adv.cpp')
| -rw-r--r-- | modules/text_server_adv/text_server_adv.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp index 16046ef053..8987a491cb 100644 --- a/modules/text_server_adv/text_server_adv.cpp +++ b/modules/text_server_adv/text_server_adv.cpp @@ -338,6 +338,7 @@ _FORCE_INLINE_ bool is_connected_to_prev(char32_t p_chr, char32_t p_pchr) { /*************************************************************************/ bool TextServerAdvanced::icu_data_loaded = false; +PackedByteArray TextServerAdvanced::icu_data; bool TextServerAdvanced::_has_feature(Feature p_feature) const { switch (p_feature) { @@ -438,7 +439,7 @@ bool TextServerAdvanced::_load_support_data(const String &p_filename) { return false; } uint64_t len = f->get_length(); - PackedByteArray icu_data = f->get_buffer(len); + icu_data = f->get_buffer(len); UErrorCode err = U_ZERO_ERROR; udata_setCommonData(icu_data.ptr(), &err); @@ -476,10 +477,10 @@ bool TextServerAdvanced::_save_support_data(const String &p_filename) const { return false; } - PackedByteArray icu_data; - icu_data.resize(U_ICUDATA_SIZE); - memcpy(icu_data.ptrw(), U_ICUDATA_ENTRY_POINT, U_ICUDATA_SIZE); - f->store_buffer(icu_data); + PackedByteArray icu_data_static; + icu_data_static.resize(U_ICUDATA_SIZE); + memcpy(icu_data_static.ptrw(), U_ICUDATA_ENTRY_POINT, U_ICUDATA_SIZE); + f->store_buffer(icu_data_static); return true; #else |
