aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObject.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-11-27 13:46:11 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-11-27 13:46:11 +0000
commit8680ce6ffc72ca133ad58409afe0362c58095784 (patch)
tree8ac59552649846e6f26037ff81a837b3d3579d9e /llvm/lib/Object/MachOObject.cpp
parent0ac77d526db7e094dbf50f5290032b4b9152c56f (diff)
downloadllvm-8680ce6ffc72ca133ad58409afe0362c58095784.zip
llvm-8680ce6ffc72ca133ad58409afe0362c58095784.tar.gz
llvm-8680ce6ffc72ca133ad58409afe0362c58095784.tar.bz2
macho-dump: Add support for dumping string table data.
llvm-svn: 120217
Diffstat (limited to 'llvm/lib/Object/MachOObject.cpp')
-rw-r--r--llvm/lib/Object/MachOObject.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Object/MachOObject.cpp b/llvm/lib/Object/MachOObject.cpp
index f5bc73a..45c9bff 100644
--- a/llvm/lib/Object/MachOObject.cpp
+++ b/llvm/lib/Object/MachOObject.cpp
@@ -57,7 +57,7 @@ MachOObject::MachOObject(MemoryBuffer *Buffer_, bool IsLittleEndian_,
bool Is64Bit_)
: Buffer(Buffer_), IsLittleEndian(IsLittleEndian_), Is64Bit(Is64Bit_),
IsSwappedEndian(IsLittleEndian != sys::isLittleEndianHost()),
- LoadCommands(0), NumLoadedCommands(0) {
+ HasStringTable(false), LoadCommands(0), NumLoadedCommands(0) {
// Load the common header.
memcpy(&Header, Buffer->getBuffer().data(), sizeof(Header));
if (IsSwappedEndian) {
@@ -125,6 +125,12 @@ MachOObject *MachOObject::LoadFromBuffer(MemoryBuffer *Buffer,
return Object.take();
}
+void MachOObject::RegisterStringTable(macho::SymtabLoadCommand &SLC) {
+ HasStringTable = true;
+ StringTable = Buffer->getBuffer().substr(SLC.StringTableOffset,
+ SLC.StringTableSize);
+}
+
const MachOObject::LoadCommandInfo &
MachOObject::getLoadCommandInfo(unsigned Index) const {
assert(Index < getHeader().NumLoadCommands && "Invalid index!");