mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-09 05:32:36 +00:00
[fs] moved temp folder cleanup upstream (per-application level) to avoid per-program retrigger)
This commit is contained in:
@@ -312,6 +312,10 @@ struct System::Impl {
|
||||
}
|
||||
|
||||
SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window, const std::string& filepath, Service::AM::FrontendAppletParameters& params) {
|
||||
if (params.launch_type == Service::AM::LaunchType::FrontendInitiated) {
|
||||
fs_controller.InitTempStorage();
|
||||
}
|
||||
|
||||
InitializeKernel(system);
|
||||
|
||||
if (params.applet_type == Service::AM::AppletType::Application) {
|
||||
|
||||
@@ -57,11 +57,7 @@ std::string GetFutureSaveDataPath(SaveDataSpaceId space_id, SaveDataType type, u
|
||||
|
||||
SaveDataFactory::SaveDataFactory(Core::System& system_, ProgramId program_id_,
|
||||
VirtualDir save_directory_)
|
||||
: system{system_}, program_id{program_id_}, dir{std::move(save_directory_)} {
|
||||
// Delete all temporary storages
|
||||
// On hardware, it is expected that temporary storage be empty at first use.
|
||||
dir->DeleteSubdirectoryRecursive("temp");
|
||||
}
|
||||
: system{system_}, program_id{program_id_}, dir{std::move(save_directory_)} {}
|
||||
|
||||
SaveDataFactory::~SaveDataFactory() = default;
|
||||
|
||||
|
||||
@@ -787,6 +787,13 @@ void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool ove
|
||||
}
|
||||
}
|
||||
|
||||
void FileSystemController::InitTempStorage() {
|
||||
const auto save_directory = system.GetFilesystem()->OpenDirectory(Common::FS::GetEdenPathString(Common::FS::EdenPath::SaveDir), FileSys::OpenMode::ReadWrite);
|
||||
if (save_directory != nullptr) {
|
||||
save_directory->DeleteSubdirectoryRecursive("temp");
|
||||
}
|
||||
}
|
||||
|
||||
void FileSystemController::Reset() {
|
||||
std::scoped_lock lk{registration_lock};
|
||||
registrations.clear();
|
||||
|
||||
@@ -127,6 +127,8 @@ public:
|
||||
// above is called.
|
||||
void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite = true);
|
||||
|
||||
void InitTempStorage();
|
||||
|
||||
void Reset();
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user