summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Module.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2015-10-08 21:04:34 +0000
committerGreg Clayton <gclayton@apple.com>2015-10-08 21:04:34 +0000
commit5beec213e24139e99ebbf1b35ca9731849f8843a (patch)
tree0350e660a6bd95ad384cc8d8e74a5569591a4cc2 /lldb/source/Core/Module.cpp
parent1890799f0ca4b83bda70b2ad8e9b79d24ccc4d14 (diff)
downloadbcm5719-llvm-5beec213e24139e99ebbf1b35ca9731849f8843a.tar.gz
bcm5719-llvm-5beec213e24139e99ebbf1b35ca9731849f8843a.zip
Moved the target specific ClangASTContext initialization over into ClangASTContext::CreateInstance.
This involved changing the TypeSystem::CreateInstance to take a module or a target. This allows type systems to create an AST for modules (no expression support needed) or targets (expression support is needed) and return the correct class instance for both cases. llvm-svn: 249747
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r--lldb/source/Core/Module.cpp21
1 files changed, 1 insertions, 20 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index 63bbba9afdb..833540e1a30 100644
--- a/lldb/source/Core/Module.cpp
+++ b/lldb/source/Core/Module.cpp
@@ -419,26 +419,7 @@ Module::GetUUID()
TypeSystem *
Module::GetTypeSystemForLanguage (LanguageType language)
{
- Mutex::Locker locker (m_mutex);
- TypeSystemMap::iterator pos = m_type_system_map.find(language);
- if (pos != m_type_system_map.end())
- return pos->second.get();
-
- for (const auto &pair : m_type_system_map)
- {
- if (pair.second && pair.second->SupportsLanguage(language))
- {
- // Add a new mapping for "language" to point to an already existing
- // TypeSystem that supports this language
- m_type_system_map[language] = pair.second;
- return pair.second.get();
- }
- }
-
- // Cache even if we get a shared pointer that contains null type system back
- lldb::TypeSystemSP type_system_sp = TypeSystem::CreateInstance (language, GetArchitecture());
- m_type_system_map[language] = type_system_sp;
- return type_system_sp.get();
+ return m_type_system_map.GetTypeSystemForLanguage(language, this, true);
}
void
OpenPOWER on IntegriCloud