[PATCH] Change MCDisassembler::setSymbolizer to take unique_ptr by value.
David Blaikie
dblaikie at gmail.com
Fri Mar 7 00:01:37 PST 2014
Looks good to me (I assume it compiles successfully (you've updated
all the callers, etc), etc)
On Thu, Mar 6, 2014 at 11:46 PM, Ahmed Charles <acharles at outlook.com> wrote:
> Hi chandlerc, dblaikie,
>
> This changes the interface to be more explicit that ownership is being
> transferred.
>
> http://llvm-reviews.chandlerc.com/D2999
>
> Files:
> include/llvm/MC/MCDisassembler.h
> lib/MC/MCDisassembler.cpp
> lib/MC/MCDisassembler/Disassembler.cpp
> tools/llvm-objdump/llvm-objdump.cpp
>
> Index: include/llvm/MC/MCDisassembler.h
> ===================================================================
> --- include/llvm/MC/MCDisassembler.h
> +++ include/llvm/MC/MCDisassembler.h
> @@ -114,7 +114,7 @@
>
> /// 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: lib/MC/MCDisassembler.cpp
> ===================================================================
> --- lib/MC/MCDisassembler.cpp
> +++ lib/MC/MCDisassembler.cpp
> @@ -55,6 +55,6 @@
> 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: lib/MC/MCDisassembler/Disassembler.cpp
> ===================================================================
> --- lib/MC/MCDisassembler/Disassembler.cpp
> +++ lib/MC/MCDisassembler/Disassembler.cpp
> @@ -84,7 +84,7 @@
>
> 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: tools/llvm-objdump/llvm-objdump.cpp
> ===================================================================
> --- tools/llvm-objdump/llvm-objdump.cpp
> +++ tools/llvm-objdump/llvm-objdump.cpp
> @@ -327,7 +327,7 @@
> std::unique_ptr<MCSymbolizer> Symzer(
> MCObjectSymbolizer::createObjectSymbolizer(*Ctx.get(), RelInfo, Obj));
> if (Symzer)
> - DisAsm->setSymbolizer(Symzer);
> + DisAsm->setSymbolizer(std::move(Symzer));
> }
> }
More information about the llvm-commits
mailing list