From 25553d7acaa9220ad50b6d552f1fdcd9bcaf8113 Mon Sep 17 00:00:00 2001 From: kobewi Date: Fri, 8 Mar 2024 22:51:31 +0100 Subject: [PATCH] Refactor how file cache entries are stored --- editor/editor_file_system.cpp | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 3e11b4a5ffab..83e71292a397 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -1333,24 +1333,28 @@ void EditorFileSystem::_save_filesystem_cache(EditorFileSystemDirectory *p_dir, p_file->store_line("::" + p_dir->get_path() + "::" + String::num(p_dir->modified_time)); for (int i = 0; i < p_dir->files.size(); i++) { - if (!p_dir->files[i]->import_group_file.is_empty()) { - group_file_cache.insert(p_dir->files[i]->import_group_file); + const EditorFileSystemDirectory::FileInfo *file_info = p_dir->files[i]; + if (!file_info->import_group_file.is_empty()) { + group_file_cache.insert(file_info->import_group_file); } - String type = p_dir->files[i]->type; - if (p_dir->files[i]->resource_script_class) { - type += "/" + String(p_dir->files[i]->resource_script_class); - } - String s = p_dir->files[i]->file + "::" + type + "::" + itos(p_dir->files[i]->uid) + "::" + itos(p_dir->files[i]->modified_time) + "::" + itos(p_dir->files[i]->import_modified_time) + "::" + itos(p_dir->files[i]->import_valid) + "::" + p_dir->files[i]->import_group_file + "::" + p_dir->files[i]->script_class_name + "<>" + p_dir->files[i]->script_class_extends + "<>" + p_dir->files[i]->script_class_icon_path; - s += "::"; - for (int j = 0; j < p_dir->files[i]->deps.size(); j++) { - if (j > 0) { - s += "<>"; - } - s += p_dir->files[i]->deps[j]; + String type = file_info->type; + if (file_info->resource_script_class) { + type += "/" + String(file_info->resource_script_class); } - p_file->store_line(s); + PackedStringArray cache_string; + cache_string.append(file_info->file); + cache_string.append(type); + cache_string.append(itos(file_info->uid)); + cache_string.append(itos(file_info->modified_time)); + cache_string.append(itos(file_info->import_modified_time)); + cache_string.append(itos(file_info->import_valid)); + cache_string.append(file_info->import_group_file); + cache_string.append(String("<>").join({ file_info->script_class_name, file_info->script_class_extends, file_info->script_class_icon_path })); + cache_string.append(String("<>").join(file_info->deps)); + + p_file->store_line(String("::").join(cache_string)); } for (int i = 0; i < p_dir->subdirs.size(); i++) {