diff options
author | Greg Clayton <gclayton@apple.com> | 2015-10-08 21:04:34 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2015-10-08 21:04:34 +0000 |
commit | 5beec213e24139e99ebbf1b35ca9731849f8843a (patch) | |
tree | 0350e660a6bd95ad384cc8d8e74a5569591a4cc2 /lldb/source/Core/Module.cpp | |
parent | 1890799f0ca4b83bda70b2ad8e9b79d24ccc4d14 (diff) | |
download | bcm5719-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.cpp | 21 |
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 |