diff options
author | Enrico Granata <egranata@apple.com> | 2015-10-06 01:02:47 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-10-06 01:02:47 +0000 |
commit | 8a9a8f3940fb4a451400d3804bb8591ac1595e4d (patch) | |
tree | 5f6c85f8ee19eabdcb8bc42fa7216c22f660f2e8 /lldb/source/DataFormatters/FormatClasses.cpp | |
parent | 4c46f57a4926559316e57e7e4e79267c80f277c5 (diff) | |
download | bcm5719-llvm-8a9a8f3940fb4a451400d3804bb8591ac1595e4d.tar.gz bcm5719-llvm-8a9a8f3940fb4a451400d3804bb8591ac1595e4d.zip |
Introduce a FormattersMatchData class which contains all the information that data formatters need in one place, and also allows for lazy computation of expensive chunks of information if need be
This is a NFC commit that is essentially plumbing the new currency through the system
llvm-svn: 249366
Diffstat (limited to 'lldb/source/DataFormatters/FormatClasses.cpp')
-rw-r--r-- | lldb/source/DataFormatters/FormatClasses.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lldb/source/DataFormatters/FormatClasses.cpp b/lldb/source/DataFormatters/FormatClasses.cpp index f27b45b3049..2e4acd175f1 100644 --- a/lldb/source/DataFormatters/FormatClasses.cpp +++ b/lldb/source/DataFormatters/FormatClasses.cpp @@ -9,6 +9,8 @@ #include "lldb/DataFormatters/FormatClasses.h" +#include "lldb/DataFormatters/FormatManager.h" + // C Includes // C++ Includes @@ -20,3 +22,48 @@ using namespace lldb; using namespace lldb_private; +FormattersMatchData::FormattersMatchData (ValueObject& valobj, lldb::DynamicValueType use_dynamic) : + m_valobj(valobj), + m_dynamic_value_type(use_dynamic), + m_formatters_match_vector({},false), + m_type_for_cache(), + m_candidate_languages() +{ + m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic); + m_candidate_languages = FormatManager::GetCandidateLanguages(valobj); +} + +FormattersMatchVector +FormattersMatchData::GetMatchesVector () +{ + if (!m_formatters_match_vector.second) + { + m_formatters_match_vector.second = true; + m_formatters_match_vector.first = FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type); + } + return m_formatters_match_vector.first; +} + +ConstString +FormattersMatchData::GetTypeForCache () +{ + return m_type_for_cache; +} + +CandidateLanguagesVector +FormattersMatchData::GetCandidateLanguages () +{ + return m_candidate_languages; +} + +ValueObject& +FormattersMatchData::GetValueObject () +{ + return m_valobj; +} + +lldb::DynamicValueType +FormattersMatchData::GetDynamicValueType () +{ + return m_dynamic_value_type; +} |