diff options
| author | 2018-10-02 20:04:31 -0400 | |
|---|---|---|
| committer | 2018-10-19 14:02:07 -0400 | |
| commit | a25d79cfaad99e7659a8123d41dc0969e854259b (patch) | |
| tree | ca5adf2b2f4e944099cbe672c0819d841294d64d /src | |
| parent | Merge pull request #1525 from ogniK5377/block-home (diff) | |
| download | yuzu-a25d79cfaad99e7659a8123d41dc0969e854259b.tar.gz yuzu-a25d79cfaad99e7659a8123d41dc0969e854259b.tar.xz yuzu-a25d79cfaad99e7659a8123d41dc0969e854259b.zip | |
vfs: Remove InterpretAsDirectory and related functions
When writing VFS, it initally seemed useful to include a function to in-place convert container files into directories in one homogenous directory structure, but re-evaluating it now there have been plenty of chances to use it and there has always been a better way. Removing as it is unused and likely will not be used.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/file_sys/card_image.cpp | 4 | ||||
| -rw-r--r-- | src/core/file_sys/card_image.h | 3 | ||||
| -rw-r--r-- | src/core/file_sys/content_archive.cpp | 3 | ||||
| -rw-r--r-- | src/core/file_sys/content_archive.h | 3 | ||||
| -rw-r--r-- | src/core/file_sys/partition_filesystem.cpp | 16 | ||||
| -rw-r--r-- | src/core/file_sys/partition_filesystem.h | 4 | ||||
| -rw-r--r-- | src/core/file_sys/submission_package.cpp | 4 | ||||
| -rw-r--r-- | src/core/file_sys/submission_package.h | 3 | ||||
| -rw-r--r-- | src/core/file_sys/vfs.h | 28 | ||||
| -rw-r--r-- | src/core/file_sys/vfs_layered.cpp | 3 | ||||
| -rw-r--r-- | src/core/file_sys/vfs_layered.h | 3 | ||||
| -rw-r--r-- | src/core/file_sys/vfs_real.cpp | 3 | ||||
| -rw-r--r-- | src/core/file_sys/vfs_real.h | 3 | ||||
| -rw-r--r-- | src/core/file_sys/vfs_vector.cpp | 7 | ||||
| -rw-r--r-- | src/core/file_sys/vfs_vector.h | 3 | ||||
| -rw-r--r-- | src/core/file_sys/xts_archive.cpp | 3 | ||||
| -rw-r--r-- | src/core/file_sys/xts_archive.h | 3 |
17 files changed, 1 insertions, 95 deletions
diff --git a/src/core/file_sys/card_image.cpp b/src/core/file_sys/card_image.cpp index ecdd7505b..1ece55731 100644 --- a/src/core/file_sys/card_image.cpp +++ b/src/core/file_sys/card_image.cpp | |||
| @@ -168,10 +168,6 @@ VirtualDir XCI::GetParentDirectory() const { | |||
| 168 | return file->GetContainingDirectory(); | 168 | return file->GetContainingDirectory(); |
| 169 | } | 169 | } |
| 170 | 170 | ||
| 171 | bool XCI::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 172 | return false; | ||
| 173 | } | ||
| 174 | |||
| 175 | Loader::ResultStatus XCI::AddNCAFromPartition(XCIPartition part) { | 171 | Loader::ResultStatus XCI::AddNCAFromPartition(XCIPartition part) { |
| 176 | if (partitions[static_cast<std::size_t>(part)] == nullptr) { | 172 | if (partitions[static_cast<std::size_t>(part)] == nullptr) { |
| 177 | return Loader::ResultStatus::ErrorXCIMissingPartition; | 173 | return Loader::ResultStatus::ErrorXCIMissingPartition; |
diff --git a/src/core/file_sys/card_image.h b/src/core/file_sys/card_image.h index 48cbef666..8f62571cf 100644 --- a/src/core/file_sys/card_image.h +++ b/src/core/file_sys/card_image.h | |||
| @@ -94,9 +94,6 @@ public: | |||
| 94 | 94 | ||
| 95 | VirtualDir GetParentDirectory() const override; | 95 | VirtualDir GetParentDirectory() const override; |
| 96 | 96 | ||
| 97 | protected: | ||
| 98 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 99 | |||
| 100 | private: | 97 | private: |
| 101 | Loader::ResultStatus AddNCAFromPartition(XCIPartition part); | 98 | Loader::ResultStatus AddNCAFromPartition(XCIPartition part); |
| 102 | 99 | ||
diff --git a/src/core/file_sys/content_archive.cpp b/src/core/file_sys/content_archive.cpp index 6c356d85d..77e04704e 100644 --- a/src/core/file_sys/content_archive.cpp +++ b/src/core/file_sys/content_archive.cpp | |||
| @@ -546,7 +546,4 @@ u64 NCA::GetBaseIVFCOffset() const { | |||
| 546 | return ivfc_offset; | 546 | return ivfc_offset; |
| 547 | } | 547 | } |
| 548 | 548 | ||
| 549 | bool NCA::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 550 | return false; | ||
| 551 | } | ||
| 552 | } // namespace FileSys | 549 | } // namespace FileSys |
diff --git a/src/core/file_sys/content_archive.h b/src/core/file_sys/content_archive.h index 1c903cd3f..211946686 100644 --- a/src/core/file_sys/content_archive.h +++ b/src/core/file_sys/content_archive.h | |||
| @@ -100,9 +100,6 @@ public: | |||
| 100 | // Returns the base ivfc offset used in BKTR patching. | 100 | // Returns the base ivfc offset used in BKTR patching. |
| 101 | u64 GetBaseIVFCOffset() const; | 101 | u64 GetBaseIVFCOffset() const; |
| 102 | 102 | ||
| 103 | protected: | ||
| 104 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 105 | |||
| 106 | private: | 103 | private: |
| 107 | bool CheckSupportedNCA(const NCAHeader& header); | 104 | bool CheckSupportedNCA(const NCAHeader& header); |
| 108 | bool HandlePotentialHeaderDecryption(); | 105 | bool HandlePotentialHeaderDecryption(); |
diff --git a/src/core/file_sys/partition_filesystem.cpp b/src/core/file_sys/partition_filesystem.cpp index 5791c76ff..a5259a593 100644 --- a/src/core/file_sys/partition_filesystem.cpp +++ b/src/core/file_sys/partition_filesystem.cpp | |||
| @@ -83,7 +83,7 @@ std::vector<std::shared_ptr<VfsFile>> PartitionFilesystem::GetFiles() const { | |||
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | std::vector<std::shared_ptr<VfsDirectory>> PartitionFilesystem::GetSubdirectories() const { | 85 | std::vector<std::shared_ptr<VfsDirectory>> PartitionFilesystem::GetSubdirectories() const { |
| 86 | return pfs_dirs; | 86 | return {}; |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | std::string PartitionFilesystem::GetName() const { | 89 | std::string PartitionFilesystem::GetName() const { |
| @@ -103,18 +103,4 @@ void PartitionFilesystem::PrintDebugInfo() const { | |||
| 103 | pfs_files[i]->GetName(), pfs_files[i]->GetSize()); | 103 | pfs_files[i]->GetName(), pfs_files[i]->GetSize()); |
| 104 | } | 104 | } |
| 105 | } | 105 | } |
| 106 | |||
| 107 | bool PartitionFilesystem::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 108 | const auto iter = std::find(pfs_files.begin(), pfs_files.end(), file); | ||
| 109 | if (iter == pfs_files.end()) | ||
| 110 | return false; | ||
| 111 | |||
| 112 | const std::ptrdiff_t offset = std::distance(pfs_files.begin(), iter); | ||
| 113 | pfs_files[offset] = std::move(pfs_files.back()); | ||
| 114 | pfs_files.pop_back(); | ||
| 115 | |||
| 116 | pfs_dirs.emplace_back(std::move(dir)); | ||
| 117 | |||
| 118 | return true; | ||
| 119 | } | ||
| 120 | } // namespace FileSys | 106 | } // namespace FileSys |
diff --git a/src/core/file_sys/partition_filesystem.h b/src/core/file_sys/partition_filesystem.h index 739c63a7f..248fdfdeb 100644 --- a/src/core/file_sys/partition_filesystem.h +++ b/src/core/file_sys/partition_filesystem.h | |||
| @@ -35,9 +35,6 @@ public: | |||
| 35 | std::shared_ptr<VfsDirectory> GetParentDirectory() const override; | 35 | std::shared_ptr<VfsDirectory> GetParentDirectory() const override; |
| 36 | void PrintDebugInfo() const; | 36 | void PrintDebugInfo() const; |
| 37 | 37 | ||
| 38 | protected: | ||
| 39 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 40 | |||
| 41 | private: | 38 | private: |
| 42 | struct Header { | 39 | struct Header { |
| 43 | u32_le magic; | 40 | u32_le magic; |
| @@ -84,7 +81,6 @@ private: | |||
| 84 | std::size_t content_offset = 0; | 81 | std::size_t content_offset = 0; |
| 85 | 82 | ||
| 86 | std::vector<VirtualFile> pfs_files; | 83 | std::vector<VirtualFile> pfs_files; |
| 87 | std::vector<VirtualDir> pfs_dirs; | ||
| 88 | }; | 84 | }; |
| 89 | 85 | ||
| 90 | } // namespace FileSys | 86 | } // namespace FileSys |
diff --git a/src/core/file_sys/submission_package.cpp b/src/core/file_sys/submission_package.cpp index ab5dc900c..2aaba4179 100644 --- a/src/core/file_sys/submission_package.cpp +++ b/src/core/file_sys/submission_package.cpp | |||
| @@ -205,10 +205,6 @@ VirtualDir NSP::GetParentDirectory() const { | |||
| 205 | return file->GetContainingDirectory(); | 205 | return file->GetContainingDirectory(); |
| 206 | } | 206 | } |
| 207 | 207 | ||
| 208 | bool NSP::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 209 | return false; | ||
| 210 | } | ||
| 211 | |||
| 212 | void NSP::InitializeExeFSAndRomFS(const std::vector<VirtualFile>& files) { | 208 | void NSP::InitializeExeFSAndRomFS(const std::vector<VirtualFile>& files) { |
| 213 | exefs = pfs; | 209 | exefs = pfs; |
| 214 | 210 | ||
diff --git a/src/core/file_sys/submission_package.h b/src/core/file_sys/submission_package.h index da3dc5e9f..338080b7e 100644 --- a/src/core/file_sys/submission_package.h +++ b/src/core/file_sys/submission_package.h | |||
| @@ -55,9 +55,6 @@ public: | |||
| 55 | 55 | ||
| 56 | VirtualDir GetParentDirectory() const override; | 56 | VirtualDir GetParentDirectory() const override; |
| 57 | 57 | ||
| 58 | protected: | ||
| 59 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 60 | |||
| 61 | private: | 58 | private: |
| 62 | void InitializeExeFSAndRomFS(const std::vector<VirtualFile>& files); | 59 | void InitializeExeFSAndRomFS(const std::vector<VirtualFile>& files); |
| 63 | void ReadNCAs(const std::vector<VirtualFile>& files); | 60 | void ReadNCAs(const std::vector<VirtualFile>& files); |
diff --git a/src/core/file_sys/vfs.h b/src/core/file_sys/vfs.h index 7f0d520ca..09dc9f288 100644 --- a/src/core/file_sys/vfs.h +++ b/src/core/file_sys/vfs.h | |||
| @@ -262,36 +262,8 @@ public: | |||
| 262 | // item name -> type. | 262 | // item name -> type. |
| 263 | virtual std::map<std::string, VfsEntryType, std::less<>> GetEntries() const; | 263 | virtual std::map<std::string, VfsEntryType, std::less<>> GetEntries() const; |
| 264 | 264 | ||
| 265 | // Interprets the file with name file instead as a directory of type directory. | ||
| 266 | // The directory must have a constructor that takes a single argument of type | ||
| 267 | // std::shared_ptr<VfsFile>. Allows to reinterpret container files (i.e NCA, zip, XCI, etc) as a | ||
| 268 | // subdirectory in one call. | ||
| 269 | template <typename Directory> | ||
| 270 | bool InterpretAsDirectory(std::string_view file) { | ||
| 271 | auto file_p = GetFile(file); | ||
| 272 | |||
| 273 | if (file_p == nullptr) { | ||
| 274 | return false; | ||
| 275 | } | ||
| 276 | |||
| 277 | return ReplaceFileWithSubdirectory(file_p, std::make_shared<Directory>(file_p)); | ||
| 278 | } | ||
| 279 | |||
| 280 | bool InterpretAsDirectory(const std::function<VirtualDir(VirtualFile)>& function, | ||
| 281 | const std::string& file) { | ||
| 282 | auto file_p = GetFile(file); | ||
| 283 | if (file_p == nullptr) | ||
| 284 | return false; | ||
| 285 | return ReplaceFileWithSubdirectory(file_p, function(file_p)); | ||
| 286 | } | ||
| 287 | |||
| 288 | // Returns the full path of this directory as a string, recursively | 265 | // Returns the full path of this directory as a string, recursively |
| 289 | virtual std::string GetFullPath() const; | 266 | virtual std::string GetFullPath() const; |
| 290 | |||
| 291 | protected: | ||
| 292 | // Backend for InterpretAsDirectory. | ||
| 293 | // Removes all references to file and adds a reference to dir in the directory's implementation. | ||
| 294 | virtual bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) = 0; | ||
| 295 | }; | 267 | }; |
| 296 | 268 | ||
| 297 | // A convenience partial-implementation of VfsDirectory that stubs out methods that should only work | 269 | // A convenience partial-implementation of VfsDirectory that stubs out methods that should only work |
diff --git a/src/core/file_sys/vfs_layered.cpp b/src/core/file_sys/vfs_layered.cpp index bfee01725..338e398da 100644 --- a/src/core/file_sys/vfs_layered.cpp +++ b/src/core/file_sys/vfs_layered.cpp | |||
| @@ -126,7 +126,4 @@ bool LayeredVfsDirectory::Rename(std::string_view name_) { | |||
| 126 | return true; | 126 | return true; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | bool LayeredVfsDirectory::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 130 | return false; | ||
| 131 | } | ||
| 132 | } // namespace FileSys | 129 | } // namespace FileSys |
diff --git a/src/core/file_sys/vfs_layered.h b/src/core/file_sys/vfs_layered.h index d85310f57..8a25c3428 100644 --- a/src/core/file_sys/vfs_layered.h +++ b/src/core/file_sys/vfs_layered.h | |||
| @@ -39,9 +39,6 @@ public: | |||
| 39 | bool DeleteFile(std::string_view name) override; | 39 | bool DeleteFile(std::string_view name) override; |
| 40 | bool Rename(std::string_view name) override; | 40 | bool Rename(std::string_view name) override; |
| 41 | 41 | ||
| 42 | protected: | ||
| 43 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 44 | |||
| 45 | private: | 42 | private: |
| 46 | std::vector<VirtualDir> dirs; | 43 | std::vector<VirtualDir> dirs; |
| 47 | std::string name; | 44 | std::string name; |
diff --git a/src/core/file_sys/vfs_real.cpp b/src/core/file_sys/vfs_real.cpp index 9defad04c..e21300a7c 100644 --- a/src/core/file_sys/vfs_real.cpp +++ b/src/core/file_sys/vfs_real.cpp | |||
| @@ -430,7 +430,4 @@ std::map<std::string, VfsEntryType, std::less<>> RealVfsDirectory::GetEntries() | |||
| 430 | return out; | 430 | return out; |
| 431 | } | 431 | } |
| 432 | 432 | ||
| 433 | bool RealVfsDirectory::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 434 | return false; | ||
| 435 | } | ||
| 436 | } // namespace FileSys | 433 | } // namespace FileSys |
diff --git a/src/core/file_sys/vfs_real.h b/src/core/file_sys/vfs_real.h index 5b61db90d..a0a857a31 100644 --- a/src/core/file_sys/vfs_real.h +++ b/src/core/file_sys/vfs_real.h | |||
| @@ -100,9 +100,6 @@ public: | |||
| 100 | std::string GetFullPath() const override; | 100 | std::string GetFullPath() const override; |
| 101 | std::map<std::string, VfsEntryType, std::less<>> GetEntries() const override; | 101 | std::map<std::string, VfsEntryType, std::less<>> GetEntries() const override; |
| 102 | 102 | ||
| 103 | protected: | ||
| 104 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 105 | |||
| 106 | private: | 103 | private: |
| 107 | RealVfsDirectory(RealVfsFilesystem& base, const std::string& path, Mode perms = Mode::Read); | 104 | RealVfsDirectory(RealVfsFilesystem& base, const std::string& path, Mode perms = Mode::Read); |
| 108 | 105 | ||
diff --git a/src/core/file_sys/vfs_vector.cpp b/src/core/file_sys/vfs_vector.cpp index 389c7e003..808f31e81 100644 --- a/src/core/file_sys/vfs_vector.cpp +++ b/src/core/file_sys/vfs_vector.cpp | |||
| @@ -132,11 +132,4 @@ void VectorVfsDirectory::AddFile(VirtualFile file) { | |||
| 132 | void VectorVfsDirectory::AddDirectory(VirtualDir dir) { | 132 | void VectorVfsDirectory::AddDirectory(VirtualDir dir) { |
| 133 | dirs.push_back(std::move(dir)); | 133 | dirs.push_back(std::move(dir)); |
| 134 | } | 134 | } |
| 135 | |||
| 136 | bool VectorVfsDirectory::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 137 | if (!DeleteFile(file->GetName())) | ||
| 138 | return false; | ||
| 139 | dirs.emplace_back(std::move(dir)); | ||
| 140 | return true; | ||
| 141 | } | ||
| 142 | } // namespace FileSys | 135 | } // namespace FileSys |
diff --git a/src/core/file_sys/vfs_vector.h b/src/core/file_sys/vfs_vector.h index 48a414c98..3e3f790c3 100644 --- a/src/core/file_sys/vfs_vector.h +++ b/src/core/file_sys/vfs_vector.h | |||
| @@ -57,9 +57,6 @@ public: | |||
| 57 | virtual void AddFile(VirtualFile file); | 57 | virtual void AddFile(VirtualFile file); |
| 58 | virtual void AddDirectory(VirtualDir dir); | 58 | virtual void AddDirectory(VirtualDir dir); |
| 59 | 59 | ||
| 60 | protected: | ||
| 61 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 62 | |||
| 63 | private: | 60 | private: |
| 64 | std::vector<VirtualFile> files; | 61 | std::vector<VirtualFile> files; |
| 65 | std::vector<VirtualDir> dirs; | 62 | std::vector<VirtualDir> dirs; |
diff --git a/src/core/file_sys/xts_archive.cpp b/src/core/file_sys/xts_archive.cpp index b2b164368..eec51c64e 100644 --- a/src/core/file_sys/xts_archive.cpp +++ b/src/core/file_sys/xts_archive.cpp | |||
| @@ -163,7 +163,4 @@ std::shared_ptr<VfsDirectory> NAX::GetParentDirectory() const { | |||
| 163 | return file->GetContainingDirectory(); | 163 | return file->GetContainingDirectory(); |
| 164 | } | 164 | } |
| 165 | 165 | ||
| 166 | bool NAX::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { | ||
| 167 | return false; | ||
| 168 | } | ||
| 169 | } // namespace FileSys | 166 | } // namespace FileSys |
diff --git a/src/core/file_sys/xts_archive.h b/src/core/file_sys/xts_archive.h index 8fedd8585..7704dee90 100644 --- a/src/core/file_sys/xts_archive.h +++ b/src/core/file_sys/xts_archive.h | |||
| @@ -51,9 +51,6 @@ public: | |||
| 51 | 51 | ||
| 52 | std::shared_ptr<VfsDirectory> GetParentDirectory() const override; | 52 | std::shared_ptr<VfsDirectory> GetParentDirectory() const override; |
| 53 | 53 | ||
| 54 | protected: | ||
| 55 | bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override; | ||
| 56 | |||
| 57 | private: | 54 | private: |
| 58 | Loader::ResultStatus Parse(std::string_view path); | 55 | Loader::ResultStatus Parse(std::string_view path); |
| 59 | 56 | ||