diff --git a/Source/Core/DolphinWX/Debugger/JitWindow.cpp b/Source/Core/DolphinWX/Debugger/JitWindow.cpp index 1ca19b2195..a62d1ba2f2 100644 --- a/Source/Core/DolphinWX/Debugger/JitWindow.cpp +++ b/Source/Core/DolphinWX/Debugger/JitWindow.cpp @@ -47,11 +47,11 @@ CJitWindow::CJitWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, cons SetSizerAndFit(sizerBig); #if defined(_M_X86) - m_disassembler.reset(GetNewDisassembler("x86")); + m_disassembler = GetNewDisassembler("x86"); #elif defined(_M_ARM_64) - m_disassembler.reset(GetNewDisassembler("aarch64")); + m_disassembler = GetNewDisassembler("aarch64"); #else - m_disassembler.reset(GetNewDisassembler("UNK")); + m_disassembler = GetNewDisassembler("UNK"); #endif } diff --git a/Source/Core/UICommon/Disassembler.cpp b/Source/Core/UICommon/Disassembler.cpp index 14cab2ef9a..597669c99f 100644 --- a/Source/Core/UICommon/Disassembler.cpp +++ b/Source/Core/UICommon/Disassembler.cpp @@ -151,20 +151,20 @@ std::string HostDisassemblerX86::DisassembleHostBlock(const u8* code_start, cons return x86_disasm.str(); } -HostDisassembler* GetNewDisassembler(const std::string& arch) +std::unique_ptr GetNewDisassembler(const std::string& arch) { #if defined(HAVE_LLVM) if (arch == "x86") - return new HostDisassemblerLLVM("x86_64-none-unknown"); - else if (arch == "aarch64") - return new HostDisassemblerLLVM("aarch64-none-unknown", 4, "cortex-a57"); - else if (arch == "armv7") - return new HostDisassemblerLLVM("armv7-none-unknown", 4, "cortex-a15"); + return std::make_unique("x86_64-none-unknown"); + if (arch == "aarch64") + return std::make_unique("aarch64-none-unknown", 4, "cortex-a57"); + if (arch == "armv7") + return std::make_unique("armv7-none-unknown", 4, "cortex-a15"); #elif defined(_M_X86) if (arch == "x86") - return new HostDisassemblerX86(); + return std::make_unique(); #endif - return new HostDisassembler(); + return std::make_unique(); } std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count, diff --git a/Source/Core/UICommon/Disassembler.h b/Source/Core/UICommon/Disassembler.h index 5d1d7eabb4..6f3830122e 100644 --- a/Source/Core/UICommon/Disassembler.h +++ b/Source/Core/UICommon/Disassembler.h @@ -4,6 +4,7 @@ #pragma once +#include #include "Common/CommonTypes.h" class HostDisassembler @@ -17,6 +18,6 @@ public: } }; -HostDisassembler* GetNewDisassembler(const std::string& arch); +std::unique_ptr GetNewDisassembler(const std::string& arch); std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count, u32* code_size);