Change MCDisassembler::setSymbolizer to take unique_ptr by value.
authorAhmed Charles <ahmedcharles@gmail.com>
Fri, 7 Mar 2014 09:38:02 +0000 (09:38 +0000)
committerAhmed Charles <ahmedcharles@gmail.com>
Fri, 7 Mar 2014 09:38:02 +0000 (09:38 +0000)
This changes the interface to be more explicit that ownership is being
transferred.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203223 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCDisassembler.h
lib/MC/MCDisassembler.cpp
lib/MC/MCDisassembler/Disassembler.cpp
tools/llvm-objdump/llvm-objdump.cpp

index de6020b610136ab919eb0a34d7e0bac6498cc216..3d3a1bf4bad4e4961e734db292986796c4f06e48 100644 (file)
@@ -114,7 +114,7 @@ public:
 
   /// Set \p Symzer as the current symbolizer.
   /// This takes ownership of \p Symzer, and deletes the previously set one.
-  void setSymbolizer(std::unique_ptr<MCSymbolizer> &Symzer);
+  void setSymbolizer(std::unique_ptr<MCSymbolizer> Symzer);
 
   /// Sets up an external symbolizer that uses the C API callbacks.
   void setupForSymbolicDisassembly(LLVMOpInfoCallback GetOpInfo,
index afd3cb7ff04e66a420854cb7cd0fa456c9f612f0..18f0f2f0b2bcfd16ad575c99bd3cc24f1fe86d1d 100644 (file)
@@ -55,6 +55,6 @@ void MCDisassembler::tryAddingPcLoadReferenceComment(int64_t Value,
     Symbolizer->tryAddingPcLoadReferenceComment(cStream, Value, Address);
 }
 
-void MCDisassembler::setSymbolizer(std::unique_ptr<MCSymbolizer> &Symzer) {
-  Symbolizer.reset(Symzer.release());
+void MCDisassembler::setSymbolizer(std::unique_ptr<MCSymbolizer> Symzer) {
+  Symbolizer = std::move(Symzer);
 }
index 4e4bad14308e31e492fd4a8d8fa62e31b371e69c..f3c7f115e81879671427101ed3f48adb34492097 100644 (file)
@@ -84,7 +84,7 @@ LLVMDisasmContextRef LLVMCreateDisasmCPU(const char *Triple, const char *CPU,
 
   std::unique_ptr<MCSymbolizer> Symbolizer(TheTarget->createMCSymbolizer(
       Triple, GetOpInfo, SymbolLookUp, DisInfo, Ctx, RelInfo.release()));
-  DisAsm->setSymbolizer(Symbolizer);
+  DisAsm->setSymbolizer(std::move(Symbolizer));
   DisAsm->setupForSymbolicDisassembly(GetOpInfo, SymbolLookUp, DisInfo,
                                       Ctx, RelInfo);
   // Set up the instruction printer.
index d93e477b5c168d1af60ba316fac9d4f24ebe5b37..3e16ca0b327d1ebaac48033b9c9712084e023baf 100644 (file)
@@ -327,7 +327,7 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) {
       std::unique_ptr<MCSymbolizer> Symzer(
           MCObjectSymbolizer::createObjectSymbolizer(*Ctx.get(), RelInfo, Obj));
       if (Symzer)
-        DisAsm->setSymbolizer(Symzer);
+        DisAsm->setSymbolizer(std::move(Symzer));
     }
   }