mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-15 16:59:18 +01:00
UICommon: Make GetNewDisassembler() return a unique_ptr
Much better than just returning raw memory.
This commit is contained in:
parent
1392b88879
commit
13757b7d35
@ -47,11 +47,11 @@ CJitWindow::CJitWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, cons
|
|||||||
SetSizerAndFit(sizerBig);
|
SetSizerAndFit(sizerBig);
|
||||||
|
|
||||||
#if defined(_M_X86)
|
#if defined(_M_X86)
|
||||||
m_disassembler.reset(GetNewDisassembler("x86"));
|
m_disassembler = GetNewDisassembler("x86");
|
||||||
#elif defined(_M_ARM_64)
|
#elif defined(_M_ARM_64)
|
||||||
m_disassembler.reset(GetNewDisassembler("aarch64"));
|
m_disassembler = GetNewDisassembler("aarch64");
|
||||||
#else
|
#else
|
||||||
m_disassembler.reset(GetNewDisassembler("UNK"));
|
m_disassembler = GetNewDisassembler("UNK");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,20 +151,20 @@ std::string HostDisassemblerX86::DisassembleHostBlock(const u8* code_start, cons
|
|||||||
return x86_disasm.str();
|
return x86_disasm.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
HostDisassembler* GetNewDisassembler(const std::string& arch)
|
std::unique_ptr<HostDisassembler> GetNewDisassembler(const std::string& arch)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_LLVM)
|
#if defined(HAVE_LLVM)
|
||||||
if (arch == "x86")
|
if (arch == "x86")
|
||||||
return new HostDisassemblerLLVM("x86_64-none-unknown");
|
return std::make_unique<HostDisassemblerLLVM>("x86_64-none-unknown");
|
||||||
else if (arch == "aarch64")
|
if (arch == "aarch64")
|
||||||
return new HostDisassemblerLLVM("aarch64-none-unknown", 4, "cortex-a57");
|
return std::make_unique<HostDisassemblerLLVM>("aarch64-none-unknown", 4, "cortex-a57");
|
||||||
else if (arch == "armv7")
|
if (arch == "armv7")
|
||||||
return new HostDisassemblerLLVM("armv7-none-unknown", 4, "cortex-a15");
|
return std::make_unique<HostDisassemblerLLVM>("armv7-none-unknown", 4, "cortex-a15");
|
||||||
#elif defined(_M_X86)
|
#elif defined(_M_X86)
|
||||||
if (arch == "x86")
|
if (arch == "x86")
|
||||||
return new HostDisassemblerX86();
|
return std::make_unique<HostDisassemblerX86>();
|
||||||
#endif
|
#endif
|
||||||
return new HostDisassembler();
|
return std::make_unique<HostDisassembler>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count,
|
std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count,
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
#include "Common/CommonTypes.h"
|
#include "Common/CommonTypes.h"
|
||||||
|
|
||||||
class HostDisassembler
|
class HostDisassembler
|
||||||
@ -17,6 +18,6 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
HostDisassembler* GetNewDisassembler(const std::string& arch);
|
std::unique_ptr<HostDisassembler> GetNewDisassembler(const std::string& arch);
|
||||||
std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count,
|
std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count,
|
||||||
u32* code_size);
|
u32* code_size);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user