aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/vfs_vector.h
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-05-09 09:47:36 -0400
committerGitHub <noreply@github.com>2023-05-09 09:47:36 -0400
commit7944f271dcbd8217ea0a9e556b75edbe7a23eaff (patch)
tree7e2159b9fc6043e8318d14d0eb8da803d4019d6a /src/core/file_sys/vfs_vector.h
parent5890b96ce5d17e3702805ebfc1601a45295c94d0 (diff)
parentd100de27ee77fc98e1f3fa3dc6d2db0999da0a1a (diff)
Merge pull request #10183 from liamwhite/mods
vfs_vector: avoid n^2 lookup in layeredfs building
Diffstat (limited to 'src/core/file_sys/vfs_vector.h')
-rw-r--r--src/core/file_sys/vfs_vector.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/file_sys/vfs_vector.h b/src/core/file_sys/vfs_vector.h
index bfedb6e42..c9955755b 100644
--- a/src/core/file_sys/vfs_vector.h
+++ b/src/core/file_sys/vfs_vector.h
@@ -105,6 +105,7 @@ public:
VirtualDir parent = nullptr);
~VectorVfsDirectory() override;
+ VirtualFile GetFile(std::string_view file_name) const override;
std::vector<VirtualFile> GetFiles() const override;
std::vector<VirtualDir> GetSubdirectories() const override;
bool IsWritable() const override;
@@ -126,6 +127,9 @@ private:
VirtualDir parent;
std::string name;
+
+ mutable std::map<std::string, size_t, std::less<>> optimized_file_index;
+ mutable bool optimized_file_index_built{};
};
} // namespace FileSys