diff options
Diffstat (limited to 'llvm/lib/MC/MCDisassembler.cpp')
-rw-r--r-- | llvm/lib/MC/MCDisassembler.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCDisassembler.cpp b/llvm/lib/MC/MCDisassembler.cpp index c4cdbba26e2..bfd51ab1af9 100644 --- a/llvm/lib/MC/MCDisassembler.cpp +++ b/llvm/lib/MC/MCDisassembler.cpp @@ -23,9 +23,14 @@ MCDisassembler::setupForSymbolicDisassembly( void *DisInfo, MCContext *Ctx, OwningPtr<MCRelocationInfo> &RelInfo) { + this->GetOpInfo = GetOpInfo; + this->SymbolLookUp = SymbolLookUp; + this->DisInfo = DisInfo; + this->Ctx = Ctx; assert(Ctx != 0 && "No MCContext given for symbolic disassembly"); - Symbolizer.reset(new MCExternalSymbolizer(*Ctx, RelInfo, GetOpInfo, - SymbolLookUp, DisInfo)); + if (!Symbolizer) + Symbolizer.reset(new MCExternalSymbolizer(*Ctx, RelInfo, GetOpInfo, + SymbolLookUp, DisInfo)); } bool MCDisassembler::tryAddingSymbolicOperand(MCInst &Inst, int64_t Value, |