diff options
Diffstat (limited to 'source/Plugins/Language/CPlusPlus/LibCxxVector.cpp')
-rw-r--r-- | source/Plugins/Language/CPlusPlus/LibCxxVector.cpp | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index 9fb4f48e90907..ed26eaea121c6 100644 --- a/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -50,18 +50,16 @@ 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 lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::LibcxxStdVectorSyntheticFrontEnd (lldb::ValueObjectSP valobj_sp) : -SyntheticChildrenFrontEnd(*valobj_sp.get()), -m_start(NULL), -m_finish(NULL), -m_element_type(), -m_element_size(0), -m_children() + SyntheticChildrenFrontEnd(*valobj_sp), + m_start(nullptr), + m_finish(nullptr), + m_element_type(), + 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 = NULL; - m_children.clear(); + m_start = m_finish = nullptr; ValueObjectSP data_type_finder_sp(m_backend.GetChildMemberWithName(ConstString("__end_cap_"),true)); if (!data_type_finder_sp) return false; @@ -153,7 +147,5 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::GetIndexOfChildWithN lldb_private::SyntheticChildrenFrontEnd* lldb_private::formatters::LibcxxStdVectorSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp) { - if (!valobj_sp) - return NULL; - return (new LibcxxStdVectorSyntheticFrontEnd(valobj_sp)); + return (valobj_sp ? new LibcxxStdVectorSyntheticFrontEnd(valobj_sp) : nullptr); } |