Merge pull request #1731 from DarkLordZach/change-dir-crash

filesystem: Clear registered union paths on factory creation
This commit is contained in:
bunnei 2018-11-23 23:58:31 -05:00 committed by GitHub
commit 7c4fb09a7c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 0 deletions

View file

@ -341,6 +341,10 @@ std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents() {
return registered_cache_union; return registered_cache_union;
} }
void ClearUnionContents() {
registered_cache_union = nullptr;
}
FileSys::RegisteredCache* GetSystemNANDContents() { FileSys::RegisteredCache* GetSystemNANDContents() {
LOG_TRACE(Service_FS, "Opening System NAND Contents"); LOG_TRACE(Service_FS, "Opening System NAND Contents");
@ -391,6 +395,7 @@ void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) {
bis_factory = nullptr; bis_factory = nullptr;
save_data_factory = nullptr; save_data_factory = nullptr;
sdmc_factory = nullptr; sdmc_factory = nullptr;
ClearUnionContents();
} }
auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir),

View file

@ -49,6 +49,7 @@ ResultVal<FileSys::VirtualDir> OpenSaveDataSpace(FileSys::SaveDataSpaceId space)
ResultVal<FileSys::VirtualDir> OpenSDMC(); ResultVal<FileSys::VirtualDir> OpenSDMC();
std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents(); std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents();
void ClearUnionContents();
FileSys::RegisteredCache* GetSystemNANDContents(); FileSys::RegisteredCache* GetSystemNANDContents();
FileSys::RegisteredCache* GetUserNANDContents(); FileSys::RegisteredCache* GetUserNANDContents();