diff --git a/core/string/string_builder.cpp b/core/string/string_builder.cpp index 4f74a2e42dc7..7f0a6abc04f7 100644 --- a/core/string/string_builder.cpp +++ b/core/string/string_builder.cpp @@ -68,8 +68,10 @@ String StringBuilder::as_string() const { int godot_string_elem = 0; int c_string_elem = 0; - for (int i = 0; i < appended_strings.size(); i++) { - if (appended_strings[i] == -1) { + for (uint32_t i = 0; i < appended_strings.size(); i++) { + const int32_t str_len = appended_strings[i]; + + if (str_len == -1) { // Godot string const String &s = strings[godot_string_elem]; @@ -81,11 +83,11 @@ String StringBuilder::as_string() const { } else { const char *s = c_strings[c_string_elem]; - for (int32_t j = 0; j < appended_strings[i]; j++) { + for (int32_t j = 0; j < str_len; j++) { buffer[current_position + j] = s[j]; } - current_position += appended_strings[i]; + current_position += str_len; c_string_elem++; } diff --git a/core/string/string_builder.h b/core/string/string_builder.h index 1a989e8422cf..3ba279b4fddb 100644 --- a/core/string/string_builder.h +++ b/core/string/string_builder.h @@ -32,17 +32,17 @@ #define STRING_BUILDER_H #include "core/string/ustring.h" -#include "core/templates/vector.h" +#include "core/templates/local_vector.h" class StringBuilder { uint32_t string_length = 0; - Vector strings; - Vector c_strings; + LocalVector strings; + LocalVector c_strings; // -1 means it's a Godot String // a natural number means C string. - Vector appended_strings; + LocalVector appended_strings; public: StringBuilder &append(const String &p_string);