summaryrefslogtreecommitdiffstats
path: root/lldb/source/DataFormatters/FormatClasses.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2015-10-06 01:02:47 +0000
committerEnrico Granata <egranata@apple.com>2015-10-06 01:02:47 +0000
commit8a9a8f3940fb4a451400d3804bb8591ac1595e4d (patch)
tree5f6c85f8ee19eabdcb8bc42fa7216c22f660f2e8 /lldb/source/DataFormatters/FormatClasses.cpp
parent4c46f57a4926559316e57e7e4e79267c80f277c5 (diff)
downloadbcm5719-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.cpp47
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;
+}
OpenPOWER on IntegriCloud