Remove last use of InMemoryStruct in llvm-objdump.
authorRafael Espindola <rafael.espindola@gmail.com>
Sun, 7 Apr 2013 14:40:18 +0000 (14:40 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sun, 7 Apr 2013 14:40:18 +0000 (14:40 +0000)
llvm-svn: 178979

llvm/include/llvm/Object/MachO.h
llvm/lib/Object/MachOObjectFile.cpp
llvm/tools/llvm-objdump/MachODump.cpp

index 8543ecc..f026e6c 100644 (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) {
index 1eb14f3..9482769 100644 (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,
index b122cd3..894e769 100644 (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);
     }