From fd31e60b8ded16754f484b51c2e5f8da05ad8331 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Tue, 9 Jun 2020 13:37:17 +0200 Subject: [PATCH] [nfc] [lldb] Reduce GetAttributes's depth parameter usage Clean the code up a bit for D81334. Differential Revision: https://reviews.llvm.org/D81423 --- lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp | 8 +++----- lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h | 2 +- lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp | 3 ++- lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h | 11 +++++++---- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp index 8bd21c6..c330eff 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp @@ -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; } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h index 48320c8..0bad53f 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h @@ -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; diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp index 7b96c15..a133ce1 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp @@ -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 fixed_skip_size = DWARFFormValue::GetFixedSize(form, cu); diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h index 3fb9c91..7bcff31 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h @@ -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 -- 2.7.4