diff options
| author | 2015-12-28 10:17:06 -0500 | |
|---|---|---|
| committer | 2016-03-20 14:28:22 -0500 | |
| commit | 95b34f8081e26cfe75d63a853d1626fdd5b636e6 (patch) | |
| tree | a25b91d70bf84ad71922f63f2f92e37320d2bbfa /src/core/hle | |
| parent | HLE/FS: Fixed the OpenDirectory error code (diff) | |
| download | yuzu-95b34f8081e26cfe75d63a853d1626fdd5b636e6.tar.gz yuzu-95b34f8081e26cfe75d63a853d1626fdd5b636e6.tar.xz yuzu-95b34f8081e26cfe75d63a853d1626fdd5b636e6.zip | |
HLE/FS: Return the proper error codes when opening files.
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 | ||