aboutsummaryrefslogtreecommitdiff
path: root/src/core/loader
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2019-06-06 19:20:15 -0400
committerZach Hilman <zachhilman@gmail.com>2019-06-06 19:20:15 -0400
commitae003097713d56fc00cbfb0bbf9840cced353c44 (patch)
tree9d30248278656913599b01dd0fc70a3b0e7e7e24 /src/core/loader
parent5f6dba8ece7b9fb505a9105d347c7e992e8c5c4f (diff)
kernel_executable: Optimize BLZ decompression
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/kip.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/core/loader/kip.cpp b/src/core/loader/kip.cpp
index 2efd14f04f..70051c13ae 100644
--- a/src/core/loader/kip.cpp
+++ b/src/core/loader/kip.cpp
@@ -53,10 +53,14 @@ AppLoader::LoadResult AppLoader_KIP::Load(Kernel::Process& process) {
return {kip->GetStatus(), {}};
}
- const auto address_space =
- kip->Is64Bit() ? (kip->Is39BitAddressSpace() ? FileSys::ProgramAddressSpaceType::Is39Bit
- : FileSys::ProgramAddressSpaceType::Is36Bit)
- : FileSys::ProgramAddressSpaceType::Is32Bit;
+ const auto get_kip_address_space_type = [](const auto& kip) {
+ return kip.Is64Bit()
+ ? (kip.Is39BitAddressSpace() ? FileSys::ProgramAddressSpaceType::Is39Bit
+ : FileSys::ProgramAddressSpaceType::Is36Bit)
+ : FileSys::ProgramAddressSpaceType::Is32Bit;
+ };
+
+ const auto address_space = get_kip_address_space_type(*kip);
FileSys::ProgramMetadata metadata;
metadata.LoadManual(kip->Is64Bit(), address_space, kip->GetMainThreadPriority(),