[PATCH] Change MCDisassembler::setSymbolizer to take unique_ptr by value.
Ahmed Charles
acharles at outlook.com
Thu Mar 6 23:46:01 PST 2014
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));
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2999.1.patch
Type: text/x-patch
Size: 2163 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140306/7aece5bb/attachment.bin>
More information about the llvm-commits
mailing list