Author: labath Date: Tue Sep 1 04:02:54 2015 New Revision: 246536 URL: http://llvm.org/viewvc/llvm-project?rev=246536&view=rev Log: Revert "Add support for language plugins to provide data formatters"
This reverts r246515 (and related cmake fixes) as it breaks all libcxx tests. Removed: lldb/trunk/include/lldb/DataFormatters/LanguageCategory.h lldb/trunk/source/DataFormatters/LanguageCategory.cpp Modified: lldb/trunk/cmake/LLDBDependencies.cmake lldb/trunk/include/lldb/DataFormatters/FormatManager.h lldb/trunk/include/lldb/DataFormatters/TypeCategory.h lldb/trunk/include/lldb/DataFormatters/TypeCategoryMap.h lldb/trunk/include/lldb/Target/Language.h lldb/trunk/include/lldb/lldb-forward.h lldb/trunk/lldb.xcodeproj/project.pbxproj lldb/trunk/source/API/SystemInitializerFull.cpp lldb/trunk/source/DataFormatters/CMakeLists.txt lldb/trunk/source/DataFormatters/FormatManager.cpp lldb/trunk/source/DataFormatters/TypeCategoryMap.cpp lldb/trunk/source/Plugins/Language/CMakeLists.txt lldb/trunk/source/Target/Language.cpp Modified: lldb/trunk/cmake/LLDBDependencies.cmake URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/cmake/LLDBDependencies.cmake (original) +++ lldb/trunk/cmake/LLDBDependencies.cmake Tue Sep 1 04:02:54 2015 @@ -20,10 +20,6 @@ set( LLDB_USED_LIBS lldbPluginDynamicLoaderPosixDYLD lldbPluginDynamicLoaderHexagonDYLD lldbPluginDynamicLoaderWindowsDYLD - - lldbPluginCPlusPlusLanguage - lldbPluginObjCLanguage - lldbPluginObjCPlusPlusLanguage lldbPluginObjectFileELF lldbPluginObjectFileJIT Modified: lldb/trunk/include/lldb/DataFormatters/FormatManager.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/FormatManager.h?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/include/lldb/DataFormatters/FormatManager.h (original) +++ lldb/trunk/include/lldb/DataFormatters/FormatManager.h Tue Sep 1 04:02:54 2015 @@ -21,13 +21,11 @@ #include "lldb/DataFormatters/FormatCache.h" #include "lldb/DataFormatters/FormatClasses.h" #include "lldb/DataFormatters/FormattersContainer.h" -#include "lldb/DataFormatters/LanguageCategory.h" #include "lldb/DataFormatters/TypeCategory.h" #include "lldb/DataFormatters/TypeCategoryMap.h" #include <atomic> #include <functional> -#include <memory> namespace lldb_private { @@ -50,8 +48,6 @@ public: template <typename FormatterType> using HardcodedFormatterFinders = std::vector<HardcodedFormatterFinder<FormatterType>>; - typedef std::map<lldb::LanguageType, LanguageCategory::UniquePointer> LanguageCategories; - typedef TypeCategoryMap::CallbackType CategoryCallback; FormatManager (); @@ -127,8 +123,11 @@ public: } void - LoopThroughCategories (CategoryCallback callback, void* param); - + LoopThroughCategories (CategoryCallback callback, void* param) + { + m_categories_map.LoopThrough(callback, param); + } + lldb::TypeCategoryImplSP GetCategory (const char* category_name = NULL, bool can_create = true) @@ -259,9 +258,6 @@ public: true); return matches; } - - static ConstString - GetTypeForCache (ValueObject&, lldb::DynamicValueType); private: @@ -276,14 +272,10 @@ private: bool did_strip_typedef, bool root_level = false); - LanguageCategory* - GetCategoryForLanguage (lldb::LanguageType lang_type); - FormatCache m_format_cache; NamedSummariesMap m_named_summaries_map; std::atomic<uint32_t> m_last_revision; TypeCategoryMap m_categories_map; - LanguageCategories m_language_categories_map; ConstString m_default_category_name; ConstString m_system_category_name; Removed: lldb/trunk/include/lldb/DataFormatters/LanguageCategory.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/LanguageCategory.h?rev=246535&view=auto ============================================================================== --- lldb/trunk/include/lldb/DataFormatters/LanguageCategory.h (original) +++ lldb/trunk/include/lldb/DataFormatters/LanguageCategory.h (removed) @@ -1,67 +0,0 @@ -//===-- LanguageCategory.h----------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef lldb_LanguageCategory_h_ -#define lldb_LanguageCategory_h_ - -// C Includes -// C++ Includes - -// Other libraries and framework includes -// Project includes -#include "lldb/lldb-public.h" -#include "lldb/DataFormatters/FormatCache.h" -#include "lldb/DataFormatters/FormatClasses.h" - -#include <memory> - -namespace lldb_private { - -class LanguageCategory -{ -public: - typedef std::unique_ptr<LanguageCategory> UniquePointer; - - LanguageCategory (lldb::LanguageType lang_type); - - bool - Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::TypeFormatImplSP& format_sp); - - bool - Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::TypeSummaryImplSP& format_sp); - - bool - Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::SyntheticChildrenSP& format_sp); - - bool - Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::TypeValidatorImplSP& format_sp); - - lldb::TypeCategoryImplSP - GetCategory () const; - -private: - lldb::TypeCategoryImplSP m_category_sp; - lldb_private::FormatCache m_format_cache; -}; - -} // namespace lldb_private - -#endif // lldb_LanguageCategory_h_ Modified: lldb/trunk/include/lldb/DataFormatters/TypeCategory.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/TypeCategory.h?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/include/lldb/DataFormatters/TypeCategory.h (original) +++ lldb/trunk/include/lldb/DataFormatters/TypeCategory.h Tue Sep 1 04:02:54 2015 @@ -314,7 +314,6 @@ namespace lldb_private { m_enabled_position = p; } - friend class LanguageCategory; friend class TypeCategoryMap; friend class FormattersContainer<ConstString, TypeFormatImpl>; Modified: lldb/trunk/include/lldb/DataFormatters/TypeCategoryMap.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/TypeCategoryMap.h?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/include/lldb/DataFormatters/TypeCategoryMap.h (original) +++ lldb/trunk/include/lldb/DataFormatters/TypeCategoryMap.h Tue Sep 1 04:02:54 2015 @@ -102,25 +102,21 @@ namespace lldb_private { lldb::TypeFormatImplSP GetFormat (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches); + lldb::DynamicValueType use_dynamic); lldb::TypeSummaryImplSP GetSummaryFormat (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches); + lldb::DynamicValueType use_dynamic); #ifndef LLDB_DISABLE_PYTHON lldb::SyntheticChildrenSP GetSyntheticChildren (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches); + lldb::DynamicValueType use_dynamic); #endif lldb::TypeValidatorImplSP GetValidator (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches); + lldb::DynamicValueType use_dynamic); private: Modified: lldb/trunk/include/lldb/Target/Language.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Language.h?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/include/lldb/Target/Language.h (original) +++ lldb/trunk/include/lldb/Target/Language.h Tue Sep 1 04:02:54 2015 @@ -39,9 +39,6 @@ namespace lldb_private { virtual lldb::LanguageType GetLanguageType () const = 0; - virtual lldb::TypeCategoryImplSP - GetFormatters (); - protected: //------------------------------------------------------------------ // Classes that inherit from Language can see and modify these Modified: lldb/trunk/include/lldb/lldb-forward.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-forward.h?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/include/lldb/lldb-forward.h (original) +++ lldb/trunk/include/lldb/lldb-forward.h Tue Sep 1 04:02:54 2015 @@ -115,7 +115,6 @@ class IRExecutionUnit; class JITLoader; class JITLoaderList; class Language; -class LanguageCategory; class LanguageRuntime; class MemoryRegionInfo; class LineTable; Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/lldb.xcodeproj/project.pbxproj (original) +++ lldb/trunk/lldb.xcodeproj/project.pbxproj Tue Sep 1 04:02:54 2015 @@ -726,8 +726,6 @@ 941BCC8214E48C4000BB969C /* SBTypeSynthetic.h in Headers */ = {isa = PBXBuildFile; fileRef = 9461568914E355F2003A195C /* SBTypeSynthetic.h */; settings = {ATTRIBUTES = (Public, ); }; }; 94235B9E1A8D667400EB2EED /* SBVariablesOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 94235B9B1A8D5FF300EB2EED /* SBVariablesOptions.cpp */; }; 94235B9F1A8D66D600EB2EED /* SBVariablesOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 94235B9A1A8D5FD800EB2EED /* SBVariablesOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 942612F71B95000000EF842E /* LanguageCategory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 942612F61B95000000EF842E /* LanguageCategory.cpp */; settings = {ASSET_TAGS = (); }; }; - 942612F81B952C9B00EF842E /* ObjCLanguage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 94B6385E1B8FB7A2004FE1E4 /* ObjCLanguage.cpp */; settings = {ASSET_TAGS = (); }; }; 942829561A89614C00521B30 /* JSON.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 942829551A89614C00521B30 /* JSON.cpp */; }; 942829CC1A89839300521B30 /* liblldb-core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2689FFCA13353D7A00698AC0 /* liblldb-core.a */; }; 942AFF0519F84ABF007B43B4 /* LibCxxVector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 942AFF0419F84ABF007B43B4 /* LibCxxVector.cpp */; }; @@ -2409,8 +2407,6 @@ 94235B9A1A8D5FD800EB2EED /* SBVariablesOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SBVariablesOptions.h; path = include/lldb/API/SBVariablesOptions.h; sourceTree = "<group>"; }; 94235B9B1A8D5FF300EB2EED /* SBVariablesOptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBVariablesOptions.cpp; path = source/API/SBVariablesOptions.cpp; sourceTree = "<group>"; }; 94235B9D1A8D601A00EB2EED /* SBVariablesOptions.i */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c.preprocessed; path = SBVariablesOptions.i; sourceTree = "<group>"; }; - 942612F51B94FFE900EF842E /* LanguageCategory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LanguageCategory.h; path = include/lldb/DataFormatters/LanguageCategory.h; sourceTree = "<group>"; }; - 942612F61B95000000EF842E /* LanguageCategory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LanguageCategory.cpp; path = source/DataFormatters/LanguageCategory.cpp; sourceTree = "<group>"; }; 942829541A89614000521B30 /* JSON.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JSON.h; path = include/lldb/Utility/JSON.h; sourceTree = "<group>"; }; 942829551A89614C00521B30 /* JSON.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSON.cpp; path = source/Utility/JSON.cpp; sourceTree = "<group>"; }; 942829C01A89835300521B30 /* argdumper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = argdumper; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -5300,8 +5296,6 @@ 94CB256216B069800059775D /* FormatManager.h */, 94CB255A16B069770059775D /* FormatManager.cpp */, 94EE33F218643C6900CD703B /* FormattersContainer.h */, - 942612F51B94FFE900EF842E /* LanguageCategory.h */, - 942612F61B95000000EF842E /* LanguageCategory.cpp */, 94D0B10A16D5535900EA9C70 /* LibCxx.cpp */, 942AFF0619F84C02007B43B4 /* LibCxxInitializerList.cpp */, 94CD704F16F8DF1C00CF1E42 /* LibCxxList.cpp */, @@ -6203,7 +6197,6 @@ 2689005C13353E0400698AC0 /* ValueObjectVariable.cpp in Sources */, 264A58EE1A7DBCAD00A6B1B0 /* OptionValueFormatEntity.cpp in Sources */, 8C2D6A53197A1EAF006989C9 /* MemoryHistory.cpp in Sources */, - 942612F71B95000000EF842E /* LanguageCategory.cpp in Sources */, 2689005D13353E0400698AC0 /* VMRange.cpp in Sources */, 2689005E13353E0E00698AC0 /* ClangASTSource.cpp in Sources */, 3FDFED0F19B7D269009756A7 /* ThisThread.cpp in Sources */, @@ -6238,7 +6231,6 @@ 2689007213353E1A00698AC0 /* Mutex.cpp in Sources */, 25420ED21A649D88009ADBCB /* PipeBase.cpp in Sources */, AF20F7661AF18F8500751A6E /* ABISysV_arm.cpp in Sources */, - 942612F81B952C9B00EF842E /* ObjCLanguage.cpp in Sources */, 2689007313353E1A00698AC0 /* Symbols.cpp in Sources */, 26474CBC18D0CB2D0073DEBA /* RegisterContextMach_arm.cpp in Sources */, 257E47171AA56C2000A62F81 /* ModuleCache.cpp in Sources */, Modified: lldb/trunk/source/API/SystemInitializerFull.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SystemInitializerFull.cpp?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/source/API/SystemInitializerFull.cpp (original) +++ lldb/trunk/source/API/SystemInitializerFull.cpp Tue Sep 1 04:02:54 2015 @@ -41,9 +41,6 @@ #include "Plugins/Instruction/ARM64/EmulateInstructionARM64.h" #include "Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.h" #include "Plugins/JITLoader/GDB/JITLoaderGDB.h" -#include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" -#include "Plugins/Language/ObjC/ObjCLanguage.h" -#include "Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h" #include "Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h" #include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h" #include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h" @@ -284,10 +281,6 @@ SystemInitializerFull::Initialize() AppleObjCRuntimeV1::Initialize(); SystemRuntimeMacOSX::Initialize(); RenderScriptRuntime::Initialize(); - - CPlusPlusLanguage::Initialize(); - ObjCLanguage::Initialize(); - ObjCPlusPlusLanguage::Initialize(); #if defined(_MSC_VER) ProcessWindows::Initialize(); @@ -392,10 +385,6 @@ SystemInitializerFull::Terminate() SystemRuntimeMacOSX::Terminate(); RenderScriptRuntime::Terminate(); - CPlusPlusLanguage::Terminate(); - ObjCLanguage::Terminate(); - ObjCPlusPlusLanguage::Terminate(); - #if defined(__APPLE__) ProcessMachCore::Terminate(); ProcessKDP::Terminate(); Modified: lldb/trunk/source/DataFormatters/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/CMakeLists.txt?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/source/DataFormatters/CMakeLists.txt (original) +++ lldb/trunk/source/DataFormatters/CMakeLists.txt Tue Sep 1 04:02:54 2015 @@ -9,7 +9,6 @@ add_lldb_library(lldbDataFormatters FormatCache.cpp FormatClasses.cpp FormatManager.cpp - LanguageCategory.cpp LibCxx.cpp LibCxxInitializerList.cpp LibCxxList.cpp Modified: lldb/trunk/source/DataFormatters/FormatManager.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/FormatManager.cpp?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/source/DataFormatters/FormatManager.cpp (original) +++ lldb/trunk/source/DataFormatters/FormatManager.cpp Tue Sep 1 04:02:54 2015 @@ -16,13 +16,10 @@ #include "lldb/Core/Debugger.h" #include "lldb/DataFormatters/CXXFormatterFunctions.h" -#include "lldb/DataFormatters/LanguageCategory.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/Platform.h" #include "llvm/ADT/STLExtras.h" -#include <initializer_list> - using namespace lldb; using namespace lldb_private; @@ -475,20 +472,6 @@ FormatManager::GetValidatorForType (lldb return validator_chosen_sp; } -void -FormatManager::LoopThroughCategories (CategoryCallback callback, void* param) -{ - m_categories_map.LoopThrough(callback, param); - for (const auto& entry : m_language_categories_map) - { - if (auto category_sp = entry.second->GetCategory()) - { - if (!callback(param, category_sp)) - break; - } - } -} - lldb::TypeCategoryImplSP FormatManager::GetCategory (const ConstString& category_name, bool can_create) @@ -613,8 +596,8 @@ FormatManager::GetValidTypeName (const C } ConstString -FormatManager::GetTypeForCache (ValueObject& valobj, - lldb::DynamicValueType use_dynamic) +GetTypeForCache (ValueObject& valobj, + lldb::DynamicValueType use_dynamic) { if (use_dynamic == lldb::eNoDynamicValues) { @@ -635,28 +618,6 @@ FormatManager::GetTypeForCache (ValueObj return ConstString(); } -static std::initializer_list<lldb::LanguageType> -GetCandidateLanguages (ValueObject& valobj) -{ - lldb::LanguageType lang_type = valobj.GetObjectRuntimeLanguage(); - switch (lang_type) - { - default: - return {lang_type}; - } -} - -LanguageCategory* -FormatManager::GetCategoryForLanguage (lldb::LanguageType lang_type) -{ - auto iter = m_language_categories_map.find(lang_type), end = m_language_categories_map.end(); - if (iter != end) - return iter->second.get(); - LanguageCategory* lang_category = new LanguageCategory(lang_type); - m_language_categories_map[lang_type] = LanguageCategory::UniquePointer(lang_category); - return lang_category; -} - lldb::TypeFormatImplSP FormatManager::GetHardcodedFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic) @@ -694,29 +655,7 @@ FormatManager::GetFormat (ValueObject& v if (log) log->Printf("[FormatManager::GetFormat] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetFormat(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetFormat] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetFormat] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetFormat(valobj, use_dynamic); if (!retval) { if (log) @@ -774,29 +713,7 @@ FormatManager::GetSummaryFormat (ValueOb if (log) log->Printf("[FormatManager::GetSummaryFormat] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetSummaryFormat(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetSummaryFormat] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetSummaryFormat] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetSummaryFormat(valobj, use_dynamic); if (!retval) { if (log) @@ -855,29 +772,7 @@ FormatManager::GetSyntheticChildren (Val if (log) log->Printf("[FormatManager::GetSyntheticChildren] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetSyntheticChildren(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetSyntheticChildren] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetSyntheticChildren] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetSyntheticChildren(valobj, use_dynamic); if (!retval) { if (log) @@ -923,29 +818,7 @@ FormatManager::GetValidator (ValueObject if (log) log->Printf("[FormatManager::GetValidator] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetValidator(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetValidator] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetValidator] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetValidator(valobj, use_dynamic); if (!retval) { if (log) @@ -984,7 +857,6 @@ FormatManager::FormatManager() : m_named_summaries_map(this), m_last_revision(0), m_categories_map(this), - m_language_categories_map(), m_default_category_name(ConstString("default")), m_system_category_name(ConstString("system")), m_gnu_cpp_category_name(ConstString("gnu-libstdc++")), @@ -1211,7 +1083,17 @@ FormatManager::LoadLibcxxFormatters() lldb::TypeSummaryImplSP std_wstring_summary_sp(new CXXFunctionSummaryFormat(stl_summary_flags, lldb_private::formatters::LibcxxWStringSummaryProvider, "std::wstring summary provider")); TypeCategoryImpl::SharedPointer libcxx_category_sp = GetCategory(m_libcxx_category_name); - + + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::string"), + std_string_summary_sp); + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >"), + std_string_summary_sp); + + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::wstring"), + std_wstring_summary_sp); + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >"), + std_wstring_summary_sp); + SyntheticChildren::Flags stl_synth_flags; stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(false); Removed: lldb/trunk/source/DataFormatters/LanguageCategory.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/LanguageCategory.cpp?rev=246535&view=auto ============================================================================== --- lldb/trunk/source/DataFormatters/LanguageCategory.cpp (original) +++ lldb/trunk/source/DataFormatters/LanguageCategory.cpp (removed) @@ -1,133 +0,0 @@ -//===-- LanguageCategory.cpp ---------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "lldb/DataFormatters/LanguageCategory.h" - -// C Includes -// C++ Includes -// Other libraries and framework includes -// Project includes -#include "lldb/DataFormatters/FormatManager.h" -#include "lldb/DataFormatters/TypeCategory.h" -#include "lldb/DataFormatters/TypeFormat.h" -#include "lldb/DataFormatters/TypeSummary.h" -#include "lldb/DataFormatters/TypeSynthetic.h" -#include "lldb/DataFormatters/TypeValidator.h" -#include "lldb/Target/Language.h" - -using namespace lldb; -using namespace lldb_private; - -LanguageCategory::LanguageCategory (lldb::LanguageType lang_type) : - m_category_sp(), - m_format_cache() -{ - if (Language* language_plugin = Language::FindPlugin(lang_type)) - m_category_sp = language_plugin->GetFormatters(); - if (m_category_sp) - m_category_sp->Enable(true, 1); -} - -bool -LanguageCategory::Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::TypeFormatImplSP& format_sp) -{ - if (!m_category_sp) - return false; - - ConstString type_name = FormatManager::GetTypeForCache(valobj, dynamic); - if (type_name) - { - if (m_format_cache.GetFormat(type_name, format_sp)) - return true; - } - bool result = m_category_sp->Get(valobj, matches, format_sp); - if (type_name && (!format_sp || !format_sp->NonCacheable())) - { - m_format_cache.SetFormat(type_name, format_sp); - } - return result; -} - -bool -LanguageCategory::Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::TypeSummaryImplSP& format_sp) -{ - if (!m_category_sp) - return false; - - ConstString type_name = FormatManager::GetTypeForCache(valobj, dynamic); - if (type_name) - { - if (m_format_cache.GetSummary(type_name, format_sp)) - return true; - } - bool result = m_category_sp->Get(valobj, matches, format_sp); - if (type_name && (!format_sp || !format_sp->NonCacheable())) - { - m_format_cache.SetSummary(type_name, format_sp); - } - return result; -} - -bool -LanguageCategory::Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::SyntheticChildrenSP& format_sp) -{ - if (!m_category_sp) - return false; - - ConstString type_name = FormatManager::GetTypeForCache(valobj, dynamic); - if (type_name) - { - if (m_format_cache.GetSynthetic(type_name, format_sp)) - return true; - } - bool result = m_category_sp->Get(valobj, matches, format_sp); - if (type_name && (!format_sp || !format_sp->NonCacheable())) - { - m_format_cache.SetSynthetic(type_name, format_sp); - } - return result; -} - -bool -LanguageCategory::Get (ValueObject& valobj, - lldb::DynamicValueType dynamic, - FormattersMatchVector matches, - lldb::TypeValidatorImplSP& format_sp) -{ - if (!m_category_sp) - return false; - - ConstString type_name = FormatManager::GetTypeForCache(valobj, dynamic); - if (type_name) - { - if (m_format_cache.GetValidator(type_name, format_sp)) - return true; - } - bool result = m_category_sp->Get(valobj, matches, format_sp); - if (type_name && (!format_sp || !format_sp->NonCacheable())) - { - m_format_cache.SetValidator(type_name, format_sp); - } - return result; -} - -lldb::TypeCategoryImplSP -LanguageCategory::GetCategory () const -{ - return m_category_sp; -} Modified: lldb/trunk/source/DataFormatters/TypeCategoryMap.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/TypeCategoryMap.cpp?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/source/DataFormatters/TypeCategoryMap.cpp (original) +++ lldb/trunk/source/DataFormatters/TypeCategoryMap.cpp Tue Sep 1 04:02:54 2015 @@ -219,8 +219,7 @@ TypeCategoryMap::AnyMatches (ConstString lldb::TypeFormatImplSP TypeCategoryMap::GetFormat (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches) + lldb::DynamicValueType use_dynamic) { Mutex::Locker locker(m_map_mutex); @@ -229,6 +228,8 @@ TypeCategoryMap::GetFormat (ValueObject& Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES)); + FormattersMatchVector matches = FormatManager::GetPossibleMatches(valobj, use_dynamic); + for (begin = m_active_categories.begin(); begin != end; begin++) { lldb::TypeCategoryImplSP category_sp = *begin; @@ -246,8 +247,7 @@ TypeCategoryMap::GetFormat (ValueObject& lldb::TypeSummaryImplSP TypeCategoryMap::GetSummaryFormat (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches) + lldb::DynamicValueType use_dynamic) { Mutex::Locker locker(m_map_mutex); @@ -256,6 +256,8 @@ TypeCategoryMap::GetSummaryFormat (Value Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES)); + FormattersMatchVector matches = FormatManager::GetPossibleMatches(valobj, use_dynamic); + for (begin = m_active_categories.begin(); begin != end; begin++) { lldb::TypeCategoryImplSP category_sp = *begin; @@ -274,8 +276,7 @@ TypeCategoryMap::GetSummaryFormat (Value #ifndef LLDB_DISABLE_PYTHON lldb::SyntheticChildrenSP TypeCategoryMap::GetSyntheticChildren (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches) + lldb::DynamicValueType use_dynamic) { Mutex::Locker locker(m_map_mutex); @@ -285,6 +286,8 @@ TypeCategoryMap::GetSyntheticChildren (V Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES)); + FormattersMatchVector matches = FormatManager::GetPossibleMatches(valobj, use_dynamic); + for (begin = m_active_categories.begin(); begin != end; begin++) { lldb::TypeCategoryImplSP category_sp = *begin; @@ -303,8 +306,7 @@ TypeCategoryMap::GetSyntheticChildren (V lldb::TypeValidatorImplSP TypeCategoryMap::GetValidator (ValueObject& valobj, - lldb::DynamicValueType use_dynamic, - FormattersMatchVector matches) + lldb::DynamicValueType use_dynamic) { Mutex::Locker locker(m_map_mutex); @@ -313,6 +315,8 @@ TypeCategoryMap::GetValidator (ValueObje Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES)); + FormattersMatchVector matches = FormatManager::GetPossibleMatches(valobj, use_dynamic); + for (begin = m_active_categories.begin(); begin != end; begin++) { lldb::TypeCategoryImplSP category_sp = *begin; Modified: lldb/trunk/source/Plugins/Language/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CMakeLists.txt?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Language/CMakeLists.txt (original) +++ lldb/trunk/source/Plugins/Language/CMakeLists.txt Tue Sep 1 04:02:54 2015 @@ -1,3 +1,2 @@ add_subdirectory(CPlusPlus) add_subdirectory(ObjC) -add_subdirectory(ObjCPlusPlus) Modified: lldb/trunk/source/Target/Language.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Language.cpp?rev=246536&r1=246535&r2=246536&view=diff ============================================================================== --- lldb/trunk/source/Target/Language.cpp (original) +++ lldb/trunk/source/Target/Language.cpp Tue Sep 1 04:02:54 2015 @@ -87,12 +87,6 @@ Language::ForEach (std::function<bool(La } } -lldb::TypeCategoryImplSP -Language::GetFormatters () -{ - return nullptr; -} - //---------------------------------------------------------------------- // Constructor //---------------------------------------------------------------------- _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits