Skip to content

Commit af53c71

Browse files
committed
fixup! fix libc++ unique_ptr formatter
1 parent 634ae8b commit af53c71

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -528,10 +528,9 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::Update() {
528528
if (deleter_sp)
529529
m_deleter_sp = deleter_sp->Clone(ConstString("deleter"));
530530
} else {
531-
// TODO: with the new layout, deleter is always a member, so empty deleters
532-
// will be displayed
533531
m_value_ptr_sp = ptr_sp->Clone(ConstString("pointer"));
534-
m_deleter_sp = deleter_sp->Clone(ConstString("deleter"));
532+
if (deleter_sp->GetNumChildrenIgnoringErrors() > 0)
533+
m_deleter_sp = deleter_sp->Clone(ConstString("deleter"));
535534
}
536535

537536
return lldb::ChildCacheState::eRefetch;

lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/unique_ptr/TestDataFormatterLibcxxUniquePtr.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ def test_unique_ptr_variables(self):
4545
"up_empty",
4646
type=self.make_expected_type("int"),
4747
summary="nullptr",
48-
#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter
4948
children=[ValueCheck(name="pointer")],
5049
)
5150
self.assertEqual(
@@ -60,7 +59,6 @@ def test_unique_ptr_variables(self):
6059
"up_int",
6160
type=self.make_expected_type("int"),
6261
summary="10",
63-
#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter
6462
children=[ValueCheck(name="pointer")],
6563
)
6664
self.assertNotEqual(valobj.child[0].unsigned, 0)
@@ -69,7 +67,6 @@ def test_unique_ptr_variables(self):
6967
"up_int_ref",
7068
type=self.make_expected_type("int", qualifiers="&"),
7169
summary="10",
72-
#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter
7370
children=[ValueCheck(name="pointer")],
7471
)
7572
self.assertNotEqual(valobj.child[0].unsigned, 0)
@@ -78,7 +75,6 @@ def test_unique_ptr_variables(self):
7875
"up_int_ref_ref",
7976
type=self.make_expected_type("int", qualifiers="&&"),
8077
summary="10",
81-
#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter
8278
children=[ValueCheck(name="pointer")],
8379
)
8480
self.assertNotEqual(valobj.child[0].unsigned, 0)
@@ -87,7 +83,6 @@ def test_unique_ptr_variables(self):
8783
"up_str",
8884
type=self.make_expected_basic_string_ptr(),
8985
summary='"hello"',
90-
#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter
9186
children=[ValueCheck(name="pointer")],
9287
)
9388

0 commit comments

Comments
 (0)