[nfc] [lldb] Reduce GetAttributes's depth parameter usage

Clean the code up a bit for D81334.

Differential Revision: https://reviews.llvm.org/D81423
This commit is contained in:
Jan Kratochvil 2020-06-09 13:37:17 +02:00
parent 0cd4d47cfe
commit fd31e60b8d
4 changed files with 13 additions and 11 deletions

View File

@ -104,12 +104,10 @@ bool DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type() const {
return IsValid() && GetDWARF()->Supports_DW_AT_APPLE_objc_complete_type(m_cu);
}
size_t DWARFBaseDIE::GetAttributes(DWARFAttributes &attributes,
uint32_t depth) const {
size_t DWARFBaseDIE::GetAttributes(DWARFAttributes &attributes) const {
if (IsValid())
return m_die->GetAttributes(m_cu, attributes, depth);
if (depth == 0)
attributes.Clear();
return m_die->GetAttributes(m_cu, attributes);
attributes.Clear();
return 0;
}

View File

@ -110,7 +110,7 @@ public:
uint64_t GetAttributeValueAsAddress(const dw_attr_t attr,
uint64_t fail_value) const;
size_t GetAttributes(DWARFAttributes &attributes, uint32_t depth = 0) const;
size_t GetAttributes(DWARFAttributes &attributes) const;
protected:
DWARFUnit *m_cu;

View File

@ -436,7 +436,8 @@ size_t DWARFDebugInfoEntry::GetAttributes(
if (form_value.ExtractValue(data, &offset)) {
DWARFDIE spec_die = form_value.Reference();
if (spec_die)
spec_die.GetAttributes(attributes, curr_depth + 1);
spec_die.GetDIE()->GetAttributes(spec_die.GetCU(), attributes,
curr_depth + 1);
}
} else {
llvm::Optional<uint8_t> fixed_skip_size = DWARFFormValue::GetFixedSize(form, cu);

View File

@ -47,10 +47,9 @@ public:
bool Extract(const lldb_private::DWARFDataExtractor &data,
const DWARFUnit *cu, lldb::offset_t *offset_ptr);
size_t GetAttributes(const DWARFUnit *cu,
DWARFAttributes &attrs,
uint32_t curr_depth = 0)
const; // "curr_depth" for internal use only, don't set this yourself!!!
size_t GetAttributes(const DWARFUnit *cu, DWARFAttributes &attrs) const {
return GetAttributes(cu, attrs, 0 /* curr_depth */);
}
dw_offset_t
GetAttributeValue(const DWARFUnit *cu, const dw_attr_t attr,
@ -176,6 +175,10 @@ protected:
/// A copy of the DW_TAG value so we don't have to go through the compile
/// unit abbrev table
dw_tag_t m_tag = llvm::dwarf::DW_TAG_null;
private:
size_t GetAttributes(const DWARFUnit *cu, DWARFAttributes &attrs,
uint32_t curr_depth) const;
};
#endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGINFOENTRY_H