diff options
| author | 2023-12-10 18:17:11 -0500 | |
|---|---|---|
| committer | 2023-12-10 18:17:11 -0500 | |
| commit | 11b123ba019b2f7b0b57d5bc28b88964b87c7b9b (patch) | |
| tree | 125a1bcaed1398b54a7908ab27cbd51c0770ca3d /src | |
| parent | Merge pull request #12327 from liamwhite/tipc (diff) | |
| parent | fs: don't enumerate hidden savedata size file (diff) | |
| download | yuzu-11b123ba019b2f7b0b57d5bc28b88964b87c7b9b.tar.gz yuzu-11b123ba019b2f7b0b57d5bc28b88964b87c7b9b.tar.xz yuzu-11b123ba019b2f7b0b57d5bc28b88964b87c7b9b.zip | |
Merge pull request #12322 from liamwhite/savedata-absurdity
fs: don't enumerate hidden savedata size file
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/file_sys/savedata_factory.cpp | 6 | ||||
| -rw-r--r-- | src/core/file_sys/savedata_factory.h | 4 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 8 |
3 files changed, 13 insertions, 5 deletions
diff --git a/src/core/file_sys/savedata_factory.cpp b/src/core/file_sys/savedata_factory.cpp index a4d060007..8d5d593e8 100644 --- a/src/core/file_sys/savedata_factory.cpp +++ b/src/core/file_sys/savedata_factory.cpp | |||
| @@ -12,8 +12,6 @@ | |||
| 12 | 12 | ||
| 13 | namespace FileSys { | 13 | namespace FileSys { |
| 14 | 14 | ||
| 15 | constexpr char SAVE_DATA_SIZE_FILENAME[] = ".yuzu_save_size"; | ||
| 16 | |||
| 17 | namespace { | 15 | namespace { |
| 18 | 16 | ||
| 19 | void PrintSaveDataAttributeWarnings(SaveDataAttribute meta) { | 17 | void PrintSaveDataAttributeWarnings(SaveDataAttribute meta) { |
| @@ -197,7 +195,7 @@ SaveDataSize SaveDataFactory::ReadSaveDataSize(SaveDataType type, u64 title_id, | |||
| 197 | GetFullPath(system, dir, SaveDataSpaceId::NandUser, type, title_id, user_id, 0); | 195 | GetFullPath(system, dir, SaveDataSpaceId::NandUser, type, title_id, user_id, 0); |
| 198 | const auto relative_dir = GetOrCreateDirectoryRelative(dir, path); | 196 | const auto relative_dir = GetOrCreateDirectoryRelative(dir, path); |
| 199 | 197 | ||
| 200 | const auto size_file = relative_dir->GetFile(SAVE_DATA_SIZE_FILENAME); | 198 | const auto size_file = relative_dir->GetFile(GetSaveDataSizeFileName()); |
| 201 | if (size_file == nullptr || size_file->GetSize() < sizeof(SaveDataSize)) { | 199 | if (size_file == nullptr || size_file->GetSize() < sizeof(SaveDataSize)) { |
| 202 | return {0, 0}; | 200 | return {0, 0}; |
| 203 | } | 201 | } |
| @@ -216,7 +214,7 @@ void SaveDataFactory::WriteSaveDataSize(SaveDataType type, u64 title_id, u128 us | |||
| 216 | GetFullPath(system, dir, SaveDataSpaceId::NandUser, type, title_id, user_id, 0); | 214 | GetFullPath(system, dir, SaveDataSpaceId::NandUser, type, title_id, user_id, 0); |
| 217 | const auto relative_dir = GetOrCreateDirectoryRelative(dir, path); | 215 | const auto relative_dir = GetOrCreateDirectoryRelative(dir, path); |
| 218 | 216 | ||
| 219 | const auto size_file = relative_dir->CreateFile(SAVE_DATA_SIZE_FILENAME); | 217 | const auto size_file = relative_dir->CreateFile(GetSaveDataSizeFileName()); |
| 220 | if (size_file == nullptr) { | 218 | if (size_file == nullptr) { |
| 221 | return; | 219 | return; |
| 222 | } | 220 | } |
diff --git a/src/core/file_sys/savedata_factory.h b/src/core/file_sys/savedata_factory.h index 45c7c81fb..e3a0f8cef 100644 --- a/src/core/file_sys/savedata_factory.h +++ b/src/core/file_sys/savedata_factory.h | |||
| @@ -83,6 +83,10 @@ struct SaveDataSize { | |||
| 83 | u64 journal; | 83 | u64 journal; |
| 84 | }; | 84 | }; |
| 85 | 85 | ||
| 86 | constexpr const char* GetSaveDataSizeFileName() { | ||
| 87 | return ".yuzu_save_size"; | ||
| 88 | } | ||
| 89 | |||
| 86 | /// File system interface to the SaveData archive | 90 | /// File system interface to the SaveData archive |
| 87 | class SaveDataFactory { | 91 | class SaveDataFactory { |
| 88 | public: | 92 | public: |
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 126cd6ffd..b1310d6e4 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp | |||
| @@ -246,7 +246,13 @@ static void BuildEntryIndex(std::vector<FileSys::Entry>& entries, const std::vec | |||
| 246 | entries.reserve(entries.size() + new_data.size()); | 246 | entries.reserve(entries.size() + new_data.size()); |
| 247 | 247 | ||
| 248 | for (const auto& new_entry : new_data) { | 248 | for (const auto& new_entry : new_data) { |
| 249 | entries.emplace_back(new_entry->GetName(), type, | 249 | auto name = new_entry->GetName(); |
| 250 | |||
| 251 | if (type == FileSys::EntryType::File && name == FileSys::GetSaveDataSizeFileName()) { | ||
| 252 | continue; | ||
| 253 | } | ||
| 254 | |||
| 255 | entries.emplace_back(name, type, | ||
| 250 | type == FileSys::EntryType::Directory ? 0 : new_entry->GetSize()); | 256 | type == FileSys::EntryType::Directory ? 0 : new_entry->GetSize()); |
| 251 | } | 257 | } |
| 252 | } | 258 | } |