From c8c410565927b54b2a1353ca00a1c4de38a74816 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 19 Sep 2018 13:54:43 -0400 Subject: [PATCH] nax: Avoid unnecessary calls to AsNCA() in IdentifyType() AsNCA() allocates an NCA instance every time it's called. In the current manner it's used, it's quite inefficient as it's making a redundant allocation. We can just amend the order of the conditionals to make it easier to just call it once. --- src/core/loader/nax.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/loader/nax.cpp b/src/core/loader/nax.cpp index b46d81c022..02a0d5ba74 100644 --- a/src/core/loader/nax.cpp +++ b/src/core/loader/nax.cpp @@ -21,12 +21,16 @@ 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; + if (nax.GetStatus() != ResultStatus::Success) { + return FileType::Error; } - return FileType::Error; + const auto nca = nax.AsNCA(); + if (nca == nullptr || nca->GetStatus() != ResultStatus::Success) { + return FileType::Error; + } + + return FileType::NAX; } ResultStatus AppLoader_NAX::Load(Kernel::SharedPtr& process) {