Constify a few things with DotDebugLocEntry.
[oota-llvm.git] / lib / MC / MCDisassembler.cpp
index c4cdbba26e2f10b1da66ffba39c8cca808ddcef2..afd3cb7ff04e66a420854cb7cd0fa456c9f612f0 100644 (file)
@@ -16,16 +16,25 @@ using namespace llvm;
 MCDisassembler::~MCDisassembler() {
 }
 
-void
-MCDisassembler::setupForSymbolicDisassembly(
-    LLVMOpInfoCallback GetOpInfo,
-    LLVMSymbolLookupCallback SymbolLookUp,
-    void *DisInfo,
-    MCContext *Ctx,
-    OwningPtr<MCRelocationInfo> &RelInfo) {
+void MCDisassembler::setupForSymbolicDisassembly(
+    LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp,
+    void *DisInfo, MCContext *Ctx, std::unique_ptr<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));
+}
+
+void MCDisassembler::setupForSymbolicDisassembly(
+    LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp,
+    void *DisInfo, MCContext *Ctx, OwningPtr<MCRelocationInfo> &RelInfo) {
+  std::unique_ptr<MCRelocationInfo> MCRI;
+  setupForSymbolicDisassembly(GetOpInfo, SymbolLookUp, DisInfo, Ctx, MCRI);
+  RelInfo = std::move(MCRI);
 }
 
 bool MCDisassembler::tryAddingSymbolicOperand(MCInst &Inst, int64_t Value,
@@ -46,6 +55,6 @@ void MCDisassembler::tryAddingPcLoadReferenceComment(int64_t Value,
     Symbolizer->tryAddingPcLoadReferenceComment(cStream, Value, Address);
 }
 
-void MCDisassembler::setSymbolizer(OwningPtr<MCSymbolizer> &Symzer) {
-  Symbolizer.reset(Symzer.take());
+void MCDisassembler::setSymbolizer(std::unique_ptr<MCSymbolizer> &Symzer) {
+  Symbolizer.reset(Symzer.release());
 }