]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / DataFormatters / FormatClasses.cpp
1 //===-- FormatClasses.cpp ----------------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #include "lldb/DataFormatters/FormatClasses.h"
12
13 #include "lldb/DataFormatters/FormatManager.h"
14
15
16
17
18
19 using namespace lldb;
20 using namespace lldb_private;
21
22 FormattersMatchData::FormattersMatchData(ValueObject &valobj,
23                                          lldb::DynamicValueType use_dynamic)
24     : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
25       m_formatters_match_vector({}, false), m_type_for_cache(),
26       m_candidate_languages() {
27   m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
28   m_candidate_languages = FormatManager::GetCandidateLanguages(valobj);
29 }
30
31 FormattersMatchVector FormattersMatchData::GetMatchesVector() {
32   if (!m_formatters_match_vector.second) {
33     m_formatters_match_vector.second = true;
34     m_formatters_match_vector.first =
35         FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type);
36   }
37   return m_formatters_match_vector.first;
38 }
39
40 ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
41
42 CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
43   return m_candidate_languages;
44 }
45
46 ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
47
48 lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
49   return m_dynamic_value_type;
50 }