diff options
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp')
-rw-r--r-- | lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index b39ea51d193..ed26eaea121 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -50,7 +50,6 @@ namespace lldb_private { ValueObject* m_finish; CompilerType m_element_type; uint32_t m_element_size; - std::map<size_t,lldb::ValueObjectSP> m_children; }; } // namespace formatters } // namespace lldb_private @@ -60,8 +59,7 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::LibcxxStdVectorSynth m_start(nullptr), m_finish(nullptr), m_element_type(), - m_element_size(0), - m_children() + m_element_size(0) { if (valobj_sp) Update(); @@ -100,24 +98,20 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::GetChildAtIndex (siz if (!m_start || !m_finish) return lldb::ValueObjectSP(); - auto cached = m_children.find(idx); - if (cached != m_children.end()) - return cached->second; - uint64_t offset = idx * m_element_size; offset = offset + m_start->GetValueAsUnsigned(0); StreamString name; name.Printf("[%" PRIu64 "]", (uint64_t)idx); - ValueObjectSP child_sp = CreateValueObjectFromAddress(name.GetData(), offset, m_backend.GetExecutionContextRef(), m_element_type); - m_children[idx] = child_sp; - return child_sp; + return CreateValueObjectFromAddress(name.GetData(), + offset, + m_backend.GetExecutionContextRef(), + m_element_type); } bool lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::Update() { m_start = m_finish = nullptr; - m_children.clear(); ValueObjectSP data_type_finder_sp(m_backend.GetChildMemberWithName(ConstString("__end_cap_"),true)); if (!data_type_finder_sp) return false; |