Merge pull request #10594 from liamwhite/double-patch

fsp-srv: avoid patching romfs multiple times
This commit is contained in:
bunnei 2023-06-04 13:24:47 -07:00 committed by GitHub
commit e6fce1cbbd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -968,16 +968,20 @@ void FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute(HLERequ
void FSP_SRV::OpenDataStorageByCurrentProcess(HLERequestContext& ctx) { void FSP_SRV::OpenDataStorageByCurrentProcess(HLERequestContext& ctx) {
LOG_DEBUG(Service_FS, "called"); LOG_DEBUG(Service_FS, "called");
auto current_romfs = fsc.OpenRomFSCurrentProcess(); if (!romfs) {
if (current_romfs.Failed()) { auto current_romfs = fsc.OpenRomFSCurrentProcess();
// TODO (bunnei): Find the right error code to use here if (current_romfs.Failed()) {
LOG_CRITICAL(Service_FS, "no file system interface available!"); // TODO (bunnei): Find the right error code to use here
IPC::ResponseBuilder rb{ctx, 2}; LOG_CRITICAL(Service_FS, "no file system interface available!");
rb.Push(ResultUnknown); IPC::ResponseBuilder rb{ctx, 2};
return; rb.Push(ResultUnknown);
return;
}
romfs = current_romfs.Unwrap();
} }
auto storage = std::make_shared<IStorage>(system, std::move(current_romfs.Unwrap())); auto storage = std::make_shared<IStorage>(system, romfs);
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);