diff options
| author | Jonas Devlieghere <jonas@devlieghere.com> | 2018-09-20 09:09:05 +0000 |
|---|---|---|
| committer | Jonas Devlieghere <jonas@devlieghere.com> | 2018-09-20 09:09:05 +0000 |
| commit | f9a07e9f8debaf28d289d1fc0403f9f06043d977 (patch) | |
| tree | 182808c60c3c6380befb1842e660306a75575eed /lldb/source/Target/Target.cpp | |
| parent | cd53b7f54efb22c6bf52cab1fbf95805033ca018 (diff) | |
| download | bcm5719-llvm-f9a07e9f8debaf28d289d1fc0403f9f06043d977.tar.gz bcm5719-llvm-f9a07e9f8debaf28d289d1fc0403f9f06043d977.zip | |
[NFC] Turn "load dependent files" boolean into an enum
This is an NFC commit to refactor the "load dependent files" parameter
from a boolean to an enum value. We want to be able to specify a
default, in which case we decide whether or not to load the dependent
files based on whether the target is an executable or not (i.e. a
dylib).
This is a dependency for D51934.
Differential revision: https://reviews.llvm.org/D51859
llvm-svn: 342633
Diffstat (limited to 'lldb/source/Target/Target.cpp')
| -rw-r--r-- | lldb/source/Target/Target.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 5e59c027bd4..3141e76fd2d 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -1422,7 +1422,7 @@ void Target::DidExec() { } void Target::SetExecutableModule(ModuleSP &executable_sp, - bool get_dependent_files) { + LoadDependentFiles load_dependent_files) { Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_TARGET)); ClearModules(false); @@ -1446,8 +1446,20 @@ void Target::SetExecutableModule(ModuleSP &executable_sp, FileSpecList dependent_files; ObjectFile *executable_objfile = executable_sp->GetObjectFile(); + bool load_dependens; + switch (load_dependent_files) { + case eLoadDependentsDefault: + load_dependens = executable_sp->IsExecutable(); + break; + case eLoadDependentsYes: + load_dependens = true; + break; + case eLoadDependentsNo: + load_dependens = false; + break; + } - if (executable_objfile && get_dependent_files) { + if (executable_objfile && load_dependens) { executable_objfile->GetDependentModules(dependent_files); for (uint32_t i = 0; i < dependent_files.GetSize(); i++) { FileSpec dependent_file_spec( @@ -1552,7 +1564,7 @@ bool Target::SetArchitecture(const ArchSpec &arch_spec, bool set_platform) { nullptr, nullptr); if (!error.Fail() && executable_sp) { - SetExecutableModule(executable_sp, true); + SetExecutableModule(executable_sp, eLoadDependentsYes); return true; } } @@ -2122,7 +2134,7 @@ void Target::ImageSearchPathsChanged(const PathMappingList &path_list, Target *target = (Target *)baton; ModuleSP exe_module_sp(target->GetExecutableModule()); if (exe_module_sp) - target->SetExecutableModule(exe_module_sp, true); + target->SetExecutableModule(exe_module_sp, eLoadDependentsYes); } TypeSystem *Target::GetScratchTypeSystemForLanguage(Status *error, |

