diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-07 14:40:18 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-07 14:40:18 +0000 |
commit | 196abbffe9b7a760593d68b99cbb5f961efc8e2a (patch) | |
tree | 48299b2740cd291cc068e4ab2d68bbf213c67652 | |
parent | f0e3ca012bc7dd6b95c091a7f5f147794983cf97 (diff) | |
download | external_llvm-196abbffe9b7a760593d68b99cbb5f961efc8e2a.zip external_llvm-196abbffe9b7a760593d68b99cbb5f961efc8e2a.tar.gz external_llvm-196abbffe9b7a760593d68b99cbb5f961efc8e2a.tar.bz2 |
Remove last use of InMemoryStruct in llvm-objdump.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178979 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Object/MachO.h | 10 | ||||
-rw-r--r-- | lib/Object/MachOObjectFile.cpp | 8 | ||||
-rw-r--r-- | tools/llvm-objdump/MachODump.cpp | 4 |
3 files changed, 20 insertions, 2 deletions
diff --git a/include/llvm/Object/MachO.h b/include/llvm/Object/MachO.h index 8543ecc..f026e6c 100644 --- a/include/llvm/Object/MachO.h +++ b/include/llvm/Object/MachO.h @@ -113,6 +113,13 @@ namespace MachOFormat { support::ulittle32_t NumSections; support::ulittle32_t Flags; }; + + struct LinkeditDataLoadCommand { + support::ulittle32_t Type; + support::ulittle32_t Size; + support::ulittle32_t DataOffset; + support::ulittle32_t DataSize; + }; } typedef MachOObject::LoadCommandInfo LoadCommandInfo; @@ -145,6 +152,9 @@ public: ArrayRef<char> getSectionRawName(DataRefImpl Sec) const; ArrayRef<char>getSectionRawFinalSegmentName(DataRefImpl Sec) const; + const MachOFormat::LinkeditDataLoadCommand * + getLinkeditDataLoadCommand(LoadCommandInfo LCI) const; + MachOObject *getObject() { return MachOObj.get(); } static inline bool classof(const Binary *v) { diff --git a/lib/Object/MachOObjectFile.cpp b/lib/Object/MachOObjectFile.cpp index 1eb14f3..9482769 100644 --- a/lib/Object/MachOObjectFile.cpp +++ b/lib/Object/MachOObjectFile.cpp @@ -75,6 +75,14 @@ MachOObjectFile::getSegmentLoadCommand(LoadCommandInfo LCI) const { return reinterpret_cast<const MachOFormat::SegmentLoadCommand*>(Data.data()); } +const MachOFormat::LinkeditDataLoadCommand * +MachOObjectFile::getLinkeditDataLoadCommand(LoadCommandInfo LCI) const { + StringRef Data = MachOObj->getData(LCI.Offset, + sizeof(MachOFormat::LinkeditDataLoadCommand)); + return + reinterpret_cast<const MachOFormat::LinkeditDataLoadCommand*>(Data.data()); +} + const MachOFormat::Segment64LoadCommand * MachOObjectFile::getSegment64LoadCommand(LoadCommandInfo LCI) const { StringRef Data = MachOObj->getData(LCI.Offset, diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp index b122cd3..894e769 100644 --- a/tools/llvm-objdump/MachODump.cpp +++ b/tools/llvm-objdump/MachODump.cpp @@ -223,8 +223,8 @@ static void getSectionsAndSymbols(const macho::Header &Header, if (LCI.Command.Type == macho::LCT_FunctionStarts) { // We found a function starts segment, parse the addresses for later // consumption. - InMemoryStruct<macho::LinkeditDataLoadCommand> LLC; - MachOObj->getObject()->ReadLinkeditDataLoadCommand(LCI, LLC); + const MachOFormat::LinkeditDataLoadCommand *LLC = + MachOObj->getLinkeditDataLoadCommand(LCI); MachOObj->getObject()->ReadULEB128s(LLC->DataOffset, FoundFns); } |