diff options
author | Lang Hames <lhames@gmail.com> | 2014-04-13 04:09:16 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2014-04-13 04:09:16 +0000 |
commit | 0563ca1be808a14863d87f3c878c30555328b0bf (patch) | |
tree | 735c6c212a5399b3ef44cd675b5c4aefb9d463c4 /llvm/lib | |
parent | 9ede5c7dd00b48a1c07d9d08695228a1a68d5c33 (diff) | |
download | bcm5719-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.cpp | 17 | ||||
-rw-r--r-- | llvm/lib/Target/X86/Disassembler/X86Disassembler.h | 7 |
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*)®ion, 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. |