diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2017-07-19 22:27:28 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2017-07-19 22:27:28 +0000 |
commit | c398e67fedaf2d0bdd7e1ad39e52e5200cecd577 (patch) | |
tree | fa77355e93d01080ffd34cc23a8d7c39c7e584b4 /llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp | |
parent | 967d4aa7a0a1da8b5a18a0a9a65af1b79e205041 (diff) | |
download | bcm5719-llvm-c398e67fedaf2d0bdd7e1ad39e52e5200cecd577.tar.gz bcm5719-llvm-c398e67fedaf2d0bdd7e1ad39e52e5200cecd577.zip |
Use delegation instead of inheritance.
This changes DwarfContext to delegate to DwarfObject instead of having
pure virtual methods.
With this DwarfContextInMemory is replaced with an implementation of
DwarfObject that is local to a .cpp file.
llvm-svn: 308543
Diffstat (limited to 'llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp index 001097e56c7..a40635568cd 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp @@ -8,17 +8,18 @@ //===----------------------------------------------------------------------===// #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h" +#include "llvm/DebugInfo/DWARF/DWARFContext.h" using namespace llvm; uint64_t DWARFDataExtractor::getRelocatedValue(uint32_t Size, uint32_t *Off, uint64_t *SecNdx) const { - if (!RelocMap) + if (!Section) return getUnsigned(Off, Size); - RelocAddrMap::const_iterator AI = RelocMap->find(*Off); - if (AI == RelocMap->end()) + Optional<RelocAddrEntry> Rel = Obj->find(*Section, *Off); + if (!Rel) return getUnsigned(Off, Size); if (SecNdx) - *SecNdx = AI->second.SectionIndex; - return getUnsigned(Off, Size) + AI->second.Value; + *SecNdx = Rel->SectionIndex; + return getUnsigned(Off, Size) + Rel->Value; } |