Remove last use of InMemoryStruct in llvm-objdump.

llvm-svn: 178979
This commit is contained in:
Rafael Espindola 2013-04-07 14:40:18 +00:00
parent b47a69acde
commit b7b11f7bac
3 changed files with 20 additions and 2 deletions

View File

@ -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) {

View File

@ -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,

View File

@ -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);
}