summaryrefslogtreecommitdiff
path: root/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-04-10 15:33:44 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-04-10 15:33:44 +0000
commitb08c6df6787971502bd51e30b0f1038c1ea0dc2c (patch)
treefff4bf6f50736a6923207f162802aab711c8a5be /lib/Object/MachOObjectFile.cpp
parent05b96447ab27c394c6cc161ff9b2515ad673d74f (diff)
downloadllvm-b08c6df6787971502bd51e30b0f1038c1ea0dc2c.tar.gz
llvm-b08c6df6787971502bd51e30b0f1038c1ea0dc2c.tar.bz2
llvm-b08c6df6787971502bd51e30b0f1038c1ea0dc2c.tar.xz
Template MachOObjectFile over endianness too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179179 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Object/MachOObjectFile.cpp')
-rw-r--r--lib/Object/MachOObjectFile.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/Object/MachOObjectFile.cpp b/lib/Object/MachOObjectFile.cpp
index 33c63b0f89..f4df8e012c 100644
--- a/lib/Object/MachOObjectFile.cpp
+++ b/lib/Object/MachOObjectFile.cpp
@@ -35,7 +35,7 @@ MachOObjectFileBase::MachOObjectFileBase(MemoryBuffer *Object, bool Is64bits,
}
bool MachOObjectFileBase::is64Bit() const {
- return isa<MachOObjectFile<true> >(this);
+ return isa<MachOObjectFile64Le>(this);
}
const MachOObjectFileBase::LoadCommand *
@@ -86,9 +86,9 @@ ObjectFile *ObjectFile::createMachOObjectFile(MemoryBuffer *Buffer) {
bool Is64Bits = Magic == "\xFE\xED\xFA\xCF" || Magic == "\xCF\xFA\xED\xFE";
ObjectFile *Ret;
if (Is64Bits)
- Ret = new MachOObjectFile<true>(Buffer, ec);
+ Ret = new MachOObjectFile64Le(Buffer, ec);
else
- Ret = new MachOObjectFile<false>(Buffer, ec);
+ Ret = new MachOObjectFile32Le(Buffer, ec);
if (ec)
return NULL;
return Ret;
@@ -127,8 +127,8 @@ MachOObjectFileBase::getSymbolTableEntryBase(DataRefImpl DRI,
unsigned Index = DRI.d.b;
unsigned SymbolTableEntrySize = is64Bit() ?
- sizeof(MachOObjectFile<true>::SymbolTableEntry) :
- sizeof(MachOObjectFile<false>::SymbolTableEntry);
+ sizeof(MachOObjectFile64Le::SymbolTableEntry) :
+ sizeof(MachOObjectFile32Le::SymbolTableEntry);
uint64_t Offset = SymbolTableOffset + Index * SymbolTableEntrySize;
StringRef Data = getData(Offset, SymbolTableEntrySize);
@@ -314,10 +314,10 @@ MachOObjectFileBase::getSectionBase(DataRefImpl DRI) const {
bool Is64 = is64Bit();
unsigned SegmentLoadSize =
- Is64 ? sizeof(MachOObjectFile<true>::SegmentLoadCommand) :
- sizeof(MachOObjectFile<false>::SegmentLoadCommand);
- unsigned SectionSize = Is64 ? sizeof(MachOObjectFile<true>::Section) :
- sizeof(MachOObjectFile<false>::Section);
+ Is64 ? sizeof(MachOObjectFile64Le::SegmentLoadCommand) :
+ sizeof(MachOObjectFile32Le::SegmentLoadCommand);
+ unsigned SectionSize = Is64 ? sizeof(MachOObjectFile64Le::Section) :
+ sizeof(MachOObjectFile32Le::Section);
uintptr_t SectionAddr = CommandAddr + SegmentLoadSize + DRI.d.b * SectionSize;
return reinterpret_cast<const SectionBase*>(SectionAddr);