diff options
author | Ed Maste <emaste@FreeBSD.org> | 2015-02-06 21:38:51 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2015-02-06 21:38:51 +0000 |
commit | 205afe679855a4ce8149cdaa94d3f0868ce796dc (patch) | |
tree | 09bc83f73246ee3c7a779605cd0122093d2a8a19 /include/lldb/DataFormatters/TypeCategory.h | |
parent | 0cac4ca3916ac24ab6139d03cbfd18db9e715bfe (diff) | |
download | src-205afe679855a4ce8149cdaa94d3f0868ce796dc.tar.gz src-205afe679855a4ce8149cdaa94d3f0868ce796dc.zip |
Import LLDB as of upstream SVN r225923 (git 2b588ecd)vendor/lldb/lldb-r225923
This corresponds with the branchpoint for the 3.6 release.
A number of files not required for the FreeBSD build have been removed.
Sponsored by: DARPA, AFRL
Notes
Notes:
svn path=/vendor/lldb/dist/; revision=278332
svn path=/vendor/lldb/lldb-r225923/; revision=278333; tag=vendor/lldb/lldb-r225923
Diffstat (limited to 'include/lldb/DataFormatters/TypeCategory.h')
-rw-r--r-- | include/lldb/DataFormatters/TypeCategory.h | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/include/lldb/DataFormatters/TypeCategory.h b/include/lldb/DataFormatters/TypeCategory.h index 491fef29b5c5..e32efa420a55 100644 --- a/include/lldb/DataFormatters/TypeCategory.h +++ b/include/lldb/DataFormatters/TypeCategory.h @@ -71,6 +71,7 @@ namespace lldb_private { typedef FormatterContainerPair<TypeFormatImpl> FormatContainer; typedef FormatterContainerPair<TypeSummaryImpl> SummaryContainer; typedef FormatterContainerPair<TypeFilterImpl> FilterContainer; + typedef FormatterContainerPair<TypeValidatorImpl> ValidatorContainer; #ifndef LLDB_DISABLE_PYTHON typedef FormatterContainerPair<ScriptedSyntheticChildren> SynthContainer; @@ -94,6 +95,9 @@ namespace lldb_private { typedef SynthContainer::RegexMatchContainerSP RegexSynthContainerSP; #endif // #ifndef LLDB_DISABLE_PYTHON + typedef ValidatorContainer::ExactMatchContainerSP ValidatorContainerSP; + typedef ValidatorContainer::RegexMatchContainerSP RegexValidatorContainerSP; + TypeCategoryImpl (IFormatChangeListener* clist, ConstString name); @@ -147,6 +151,9 @@ namespace lldb_private { GetSyntheticForType (lldb::TypeNameSpecifierImplSP type_sp); #endif + ValidatorContainer::MapValueType + GetValidatorForType (lldb::TypeNameSpecifierImplSP type_sp); + lldb::TypeNameSpecifierImplSP GetTypeNameSpecifierForFormatAtIndex (size_t index); @@ -183,9 +190,26 @@ namespace lldb_private { lldb::TypeNameSpecifierImplSP GetTypeNameSpecifierForSyntheticAtIndex (size_t index); - #endif // #ifndef LLDB_DISABLE_PYTHON + ValidatorContainerSP + GetTypeValidatorsContainer () + { + return m_validator_cont.GetExactMatch(); + } + + RegexValidatorContainerSP + GetRegexTypeValidatorsContainer () + { + return m_validator_cont.GetRegexMatch(); + } + + ValidatorContainer::MapValueType + GetValidatorAtIndex (size_t index); + + lldb::TypeNameSpecifierImplSP + GetTypeNameSpecifierForValidatorAtIndex (size_t index); + bool IsEnabled () const { @@ -219,6 +243,12 @@ namespace lldb_private { lldb::SyntheticChildrenSP& entry, uint32_t* reason = NULL); + bool + Get (ValueObject& valobj, + const FormattersMatchVector& candidates, + lldb::TypeValidatorImplSP& entry, + uint32_t* reason = NULL); + void Clear (FormatCategoryItems items = ALL_ITEM_TYPES); @@ -246,14 +276,12 @@ namespace lldb_private { private: FormatContainer m_format_cont; - SummaryContainer m_summary_cont; - FilterContainer m_filter_cont; - #ifndef LLDB_DISABLE_PYTHON SynthContainer m_synth_cont; #endif // #ifndef LLDB_DISABLE_PYTHON + ValidatorContainer m_validator_cont; bool m_enabled; @@ -274,6 +302,18 @@ namespace lldb_private { Enable(false, UINT32_MAX); } + uint32_t + GetLastEnabledPosition () + { + return m_enabled_position; + } + + void + SetEnabledPosition (uint32_t p) + { + m_enabled_position = p; + } + friend class TypeCategoryMap; friend class FormattersContainer<ConstString, TypeFormatImpl>; @@ -289,6 +329,9 @@ namespace lldb_private { friend class FormattersContainer<ConstString, ScriptedSyntheticChildren>; friend class FormattersContainer<lldb::RegularExpressionSP, ScriptedSyntheticChildren>; #endif // #ifndef LLDB_DISABLE_PYTHON + + friend class FormattersContainer<ConstString, TypeValidatorImpl>; + friend class FormattersContainer<lldb::RegularExpressionSP, TypeValidatorImpl>; }; } // namespace lldb_private |