From 95b34f8081e26cfe75d63a853d1626fdd5b636e6 Mon Sep 17 00:00:00 2001 From: Subv Date: Mon, 28 Dec 2015 10:17:06 -0500 Subject: HLE/FS: Return the proper error codes when opening files. --- src/core/hle/service/fs/archive.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/core/hle/service/fs') 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> OpenFileFromArchive(ArchiveHandle archive_han if (archive == nullptr) return ERR_INVALID_HANDLE; - std::unique_ptr backend = archive->OpenFile(path, mode); - if (backend == nullptr) { + auto backend = archive->OpenFile(path, mode); + if (backend.Failed()) { + return backend.Code(); return ResultCode(ErrorDescription::FS_NotFound, ErrorModule::FS, ErrorSummary::NotFound, ErrorLevel::Status); } - auto file = Kernel::SharedPtr(new File(std::move(backend), path)); + auto file = Kernel::SharedPtr(new File(backend.MoveFrom(), path)); return MakeResult>(std::move(file)); } -- cgit v1.2.3