diff --git a/core/io/resource.cpp b/core/io/resource.cpp index fac829d9cb4..5b76b6a5447 100644 --- a/core/io/resource.cpp +++ b/core/io/resource.cpp @@ -142,15 +142,18 @@ String Resource::generate_scene_unique_id() { static constexpr uint32_t char_count = ('z' - 'a'); static constexpr uint32_t base = char_count + ('9' - '0'); String id; + id.resize(characters + 1); + char32_t *ptr = id.ptrw(); for (uint32_t i = 0; i < characters; i++) { uint32_t c = random_num % base; if (c < char_count) { - id += String::chr('a' + c); + ptr[i] = ('a' + c); } else { - id += String::chr('0' + (c - char_count)); + ptr[i] = ('0' + (c - char_count)); } random_num /= base; } + ptr[characters] = '\0'; return id; } diff --git a/core/math/expression.cpp b/core/math/expression.cpp index 0bfc8def8e2..17830394422 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -408,7 +408,7 @@ Error Expression::_get_token(Token &r_token) { if (reading == READING_DONE) { break; } - num += String::chr(c); + num += c; c = GET_CHAR(); is_first_char = false; } @@ -435,7 +435,7 @@ Error Expression::_get_token(Token &r_token) { cchar = GET_CHAR(); while (is_unicode_identifier_continue(cchar)) { - id += String::chr(cchar); + id += cchar; cchar = GET_CHAR(); } diff --git a/core/variant/variant_parser.cpp b/core/variant/variant_parser.cpp index 7f6b9f9689a..5631f6d242d 100644 --- a/core/variant/variant_parser.cpp +++ b/core/variant/variant_parser.cpp @@ -1757,7 +1757,7 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin } else { escaping = false; } - r_tag.name += String::chr(c); + r_tag.name += c; } } @@ -1902,7 +1902,7 @@ Error VariantParser::parse_tag_assign_eof(Stream *p_stream, int &line, String &r what = tk.value; } else if (c != '=') { - what += String::chr(c); + what += c; } else { r_assign = what; Token token;