summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2018-12-12 14:20:28 +0000
committerPavel Labath <pavel@labath.sk>2018-12-12 14:20:28 +0000
commit5ea7ecdb5e813c616563d7eae604358a83dc96ca (patch)
tree684b062bbc0f0e6ebe2c55625cd4331d41f123db /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
parent78de84719be091be1d6be231a588cda2e21fd74f (diff)
downloadbcm5719-llvm-5ea7ecdb5e813c616563d7eae604358a83dc96ca.tar.gz
bcm5719-llvm-5ea7ecdb5e813c616563d7eae604358a83dc96ca.zip
ELF: Simplify program header iteration
Instead of GetProgramHeaderCount+GetProgramHeaderByIndex, expose an ArrayRef of all program headers, to enable range-based iteration. Instead of GetSegmentDataByIndex, expose GetSegmentData, taking a program header (reference). This makes the code simpler by enabling range-based loops and also allowed to remove some null checks, as it became locally obvious that some pointers can never be null. llvm-svn: 348928
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r--lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h16
1 files changed, 4 insertions, 12 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
index cdf88fa2140..03afc51f047 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
@@ -145,14 +145,8 @@ public:
size_t ReadSectionData(lldb_private::Section *section,
lldb_private::DataExtractor &section_data) override;
- // Returns number of program headers found in the ELF file.
- size_t GetProgramHeaderCount();
-
- // Returns the program header with the given index.
- const elf::ELFProgramHeader *GetProgramHeaderByIndex(lldb::user_id_t id);
-
- // Returns segment data for the given index.
- lldb_private::DataExtractor GetSegmentDataByIndex(lldb::user_id_t id);
+ llvm::ArrayRef<elf::ELFProgramHeader> ProgramHeaders();
+ lldb_private::DataExtractor GetSegmentData(const elf::ELFProgramHeader &H);
llvm::StringRef
StripLinkerSymbolAnnotations(llvm::StringRef symbol_name) const override;
@@ -174,8 +168,6 @@ private:
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr);
typedef std::vector<elf::ELFProgramHeader> ProgramHeaderColl;
- typedef ProgramHeaderColl::iterator ProgramHeaderCollIter;
- typedef ProgramHeaderColl::const_iterator ProgramHeaderCollConstIter;
struct ELFSectionHeaderInfo : public elf::ELFSectionHeader {
lldb_private::ConstString section_name;
@@ -246,8 +238,8 @@ private:
/// Parses all section headers present in this object file and populates
/// m_program_headers. This method will compute the header list only once.
- /// Returns the number of headers parsed.
- size_t ParseProgramHeaders();
+ /// Returns true iff the headers have been successfully parsed.
+ bool ParseProgramHeaders();
/// Parses all section headers present in this object file and populates
/// m_section_headers. This method will compute the header list only once.
OpenPOWER on IntegriCloud