diff options
| author | Liam <byteslice@airmail.cc> | 2023-05-07 01:19:13 -0400 |
|---|---|---|
| committer | Liam <byteslice@airmail.cc> | 2023-05-07 16:50:35 -0400 |
| commit | 5792a72c29dbc7af6a28603136206e97ef58943d (patch) | |
| tree | 1a78974bcfbedcab5e94f894b6330ada9edb98f0 /src/core/file_sys/vfs_vector.h | |
| parent | 0c5bdc7241b8af91f574ddc34194caeb4db90233 (diff) | |
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.h | 4 |
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 |
