|
|
@@ -982,15 +982,26 @@ Error ResourceLoaderText::rename_dependencies(Ref<FileAccess> p_f, const String
|
|
|
|
|
|
f->seek(tag_end);
|
|
|
|
|
|
- uint8_t c = f->get_8();
|
|
|
- if (c == '\n' && !f->eof_reached()) {
|
|
|
- // Skip first newline character since we added one
|
|
|
- c = f->get_8();
|
|
|
+ const uint32_t buffer_size = 2048;
|
|
|
+ uint8_t *buffer = (uint8_t *)alloca(buffer_size);
|
|
|
+ uint32_t num_read;
|
|
|
+
|
|
|
+ num_read = f->get_buffer(buffer, buffer_size);
|
|
|
+ ERR_FAIL_COND_V_MSG(num_read == UINT32_MAX, ERR_CANT_CREATE, "Failed to allocate memory for buffer.");
|
|
|
+ ERR_FAIL_COND_V(num_read == 0, ERR_FILE_CORRUPT);
|
|
|
+
|
|
|
+ if (*buffer == '\n') {
|
|
|
+ // Skip first newline character since we added one.
|
|
|
+ if (num_read > 1) {
|
|
|
+ fw->store_buffer(buffer + 1, num_read - 1);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ fw->store_buffer(buffer, num_read);
|
|
|
}
|
|
|
|
|
|
while (!f->eof_reached()) {
|
|
|
- fw->store_8(c);
|
|
|
- c = f->get_8();
|
|
|
+ num_read = f->get_buffer(buffer, buffer_size);
|
|
|
+ fw->store_buffer(buffer, num_read);
|
|
|
}
|
|
|
|
|
|
bool all_ok = fw->get_error() == OK;
|