summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar liamwhite2023-12-10 18:17:11 -0500
committerGravatar GitHub2023-12-10 18:17:11 -0500
commit11b123ba019b2f7b0b57d5bc28b88964b87c7b9b (patch)
tree125a1bcaed1398b54a7908ab27cbd51c0770ca3d
parentMerge pull request #12327 from liamwhite/tipc (diff)
parentfs: don't enumerate hidden savedata size file (diff)
downloadyuzu-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
-rw-r--r--src/core/file_sys/savedata_factory.cpp6
-rw-r--r--src/core/file_sys/savedata_factory.h4
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp8
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
13namespace FileSys { 13namespace FileSys {
14 14
15constexpr char SAVE_DATA_SIZE_FILENAME[] = ".yuzu_save_size";
16
17namespace { 15namespace {
18 16
19void PrintSaveDataAttributeWarnings(SaveDataAttribute meta) { 17void 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
86constexpr 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
87class SaveDataFactory { 91class SaveDataFactory {
88public: 92public:
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}