summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorGravatar Subv2015-12-28 10:17:06 -0500
committerGravatar Subv2016-03-20 14:28:22 -0500
commit95b34f8081e26cfe75d63a853d1626fdd5b636e6 (patch)
treea25b91d70bf84ad71922f63f2f92e37320d2bbfa /src/core/hle
parentHLE/FS: Fixed the OpenDirectory error code (diff)
downloadyuzu-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.cpp7
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