Merge pull request #108236 from timothyqiu/simplify-while

EditorFileSystem: Simplify resource loading logic on startup
This commit is contained in:
Thaddeus Crews 2025-11-04 16:32:47 -06:00
commit e172334ee4
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC

View file

@ -3420,24 +3420,17 @@ Ref<Resource> EditorFileSystem::_load_resource_on_startup(ResourceFormatImporter
ERR_FAIL_V_MSG(Ref<Resource>(), vformat("Failed loading resource: %s. The file doesn't seem to exist.", p_path)); ERR_FAIL_V_MSG(Ref<Resource>(), vformat("Failed loading resource: %s. The file doesn't seem to exist.", p_path));
} }
Ref<Resource> res; // Fail silently. Hopefully the resource is not yet imported.
bool can_retry = true; Ref<Resource> res = p_importer->load_internal(p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode, true);
bool retry = true; if (res.is_valid()) {
while (retry) { return res;
retry = false;
res = p_importer->load_internal(p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode, can_retry);
if (res.is_null() && can_retry) {
can_retry = false;
Error err = singleton->_reimport_file(p_path, HashMap<StringName, Variant>(), "", nullptr, false);
if (err == OK) {
retry = true;
}
}
} }
return res; // Retry after importing the resource.
if (singleton->_reimport_file(p_path, HashMap<StringName, Variant>(), "", nullptr, false) != OK) {
return Ref<Resource>();
}
return p_importer->load_internal(p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode, false);
} }
bool EditorFileSystem::_should_skip_directory(const String &p_path) { bool EditorFileSystem::_should_skip_directory(const String &p_path) {