ElfSection* ElfFile::FindSection(uint32 type) const { int32 count = fSections.CountItems(); for (int32 i = 0; i < count; i++) { ElfSection* section = fSections.ItemAt(i); if (section->Type() == type) return section; } return NULL; }
bool ElfFile::_FindSymbolSections(ElfSection*& _symbolSection, ElfSection*& _stringSection, uint32 type) const { // get the symbol table section ElfSection* symbolSection = FindSection(type); if (symbolSection == NULL) return false; // The symbol table section is linked to the corresponding string section. ElfSection* stringSection = SectionAt(symbolSection->LinkIndex()); if (stringSection == NULL || stringSection->Type() != SHT_STRTAB) return false; _symbolSection = symbolSection; _stringSection = stringSection; return true; }