Skip to content

Commit

Permalink
Merge pull request #5003 from lioncash/memory
Browse files Browse the repository at this point in the history
UICommon: Make GetNewDisassembler() return a unique_ptr
  • Loading branch information
degasus committed Mar 4, 2017
2 parents 01143d7 + 13757b7 commit 3c511f2
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 12 deletions.
6 changes: 3 additions & 3 deletions Source/Core/DolphinWX/Debugger/JitWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
16 changes: 8 additions & 8 deletions Source/Core/UICommon/Disassembler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<HostDisassembler> 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<HostDisassemblerLLVM>("x86_64-none-unknown");
if (arch == "aarch64")
return std::make_unique<HostDisassemblerLLVM>("aarch64-none-unknown", 4, "cortex-a57");
if (arch == "armv7")
return std::make_unique<HostDisassemblerLLVM>("armv7-none-unknown", 4, "cortex-a15");
#elif defined(_M_X86)
if (arch == "x86")
return new HostDisassemblerX86();
return std::make_unique<HostDisassemblerX86>();
#endif
return new HostDisassembler();
return std::make_unique<HostDisassembler>();
}

std::string DisassembleBlock(HostDisassembler* disasm, u32* address, u32* host_instructions_count,
Expand Down
3 changes: 2 additions & 1 deletion Source/Core/UICommon/Disassembler.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#pragma once

#include <memory>
#include "Common/CommonTypes.h"

class HostDisassembler
Expand All @@ -17,6 +18,6 @@ class HostDisassembler
}
};

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,
u32* code_size);

0 comments on commit 3c511f2

Please sign in to comment.