diff options
-rw-r--r-- | include/llvm/Object/MachO.h | 10 | ||||
-rw-r--r-- | tools/llvm-readobj/MachODumper.cpp | 32 |
2 files changed, 10 insertions, 32 deletions
diff --git a/include/llvm/Object/MachO.h b/include/llvm/Object/MachO.h index ba0ffa8b32..aeb6bd3dc8 100644 --- a/include/llvm/Object/MachO.h +++ b/include/llvm/Object/MachO.h @@ -156,6 +156,10 @@ public: getLinkeditDataLoadCommand(LoadCommandInfo LCI) const; const MachOFormat::Section64 *getSection64(DataRefImpl DRI) const; const MachOFormat::Section *getSection(DataRefImpl DRI) const; + const MachOFormat::Symbol64TableEntry * + getSymbol64TableEntry(DataRefImpl DRI) const; + const MachOFormat::SymbolTableEntry * + getSymbolTableEntry(DataRefImpl DRI) const; const MachOObject *getObject() const { return MachOObj.get(); } @@ -225,16 +229,10 @@ private: void moveToNextSection(DataRefImpl &DRI) const; const MachOFormat::SymbolTableEntry * - getSymbolTableEntry(DataRefImpl DRI) const; - - const MachOFormat::SymbolTableEntry * getSymbolTableEntry(DataRefImpl DRI, const MachOFormat::SymtabLoadCommand *SymtabLoadCmd) const; const MachOFormat::Symbol64TableEntry * - getSymbol64TableEntry(DataRefImpl DRI) const; - - const MachOFormat::Symbol64TableEntry * getSymbol64TableEntry(DataRefImpl DRI, const MachOFormat::SymtabLoadCommand *SymtabLoadCmd) const; diff --git a/tools/llvm-readobj/MachODumper.cpp b/tools/llvm-readobj/MachODumper.cpp index 717569cd43..8f37b9a183 100644 --- a/tools/llvm-readobj/MachODumper.cpp +++ b/tools/llvm-readobj/MachODumper.cpp @@ -197,38 +197,20 @@ static void getSection(const MachOObjectFile *Obj, } } -static void getSymbolTableEntry(const MachOObject *MachO, - DataRefImpl DRI, - InMemoryStruct<macho::SymbolTableEntry> &Res) { - InMemoryStruct<macho::SymtabLoadCommand> SymtabLoadCmd; - LoadCommandInfo LCI = MachO->getLoadCommandInfo(DRI.d.a); - MachO->ReadSymtabLoadCommand(LCI, SymtabLoadCmd); - MachO->ReadSymbolTableEntry(SymtabLoadCmd->SymbolTableOffset, DRI.d.b, Res); -} - -static void getSymbol64TableEntry(const MachOObject *MachO, - DataRefImpl DRI, - InMemoryStruct<macho::Symbol64TableEntry> &Res) { - InMemoryStruct<macho::SymtabLoadCommand> SymtabLoadCmd; - LoadCommandInfo LCI = MachO->getLoadCommandInfo(DRI.d.a); - MachO->ReadSymtabLoadCommand(LCI, SymtabLoadCmd); - MachO->ReadSymbol64TableEntry(SymtabLoadCmd->SymbolTableOffset, DRI.d.b, Res); -} - -static void getSymbol(const MachOObject *MachOObj, +static void getSymbol(const MachOObjectFile *Obj, DataRefImpl DRI, MachOSymbol &Symbol) { + const MachOObject *MachOObj = Obj->getObject(); if (MachOObj->is64Bit()) { - InMemoryStruct<macho::Symbol64TableEntry> Entry; - getSymbol64TableEntry(MachOObj, DRI, Entry); + const MachOFormat::Symbol64TableEntry *Entry = + Obj->getSymbol64TableEntry( DRI); Symbol.StringIndex = Entry->StringIndex; Symbol.Type = Entry->Type; Symbol.SectionIndex = Entry->SectionIndex; Symbol.Flags = Entry->Flags; Symbol.Value = Entry->Value; } else { - InMemoryStruct<macho::SymbolTableEntry> Entry; - getSymbolTableEntry(MachOObj, DRI, Entry); + const MachOFormat::SymbolTableEntry *Entry = Obj->getSymbolTableEntry(DRI); Symbol.StringIndex = Entry->StringIndex; Symbol.Type = Entry->Type; Symbol.SectionIndex = Entry->SectionIndex; @@ -397,10 +379,8 @@ void MachODumper::printSymbol(symbol_iterator SymI) { if (SymI->getName(SymbolName)) SymbolName = ""; - const MachOObject *MachO = const_cast<MachOObjectFile*>(Obj)->getObject(); - MachOSymbol Symbol; - getSymbol(MachO, SymI->getRawDataRefImpl(), Symbol); + getSymbol(Obj, SymI->getRawDataRefImpl(), Symbol); StringRef SectionName; section_iterator SecI(Obj->end_sections()); |