diff options
Diffstat (limited to 'src/core/loader/nax.cpp')
| -rw-r--r-- | src/core/loader/nax.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/core/loader/nax.cpp b/src/core/loader/nax.cpp index 02a0d5ba7..5d4380684 100644 --- a/src/core/loader/nax.cpp +++ b/src/core/loader/nax.cpp | |||
| @@ -11,16 +11,8 @@ | |||
| 11 | #include "core/loader/nca.h" | 11 | #include "core/loader/nca.h" |
| 12 | 12 | ||
| 13 | namespace Loader { | 13 | namespace Loader { |
| 14 | 14 | namespace { | |
| 15 | AppLoader_NAX::AppLoader_NAX(FileSys::VirtualFile file) | 15 | FileType IdentifyTypeImpl(const FileSys::NAX& nax) { |
| 16 | : AppLoader(file), nax(std::make_unique<FileSys::NAX>(file)), | ||
| 17 | nca_loader(std::make_unique<AppLoader_NCA>(nax->GetDecrypted())) {} | ||
| 18 | |||
| 19 | AppLoader_NAX::~AppLoader_NAX() = default; | ||
| 20 | |||
| 21 | FileType AppLoader_NAX::IdentifyType(const FileSys::VirtualFile& file) { | ||
| 22 | FileSys::NAX nax(file); | ||
| 23 | |||
| 24 | if (nax.GetStatus() != ResultStatus::Success) { | 16 | if (nax.GetStatus() != ResultStatus::Success) { |
| 25 | return FileType::Error; | 17 | return FileType::Error; |
| 26 | } | 18 | } |
| @@ -32,6 +24,22 @@ FileType AppLoader_NAX::IdentifyType(const FileSys::VirtualFile& file) { | |||
| 32 | 24 | ||
| 33 | return FileType::NAX; | 25 | return FileType::NAX; |
| 34 | } | 26 | } |
| 27 | } // Anonymous namespace | ||
| 28 | |||
| 29 | AppLoader_NAX::AppLoader_NAX(FileSys::VirtualFile file) | ||
| 30 | : AppLoader(file), nax(std::make_unique<FileSys::NAX>(file)), | ||
| 31 | nca_loader(std::make_unique<AppLoader_NCA>(nax->GetDecrypted())) {} | ||
| 32 | |||
| 33 | AppLoader_NAX::~AppLoader_NAX() = default; | ||
| 34 | |||
| 35 | FileType AppLoader_NAX::IdentifyType(const FileSys::VirtualFile& file) { | ||
| 36 | const FileSys::NAX nax(file); | ||
| 37 | return IdentifyTypeImpl(nax); | ||
| 38 | } | ||
| 39 | |||
| 40 | FileType AppLoader_NAX::GetFileType() { | ||
| 41 | return IdentifyTypeImpl(*nax); | ||
| 42 | } | ||
| 35 | 43 | ||
| 36 | ResultStatus AppLoader_NAX::Load(Kernel::SharedPtr<Kernel::Process>& process) { | 44 | ResultStatus AppLoader_NAX::Load(Kernel::SharedPtr<Kernel::Process>& process) { |
| 37 | if (is_loaded) { | 45 | if (is_loaded) { |