summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Target.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-09-20 09:09:05 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-09-20 09:09:05 +0000
commitf9a07e9f8debaf28d289d1fc0403f9f06043d977 (patch)
tree182808c60c3c6380befb1842e660306a75575eed /lldb/source/Target/Target.cpp
parentcd53b7f54efb22c6bf52cab1fbf95805033ca018 (diff)
downloadbcm5719-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.cpp20
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,
OpenPOWER on IntegriCloud