Merge pull request #1510 from lioncash/xci
XCI: Add function for checking the existence of the program NCA
This commit is contained in:
		
						commit
						d4ff4152ad
					
				@ -122,14 +122,16 @@ u64 XCI::GetProgramTitleID() const {
 | 
				
			|||||||
    return secure_partition->GetProgramTitleID();
 | 
					    return secure_partition->GetProgramTitleID();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
std::shared_ptr<NCA> XCI::GetProgramNCA() const {
 | 
					bool XCI::HasProgramNCA() const {
 | 
				
			||||||
    return program;
 | 
					    return program != nullptr;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VirtualFile XCI::GetProgramNCAFile() const {
 | 
					VirtualFile XCI::GetProgramNCAFile() const {
 | 
				
			||||||
    if (GetProgramNCA() == nullptr)
 | 
					    if (!HasProgramNCA()) {
 | 
				
			||||||
        return nullptr;
 | 
					        return nullptr;
 | 
				
			||||||
    return GetProgramNCA()->GetBaseFile();
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return program->GetBaseFile();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const std::vector<std::shared_ptr<NCA>>& XCI::GetNCAs() const {
 | 
					const std::vector<std::shared_ptr<NCA>>& XCI::GetNCAs() const {
 | 
				
			||||||
 | 
				
			|||||||
@ -80,7 +80,7 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    u64 GetProgramTitleID() const;
 | 
					    u64 GetProgramTitleID() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    std::shared_ptr<NCA> GetProgramNCA() const;
 | 
					    bool HasProgramNCA() const;
 | 
				
			||||||
    VirtualFile GetProgramNCAFile() const;
 | 
					    VirtualFile GetProgramNCAFile() const;
 | 
				
			||||||
    const std::vector<std::shared_ptr<NCA>>& GetNCAs() const;
 | 
					    const std::vector<std::shared_ptr<NCA>>& GetNCAs() const;
 | 
				
			||||||
    std::shared_ptr<NCA> GetNCAByType(NCAContentType type) const;
 | 
					    std::shared_ptr<NCA> GetNCAByType(NCAContentType type) const;
 | 
				
			||||||
 | 
				
			|||||||
@ -59,8 +59,7 @@ ResultStatus AppLoader_XCI::Load(Kernel::Process& process) {
 | 
				
			|||||||
    if (xci->GetProgramNCAStatus() != ResultStatus::Success)
 | 
					    if (xci->GetProgramNCAStatus() != ResultStatus::Success)
 | 
				
			||||||
        return xci->GetProgramNCAStatus();
 | 
					        return xci->GetProgramNCAStatus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const auto nca = xci->GetProgramNCA();
 | 
					    if (!xci->HasProgramNCA() && !Core::Crypto::KeyManager::KeyFileExists(false))
 | 
				
			||||||
    if (nca == nullptr && !Core::Crypto::KeyManager::KeyFileExists(false))
 | 
					 | 
				
			||||||
        return ResultStatus::ErrorMissingProductionKeyFile;
 | 
					        return ResultStatus::ErrorMissingProductionKeyFile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const auto result = nca_loader->Load(process);
 | 
					    const auto result = nca_loader->Load(process);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user