Clean up conditional, don't set load binaries twice

Follow Alex Langford's feedback to my patch from
https://reviews.llvm.org/D145547 , and fix a
side issue I noticed while testing this, where
binaries loaded via LC_NOTE metadata were loaded
in the Target twice unnecessarily.
This commit is contained in:
Jason Molenda
2023-03-08 17:59:46 -08:00
parent 0f2f378425
commit 8db8a4e8ed
2 changed files with 8 additions and 5 deletions

View File

@@ -812,11 +812,10 @@ bool DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule(
}
}
if (m_module_sp && m_uuid.IsValid() && m_module_sp->GetUUID() == m_uuid) {
ObjectFileMachO *ondisk_objfile_macho =
llvm::dyn_cast_or_null<ObjectFileMachO>(
m_module_sp ? m_module_sp->GetObjectFile() : nullptr);
if (ondisk_objfile_macho) {
if (m_module_sp && m_uuid.IsValid() && m_module_sp->GetUUID() == m_uuid &&
m_module_sp->GetObjectFile()) {
if (ObjectFileMachO *ondisk_objfile_macho =
llvm::dyn_cast<ObjectFileMachO>(m_module_sp->GetObjectFile())) {
if (!IsKernel() && !ondisk_objfile_macho->IsKext()) {
// We have a non-kext, non-kernel binary. If we already have this
// loaded in the Target with load addresses, don't re-load it again.