Skip to content

Commit edf6cfd

Browse files
committed
[lldb][DataFormatter] Fix unordered_map formatter
1 parent f435ab6 commit edf6cfd

File tree

1 file changed

+7
-16
lines changed

1 file changed

+7
-16
lines changed

lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -114,22 +114,8 @@ lldb::ValueObjectSP lldb_private::formatters::
114114
if (!hash_sp || !value_sp) {
115115
if (!m_element_type) {
116116
auto compressed_pair_layout_getter = [this](ValueObject &node) {
117-
ValueObjectSP first_sp = GetFirstValueOfLibCXXCompressedPair(node);
118-
119-
if (!first_sp)
120-
return false;
121-
122-
m_element_type = first_sp->GetCompilerType();
123-
m_element_type = m_element_type.GetTypeTemplateArgument(0);
124-
m_element_type = m_element_type.GetPointeeType();
125-
m_node_type = m_element_type;
126-
m_element_type = m_element_type.GetTypeTemplateArgument(0);
127-
128-
return true;
129-
};
130-
131-
auto compressed_pair_v2_layout_getter = [this](ValueObject &node) {
132117
m_element_type = node.GetCompilerType();
118+
m_element_type = m_element_type.GetTypeTemplateArgument(0);
133119
m_element_type = m_element_type.GetPointeeType();
134120
m_node_type = m_element_type;
135121
m_element_type = m_element_type.GetTypeTemplateArgument(0);
@@ -139,10 +125,15 @@ lldb::ValueObjectSP lldb_private::formatters::
139125

140126
auto p1_sp = m_backend.GetChildAtNamePath({"__table_", "__p1_"});
141127
if (p1_sp) {
128+
ValueObjectSP first_sp = GetFirstValueOfLibCXXCompressedPair(*p1_sp);
129+
130+
if (!first_sp)
131+
return {};
132+
142133
compressed_pair_layout_getter(*p1_sp);
143134
} else {
144135
p1_sp = m_backend.GetChildAtNamePath({"__table_", "__first_node_"});
145-
compressed_pair_v2_layout_getter(*p1_sp);
136+
compressed_pair_layout_getter(*p1_sp);
146137
}
147138

148139
// This synthetic provider is used for both unordered_(multi)map and

0 commit comments

Comments
 (0)