mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	Merge pull request #1835 from lioncash/cache-global
filesystem: De-globalize registered_cache_union
This commit is contained in:
		| @@ -34,14 +34,14 @@ static std::vector<u64> AccumulateAOCTitleIDs() { | ||||
|     std::vector<u64> add_on_content; | ||||
|     const auto rcu = FileSystem::GetUnionContents(); | ||||
|     const auto list = | ||||
|         rcu->ListEntriesFilter(FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); | ||||
|         rcu.ListEntriesFilter(FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); | ||||
|     std::transform(list.begin(), list.end(), std::back_inserter(add_on_content), | ||||
|                    [](const FileSys::RegisteredCacheEntry& rce) { return rce.title_id; }); | ||||
|     add_on_content.erase( | ||||
|         std::remove_if( | ||||
|             add_on_content.begin(), add_on_content.end(), | ||||
|             [&rcu](u64 tid) { | ||||
|                 return rcu->GetEntry(tid, FileSys::ContentRecordType::Data)->GetStatus() != | ||||
|                 return rcu.GetEntry(tid, FileSys::ContentRecordType::Data)->GetStatus() != | ||||
|                        Loader::ResultStatus::Success; | ||||
|             }), | ||||
|         add_on_content.end()); | ||||
|   | ||||
| @@ -341,20 +341,9 @@ ResultVal<FileSys::VirtualDir> OpenSDMC() { | ||||
|     return sdmc_factory->Open(); | ||||
| } | ||||
|  | ||||
| std::shared_ptr<FileSys::RegisteredCacheUnion> registered_cache_union; | ||||
|  | ||||
| std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents() { | ||||
|     if (registered_cache_union == nullptr) { | ||||
|         registered_cache_union = | ||||
|             std::make_shared<FileSys::RegisteredCacheUnion>(std::vector<FileSys::RegisteredCache*>{ | ||||
|                 GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()}); | ||||
|     } | ||||
|  | ||||
|     return registered_cache_union; | ||||
| } | ||||
|  | ||||
| void ClearUnionContents() { | ||||
|     registered_cache_union = nullptr; | ||||
| FileSys::RegisteredCacheUnion GetUnionContents() { | ||||
|     return FileSys::RegisteredCacheUnion{ | ||||
|         {GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()}}; | ||||
| } | ||||
|  | ||||
| FileSys::RegisteredCache* GetSystemNANDContents() { | ||||
| @@ -407,7 +396,6 @@ void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) { | ||||
|         bis_factory = nullptr; | ||||
|         save_data_factory = nullptr; | ||||
|         sdmc_factory = nullptr; | ||||
|         ClearUnionContents(); | ||||
|     } | ||||
|  | ||||
|     auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), | ||||
|   | ||||
| @@ -48,8 +48,7 @@ ResultVal<FileSys::VirtualDir> OpenSaveData(FileSys::SaveDataSpaceId space, | ||||
| ResultVal<FileSys::VirtualDir> OpenSaveDataSpace(FileSys::SaveDataSpaceId space); | ||||
| ResultVal<FileSys::VirtualDir> OpenSDMC(); | ||||
|  | ||||
| std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents(); | ||||
| void ClearUnionContents(); | ||||
| FileSys::RegisteredCacheUnion GetUnionContents(); | ||||
|  | ||||
| FileSys::RegisteredCache* GetSystemNANDContents(); | ||||
| FileSys::RegisteredCache* GetUserNANDContents(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei