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 b276de332..0417fdb92 100644 --- a/src/core/hle/service/aoc/aoc_u.cpp +++ b/src/core/hle/service/aoc/aoc_u.cpp | |||
| @@ -34,14 +34,14 @@ static std::vector<u64> AccumulateAOCTitleIDs() { | |||
| 34 | std::vector<u64> add_on_content; | 34 | std::vector<u64> add_on_content; |
| 35 | const auto rcu = FileSystem::GetUnionContents(); | 35 | const auto rcu = FileSystem::GetUnionContents(); |
| 36 | const auto list = | 36 | const auto list = |
| 37 | rcu->ListEntriesFilter(FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); | 37 | rcu.ListEntriesFilter(FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); |
| 38 | std::transform(list.begin(), list.end(), std::back_inserter(add_on_content), | 38 | std::transform(list.begin(), list.end(), std::back_inserter(add_on_content), |
| 39 | [](const FileSys::RegisteredCacheEntry& rce) { return rce.title_id; }); | 39 | [](const FileSys::RegisteredCacheEntry& rce) { return rce.title_id; }); |
| 40 | add_on_content.erase( | 40 | add_on_content.erase( |
| 41 | std::remove_if( | 41 | std::remove_if( |
| 42 | add_on_content.begin(), add_on_content.end(), | 42 | add_on_content.begin(), add_on_content.end(), |
| 43 | [&rcu](u64 tid) { | 43 | [&rcu](u64 tid) { |
| 44 | return rcu->GetEntry(tid, FileSys::ContentRecordType::Data)->GetStatus() != | 44 | return rcu.GetEntry(tid, FileSys::ContentRecordType::Data)->GetStatus() != |
| 45 | Loader::ResultStatus::Success; | 45 | Loader::ResultStatus::Success; |
| 46 | }), | 46 | }), |
| 47 | add_on_content.end()); | 47 | add_on_content.end()); |
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 3bdff4036..b1490e6fa 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp | |||
| @@ -341,20 +341,9 @@ ResultVal<FileSys::VirtualDir> OpenSDMC() { | |||
| 341 | return sdmc_factory->Open(); | 341 | return sdmc_factory->Open(); |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | std::shared_ptr<FileSys::RegisteredCacheUnion> registered_cache_union; | 344 | FileSys::RegisteredCacheUnion GetUnionContents() { |
| 345 | 345 | return FileSys::RegisteredCacheUnion{ | |
| 346 | std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents() { | 346 | {GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()}}; |
| 347 | if (registered_cache_union == nullptr) { | ||
| 348 | registered_cache_union = | ||
| 349 | std::make_shared<FileSys::RegisteredCacheUnion>(std::vector<FileSys::RegisteredCache*>{ | ||
| 350 | GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()}); | ||
| 351 | } | ||
| 352 | |||
| 353 | return registered_cache_union; | ||
| 354 | } | ||
| 355 | |||
| 356 | void ClearUnionContents() { | ||
| 357 | registered_cache_union = nullptr; | ||
| 358 | } | 347 | } |
| 359 | 348 | ||
| 360 | FileSys::RegisteredCache* GetSystemNANDContents() { | 349 | FileSys::RegisteredCache* GetSystemNANDContents() { |
| @@ -407,7 +396,6 @@ void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) { | |||
| 407 | bis_factory = nullptr; | 396 | bis_factory = nullptr; |
| 408 | save_data_factory = nullptr; | 397 | save_data_factory = nullptr; |
| 409 | sdmc_factory = nullptr; | 398 | sdmc_factory = nullptr; |
| 410 | ClearUnionContents(); | ||
| 411 | } | 399 | } |
| 412 | 400 | ||
| 413 | auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), | 401 | 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 278cf90ab..965414be0 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(); |