diff options
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/fs/archive.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp index 0c56777cf..2ce5f0fe7 100644 --- a/src/core/hle/service/fs/archive.cpp +++ b/src/core/hle/service/fs/archive.cpp | |||
| @@ -307,13 +307,14 @@ ResultVal<Kernel::SharedPtr<File>> OpenFileFromArchive(ArchiveHandle archive_han | |||
| 307 | if (archive == nullptr) | 307 | if (archive == nullptr) |
| 308 | return ERR_INVALID_HANDLE; | 308 | return ERR_INVALID_HANDLE; |
| 309 | 309 | ||
| 310 | std::unique_ptr<FileSys::FileBackend> backend = archive->OpenFile(path, mode); | 310 | auto backend = archive->OpenFile(path, mode); |
| 311 | if (backend == nullptr) { | 311 | if (backend.Failed()) { |
| 312 | return backend.Code(); | ||
| 312 | return ResultCode(ErrorDescription::FS_NotFound, ErrorModule::FS, | 313 | return ResultCode(ErrorDescription::FS_NotFound, ErrorModule::FS, |
| 313 | ErrorSummary::NotFound, ErrorLevel::Status); | 314 | ErrorSummary::NotFound, ErrorLevel::Status); |
| 314 | } | 315 | } |
| 315 | 316 | ||
| 316 | auto file = Kernel::SharedPtr<File>(new File(std::move(backend), path)); | 317 | auto file = Kernel::SharedPtr<File>(new File(backend.MoveFrom(), path)); |
| 317 | return MakeResult<Kernel::SharedPtr<File>>(std::move(file)); | 318 | return MakeResult<Kernel::SharedPtr<File>>(std::move(file)); |
| 318 | } | 319 | } |
| 319 | 320 | ||