[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); return IsValid() && GetDWARF()->Supports_DW_AT_APPLE_objc_complete_type(m_cu);
} }
size_t DWARFBaseDIE::GetAttributes(DWARFAttributes &attributes, size_t DWARFBaseDIE::GetAttributes(DWARFAttributes &attributes) const {
uint32_t depth) const {
if (IsValid()) if (IsValid())
return m_die->GetAttributes(m_cu, attributes, depth); return m_die->GetAttributes(m_cu, attributes);
if (depth == 0) attributes.Clear();
attributes.Clear();
return 0; return 0;
} }

View File

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

View File

@ -436,7 +436,8 @@ size_t DWARFDebugInfoEntry::GetAttributes(
if (form_value.ExtractValue(data, &offset)) { if (form_value.ExtractValue(data, &offset)) {
DWARFDIE spec_die = form_value.Reference(); DWARFDIE spec_die = form_value.Reference();
if (spec_die) if (spec_die)
spec_die.GetAttributes(attributes, curr_depth + 1); spec_die.GetDIE()->GetAttributes(spec_die.GetCU(), attributes,
curr_depth + 1);
} }
} else { } else {
llvm::Optional<uint8_t> fixed_skip_size = DWARFFormValue::GetFixedSize(form, cu); 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, bool Extract(const lldb_private::DWARFDataExtractor &data,
const DWARFUnit *cu, lldb::offset_t *offset_ptr); const DWARFUnit *cu, lldb::offset_t *offset_ptr);
size_t GetAttributes(const DWARFUnit *cu, size_t GetAttributes(const DWARFUnit *cu, DWARFAttributes &attrs) const {
DWARFAttributes &attrs, return GetAttributes(cu, attrs, 0 /* curr_depth */);
uint32_t curr_depth = 0) }
const; // "curr_depth" for internal use only, don't set this yourself!!!
dw_offset_t dw_offset_t
GetAttributeValue(const DWARFUnit *cu, const dw_attr_t attr, 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 /// A copy of the DW_TAG value so we don't have to go through the compile
/// unit abbrev table /// unit abbrev table
dw_tag_t m_tag = llvm::dwarf::DW_TAG_null; 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 #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGINFOENTRY_H