llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Michael Buch (Michael137) <details> <summary>Changes</summary> This avoids duplicating the logic to get the first element of a libc++ `__compressed_pair`. This will be useful in upcoming refactorings of this formatter. Drive-by changes: * Renamed `m_item` to `size_node` for readability; `m_item` suggests it's a member variable, which it is not. --- Full diff: https://github.com/llvm/llvm-project/pull/80133.diff 1 Files Affected: - (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp (+8-18) ``````````diff diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index 092a4120376b7..d3ee63a35e107 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -213,30 +213,20 @@ size_t lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: CalculateNumChildren() { if (m_count != UINT32_MAX) return m_count; + if (m_tree == nullptr) return 0; - ValueObjectSP m_item(m_tree->GetChildMemberWithName("__pair3_")); - if (!m_item) + + ValueObjectSP size_node(m_tree->GetChildMemberWithName("__pair3_")); + if (!size_node) return 0; - switch (m_item->GetCompilerType().GetNumDirectBaseClasses()) { - case 1: - // Assume a pre llvm r300140 __compressed_pair implementation: - m_item = m_item->GetChildMemberWithName("__first_"); - break; - case 2: { - // Assume a post llvm r300140 __compressed_pair implementation: - ValueObjectSP first_elem_parent = m_item->GetChildAtIndex(0); - m_item = first_elem_parent->GetChildMemberWithName("__value_"); - break; - } - default: - return false; - } + size_node = GetFirstValueOfLibCXXCompressedPair(*size_node); - if (!m_item) + if (!size_node) return 0; - m_count = m_item->GetValueAsUnsigned(0); + + m_count = size_node->GetValueAsUnsigned(0); return m_count; } `````````` </details> https://github.com/llvm/llvm-project/pull/80133 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits