summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2014-04-13 04:09:16 +0000
committerLang Hames <lhames@gmail.com>2014-04-13 04:09:16 +0000
commit0563ca1be808a14863d87f3c878c30555328b0bf (patch)
tree735c6c212a5399b3ef44cd675b5c4aefb9d463c4 /llvm/lib
parent9ede5c7dd00b48a1c07d9d08695228a1a68d5c33 (diff)
downloadbcm5719-llvm-0563ca1be808a14863d87f3c878c30555328b0bf.tar.gz
bcm5719-llvm-0563ca1be808a14863d87f3c878c30555328b0bf.zip
[X86] unique_ptr'ify one of X86GenericDisassembler's members.
llvm-svn: 206127
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp17
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86Disassembler.h7
2 files changed, 10 insertions, 14 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
index d5759cda737..6681e77eb79 100644
--- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -74,9 +74,10 @@ static bool translateInstruction(MCInst &target,
InternalInstruction &source,
const MCDisassembler *Dis);
-X86GenericDisassembler::X86GenericDisassembler(const MCSubtargetInfo &STI,
- const MCInstrInfo *MII)
- : MCDisassembler(STI), MII(MII) {
+X86GenericDisassembler::X86GenericDisassembler(
+ const MCSubtargetInfo &STI,
+ std::unique_ptr<const MCInstrInfo> MII)
+ : MCDisassembler(STI), MII(std::move(MII)) {
switch (STI.getFeatureBits() &
(X86::Mode16Bit | X86::Mode32Bit | X86::Mode64Bit)) {
case X86::Mode16Bit:
@@ -93,10 +94,6 @@ X86GenericDisassembler::X86GenericDisassembler(const MCSubtargetInfo &STI,
}
}
-X86GenericDisassembler::~X86GenericDisassembler() {
- delete MII;
-}
-
/// regionReader - a callback function that wraps the readByte method from
/// MemoryObject.
///
@@ -147,7 +144,7 @@ X86GenericDisassembler::getInstruction(MCInst &instr,
(const void*)&region,
loggerFn,
(void*)&vStream,
- (const void*)MII,
+ (const void*)MII.get(),
address,
fMode);
@@ -804,8 +801,8 @@ static bool translateInstruction(MCInst &mcInst,
static MCDisassembler *createX86Disassembler(const Target &T,
const MCSubtargetInfo &STI) {
- return new X86Disassembler::X86GenericDisassembler(STI,
- T.createMCInstrInfo());
+ std::unique_ptr<const MCInstrInfo> MII(T.createMCInstrInfo());
+ return new X86Disassembler::X86GenericDisassembler(STI, std::move(MII));
}
extern "C" void LLVMInitializeX86Disassembler() {
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.h b/llvm/lib/Target/X86/Disassembler/X86Disassembler.h
index 4e6e2971aac..001dcc50e95 100644
--- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.h
+++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.h
@@ -101,13 +101,12 @@ namespace X86Disassembler {
/// All each platform class should have to do is subclass the constructor, and
/// provide a different disassemblerMode value.
class X86GenericDisassembler : public MCDisassembler {
- const MCInstrInfo *MII;
+ std::unique_ptr<const MCInstrInfo> MII;
public:
/// Constructor - Initializes the disassembler.
///
- X86GenericDisassembler(const MCSubtargetInfo &STI, const MCInstrInfo *MII);
-private:
- ~X86GenericDisassembler();
+ X86GenericDisassembler(const MCSubtargetInfo &STI,
+ std::unique_ptr<const MCInstrInfo> MII);
public:
/// getInstruction - See MCDisassembler.
OpenPOWER on IntegriCloud