From 5beec213e24139e99ebbf1b35ca9731849f8843a Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Thu, 8 Oct 2015 21:04:34 +0000 Subject: 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 --- lldb/source/Core/Module.cpp | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'lldb/source/Core/Module.cpp') 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 -- cgit v1.2.3