diff options
Diffstat (limited to 'llvm/lib/Object/MachOObject.cpp')
| -rw-r--r-- | llvm/lib/Object/MachOObject.cpp | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/lib/Object/MachOObject.cpp b/llvm/lib/Object/MachOObject.cpp index 45c9bff..33890f6 100644 --- a/llvm/lib/Object/MachOObject.cpp +++ b/llvm/lib/Object/MachOObject.cpp @@ -308,3 +308,31 @@ void MachOObject::ReadRelocationEntry(uint64_t RelocationTableOffset,                       Index * sizeof(macho::RelocationEntry));    ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res);  } + +template<> +void SwapStruct(macho::SymbolTableEntry &Value) { +  SwapValue(Value.StringIndex); +  SwapValue(Value.Flags); +  SwapValue(Value.Value); +} +void MachOObject::ReadSymbolTableEntry(uint64_t SymbolTableOffset, +                                       unsigned Index, +                           InMemoryStruct<macho::SymbolTableEntry> &Res) const { +  uint64_t Offset = (SymbolTableOffset + +                     Index * sizeof(macho::SymbolTableEntry)); +  ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res); +} + +template<> +void SwapStruct(macho::Symbol64TableEntry &Value) { +  SwapValue(Value.StringIndex); +  SwapValue(Value.Flags); +  SwapValue(Value.Value); +} +void MachOObject::ReadSymbol64TableEntry(uint64_t SymbolTableOffset, +                                       unsigned Index, +                         InMemoryStruct<macho::Symbol64TableEntry> &Res) const { +  uint64_t Offset = (SymbolTableOffset + +                     Index * sizeof(macho::Symbol64TableEntry)); +  ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res); +}  | 
