Skip to content

Commit 74a5884

Browse files
authored
[lldb][TypeSystemClang][NFC] Use GetNumBaseClasses in TypeSystemClang::GetNumChildren (#139552)
`TypeSystemClang::GetNumBaseClasses` does exactly the same base-class accounting that we were doing in GetNumChildren. So re-use it.
1 parent dd89af7 commit 74a5884

File tree

1 file changed

+2
-26
lines changed

1 file changed

+2
-26
lines changed

lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5355,33 +5355,9 @@ TypeSystemClang::GetNumChildren(lldb::opaque_compiler_type_t type,
53555355
assert(record_decl);
53565356
const clang::CXXRecordDecl *cxx_record_decl =
53575357
llvm::dyn_cast<clang::CXXRecordDecl>(record_decl);
5358-
if (cxx_record_decl) {
5359-
if (omit_empty_base_classes) {
5360-
// Check each base classes to see if it or any of its base classes
5361-
// contain any fields. This can help limit the noise in variable
5362-
// views by not having to show base classes that contain no members.
5363-
clang::CXXRecordDecl::base_class_const_iterator base_class,
5364-
base_class_end;
5365-
for (base_class = cxx_record_decl->bases_begin(),
5366-
base_class_end = cxx_record_decl->bases_end();
5367-
base_class != base_class_end; ++base_class) {
5368-
const clang::CXXRecordDecl *base_class_decl =
5369-
llvm::cast<clang::CXXRecordDecl>(
5370-
base_class->getType()
5371-
->getAs<clang::RecordType>()
5372-
->getDecl());
5373-
5374-
// Skip empty base classes
5375-
if (!TypeSystemClang::RecordHasFields(base_class_decl))
5376-
continue;
53775358

5378-
num_children++;
5379-
}
5380-
} else {
5381-
// Include all base classes
5382-
num_children += cxx_record_decl->getNumBases();
5383-
}
5384-
}
5359+
num_children +=
5360+
GetNumBaseClasses(cxx_record_decl, omit_empty_base_classes);
53855361
num_children += std::distance(record_decl->field_begin(),
53865362
record_decl->field_end());
53875363
} else

0 commit comments

Comments
 (0)