aboutsummaryrefslogtreecommitdiff
path: root/src/core/loader/nax.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-09-20 10:13:10 -0400
committerGitHub <noreply@github.com>2018-09-20 10:13:10 -0400
commit9a3b442c4a0d754bf003eee97345f1373bd1e43f (patch)
tree46be6c81a0dbec6578cb4a11c13e2f5c1acd2632 /src/core/loader/nax.cpp
parent97b1a3f36d947598db43fa5cb54f3652f1935481 (diff)
parenta3a51a7b98bb587d75a5a56dacdd66303e93df91 (diff)
Merge pull request #1361 from lioncash/nax
xts_archive/nax: Minor interface changes
Diffstat (limited to 'src/core/loader/nax.cpp')
-rw-r--r--src/core/loader/nax.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/core/loader/nax.cpp b/src/core/loader/nax.cpp
index b46d81c022..5d4380684f 100644
--- a/src/core/loader/nax.cpp
+++ b/src/core/loader/nax.cpp
@@ -11,6 +11,20 @@
#include "core/loader/nca.h"
namespace Loader {
+namespace {
+FileType IdentifyTypeImpl(const FileSys::NAX& nax) {
+ if (nax.GetStatus() != ResultStatus::Success) {
+ return FileType::Error;
+ }
+
+ const auto nca = nax.AsNCA();
+ if (nca == nullptr || nca->GetStatus() != ResultStatus::Success) {
+ return FileType::Error;
+ }
+
+ return FileType::NAX;
+}
+} // Anonymous namespace
AppLoader_NAX::AppLoader_NAX(FileSys::VirtualFile file)
: AppLoader(file), nax(std::make_unique<FileSys::NAX>(file)),
@@ -19,14 +33,12 @@ AppLoader_NAX::AppLoader_NAX(FileSys::VirtualFile file)
AppLoader_NAX::~AppLoader_NAX() = default;
FileType AppLoader_NAX::IdentifyType(const FileSys::VirtualFile& file) {
- FileSys::NAX nax(file);
-
- if (nax.GetStatus() == ResultStatus::Success && nax.AsNCA() != nullptr &&
- nax.AsNCA()->GetStatus() == ResultStatus::Success) {
- return FileType::NAX;
- }
+ const FileSys::NAX nax(file);
+ return IdentifyTypeImpl(nax);
+}
- return FileType::Error;
+FileType AppLoader_NAX::GetFileType() {
+ return IdentifyTypeImpl(*nax);
}
ResultStatus AppLoader_NAX::Load(Kernel::SharedPtr<Kernel::Process>& process) {