diff options
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/aoc/aoc_u.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/filesystem.cpp | 18 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/filesystem.h | 3 |
3 files changed, 6 insertions, 19 deletions
diff --git a/src/core/hle/service/aoc/aoc_u.cpp b/src/core/hle/service/aoc/aoc_u.cpp index bacf19de2..b160c8bee 100644 --- a/src/core/hle/service/aoc/aoc_u.cpp +++ b/src/core/hle/service/aoc/aoc_u.cpp | |||
| @@ -32,14 +32,14 @@ static std::vector<u64> AccumulateAOCTitleIDs() { | |||
| 32 | std::vector<u64> add_on_content; | 32 | std::vector<u64> add_on_content; |
| 33 | const auto rcu = FileSystem::GetUnionContents(); | 33 | const auto rcu = FileSystem::GetUnionContents(); |
| 34 | const auto list = | 34 | const auto list = |
| 35 | rcu->ListEntriesFilter(FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); | 35 | rcu.ListEntriesFilter(FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); |
| 36 | std::transform(list.begin(), list.end(), std::back_inserter(add_on_content), | 36 | std::transform(list.begin(), list.end(), std::back_inserter(add_on_content), |
| 37 | [](const FileSys::RegisteredCacheEntry& rce) { return rce.title_id; }); | 37 | [](const FileSys::RegisteredCacheEntry& rce) { return rce.title_id; }); |
| 38 | add_on_content.erase( | 38 | add_on_content.erase( |
| 39 | std::remove_if( | 39 | std::remove_if( |
| 40 | add_on_content.begin(), add_on_content.end(), | 40 | add_on_content.begin(), add_on_content.end(), |
| 41 | [&rcu](u64 tid) { | 41 | [&rcu](u64 tid) { |
| 42 | return rcu->GetEntry(tid, FileSys::ContentRecordType::Data)->GetStatus() != | 42 | return rcu.GetEntry(tid, FileSys::ContentRecordType::Data)->GetStatus() != |
| 43 | Loader::ResultStatus::Success; | 43 | Loader::ResultStatus::Success; |
| 44 | }), | 44 | }), |
| 45 | add_on_content.end()); | 45 | add_on_content.end()); |
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 2aa77f68d..dbef3b2e4 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp | |||
| @@ -329,20 +329,9 @@ ResultVal<FileSys::VirtualDir> OpenSDMC() { | |||
| 329 | return sdmc_factory->Open(); | 329 | return sdmc_factory->Open(); |
| 330 | } | 330 | } |
| 331 | 331 | ||
| 332 | std::shared_ptr<FileSys::RegisteredCacheUnion> registered_cache_union; | 332 | FileSys::RegisteredCacheUnion GetUnionContents() { |
| 333 | 333 | return FileSys::RegisteredCacheUnion{ | |
| 334 | std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents() { | 334 | {GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()}}; |
| 335 | if (registered_cache_union == nullptr) { | ||
| 336 | registered_cache_union = | ||
| 337 | std::make_shared<FileSys::RegisteredCacheUnion>(std::vector<FileSys::RegisteredCache*>{ | ||
| 338 | GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()}); | ||
| 339 | } | ||
| 340 | |||
| 341 | return registered_cache_union; | ||
| 342 | } | ||
| 343 | |||
| 344 | void ClearUnionContents() { | ||
| 345 | registered_cache_union = nullptr; | ||
| 346 | } | 335 | } |
| 347 | 336 | ||
| 348 | FileSys::RegisteredCache* GetSystemNANDContents() { | 337 | FileSys::RegisteredCache* GetSystemNANDContents() { |
| @@ -395,7 +384,6 @@ void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) { | |||
| 395 | bis_factory = nullptr; | 384 | bis_factory = nullptr; |
| 396 | save_data_factory = nullptr; | 385 | save_data_factory = nullptr; |
| 397 | sdmc_factory = nullptr; | 386 | sdmc_factory = nullptr; |
| 398 | ClearUnionContents(); | ||
| 399 | } | 387 | } |
| 400 | 388 | ||
| 401 | auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), | 389 | auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), |
diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h index 0a6cb6635..93bf1b793 100644 --- a/src/core/hle/service/filesystem/filesystem.h +++ b/src/core/hle/service/filesystem/filesystem.h | |||
| @@ -48,8 +48,7 @@ ResultVal<FileSys::VirtualDir> OpenSaveData(FileSys::SaveDataSpaceId space, | |||
| 48 | ResultVal<FileSys::VirtualDir> OpenSaveDataSpace(FileSys::SaveDataSpaceId space); | 48 | ResultVal<FileSys::VirtualDir> OpenSaveDataSpace(FileSys::SaveDataSpaceId space); |
| 49 | ResultVal<FileSys::VirtualDir> OpenSDMC(); | 49 | ResultVal<FileSys::VirtualDir> OpenSDMC(); |
| 50 | 50 | ||
| 51 | std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents(); | 51 | FileSys::RegisteredCacheUnion GetUnionContents(); |
| 52 | void ClearUnionContents(); | ||
| 53 | 52 | ||
| 54 | FileSys::RegisteredCache* GetSystemNANDContents(); | 53 | FileSys::RegisteredCache* GetSystemNANDContents(); |
| 55 | FileSys::RegisteredCache* GetUserNANDContents(); | 54 | FileSys::RegisteredCache* GetUserNANDContents(); |