summaryrefslogtreecommitdiff
path: root/source/Core/Module.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Core/Module.cpp')
-rw-r--r--source/Core/Module.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/source/Core/Module.cpp b/source/Core/Module.cpp
index 900eea2e0419b..891bd87a20d49 100644
--- a/source/Core/Module.cpp
+++ b/source/Core/Module.cpp
@@ -152,7 +152,6 @@ Module::Module (const ModuleSpec &module_spec) :
m_did_load_symbol_vendor (false),
m_did_parse_uuid (false),
m_did_init_ast (false),
- m_is_dynamic_loader_module (false),
m_file_has_changed (false),
m_first_file_changed_log (false)
{
@@ -257,7 +256,6 @@ Module::Module(const FileSpec& file_spec,
m_did_load_symbol_vendor (false),
m_did_parse_uuid (false),
m_did_init_ast (false),
- m_is_dynamic_loader_module (false),
m_file_has_changed (false),
m_first_file_changed_log (false)
{
@@ -304,7 +302,6 @@ Module::Module () :
m_did_load_symbol_vendor (false),
m_did_parse_uuid (false),
m_did_init_ast (false),
- m_is_dynamic_loader_module (false),
m_file_has_changed (false),
m_first_file_changed_log (false)
{
@@ -1304,10 +1301,14 @@ Module::GetObjectFile()
data_offset);
if (m_objfile_sp)
{
- // Once we get the object file, update our module with the object file's
+ // Once we get the object file, update our module with the object file's
// architecture since it might differ in vendor/os if some parts were
- // unknown.
- m_objfile_sp->GetArchitecture (m_arch);
+ // unknown. But since the matching arch might already be more specific
+ // than the generic COFF architecture, only merge in those values that
+ // overwrite unspecified unknown values.
+ ArchSpec new_arch;
+ m_objfile_sp->GetArchitecture(new_arch);
+ m_arch.MergeFrom(new_arch);
}
else
{
@@ -1732,7 +1733,7 @@ Module::PrepareForFunctionNameLookup (const ConstString &name,
if (CPPLanguageRuntime::ExtractContextAndIdentifier (name_cstr, context, basename))
lookup_name_type_mask |= (eFunctionNameTypeMethod | eFunctionNameTypeBase);
else
- lookup_name_type_mask = eFunctionNameTypeFull;
+ lookup_name_type_mask |= eFunctionNameTypeFull;
}
else
{
@@ -1821,3 +1822,13 @@ Module::CreateJITModule (const lldb::ObjectFileJITDelegateSP &delegate_sp)
return ModuleSP();
}
+bool
+Module::GetIsDynamicLinkEditor()
+{
+ ObjectFile * obj_file = GetObjectFile ();
+
+ if (obj_file)
+ return obj_file->GetIsDynamicLinkEditor();
+
+ return false;
+}