forked from OSchip/llvm-project
[lldb] Remove DWARFUnit::AppendDIEsWithTag
This function is not very useful, as it's forcing a materialization of the returned DIEs, and calling it is not substantially simpler than just iterating over the DIEs manually. Delete it, and rewrite the single caller.
This commit is contained in:
parent
d105ea26e8
commit
e40ac74dac
|
@ -399,24 +399,6 @@ DWARFDIE DWARFUnit::LookupAddress(const dw_addr_t address) {
|
|||
return DWARFDIE();
|
||||
}
|
||||
|
||||
size_t DWARFUnit::AppendDIEsWithTag(const dw_tag_t tag,
|
||||
std::vector<DWARFDIE> &dies,
|
||||
uint32_t depth) const {
|
||||
size_t old_size = dies.size();
|
||||
{
|
||||
llvm::sys::ScopedReader lock(m_die_array_mutex);
|
||||
DWARFDebugInfoEntry::const_iterator pos;
|
||||
DWARFDebugInfoEntry::const_iterator end = m_die_array.end();
|
||||
for (pos = m_die_array.begin(); pos != end; ++pos) {
|
||||
if (pos->Tag() == tag)
|
||||
dies.emplace_back(this, &(*pos));
|
||||
}
|
||||
}
|
||||
|
||||
// Return the number of DIEs added to the collection
|
||||
return dies.size() - old_size;
|
||||
}
|
||||
|
||||
size_t DWARFUnit::GetDebugInfoSize() const {
|
||||
return GetLengthByteSize() + GetLength() - GetHeaderByteSize();
|
||||
}
|
||||
|
|
|
@ -95,8 +95,6 @@ public:
|
|||
ScopedExtractDIEs ExtractDIEsScoped();
|
||||
|
||||
DWARFDIE LookupAddress(const dw_addr_t address);
|
||||
size_t AppendDIEsWithTag(const dw_tag_t tag, std::vector<DWARFDIE> &dies,
|
||||
uint32_t depth = UINT32_MAX) const;
|
||||
bool Verify(lldb_private::Stream *s) const;
|
||||
virtual void Dump(lldb_private::Stream *s) const = 0;
|
||||
/// Get the data that contains the DIE information for this unit.
|
||||
|
|
|
@ -844,10 +844,12 @@ size_t SymbolFileDWARF::ParseFunctions(CompileUnit &comp_unit) {
|
|||
return 0;
|
||||
|
||||
size_t functions_added = 0;
|
||||
std::vector<DWARFDIE> function_dies;
|
||||
dwarf_cu->GetNonSkeletonUnit().AppendDIEsWithTag(DW_TAG_subprogram,
|
||||
function_dies);
|
||||
for (const DWARFDIE &die : function_dies) {
|
||||
dwarf_cu = &dwarf_cu->GetNonSkeletonUnit();
|
||||
for (DWARFDebugInfoEntry &entry : dwarf_cu->dies()) {
|
||||
if (entry.Tag() != DW_TAG_subprogram)
|
||||
continue;
|
||||
|
||||
DWARFDIE die(dwarf_cu, &entry);
|
||||
if (comp_unit.FindFunctionByUID(die.GetID()))
|
||||
continue;
|
||||
if (ParseFunction(comp_unit, die))
|
||||
|
|
Loading…
Reference in New Issue