DSPCore: Make the DSP emitter global a unique_ptr
This commit is contained in:
parent
c16c2d9356
commit
78565fabbc
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <array>
|
#include <array>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include "Common/CommonFuncs.h"
|
#include "Common/CommonFuncs.h"
|
||||||
#include "Common/CommonTypes.h"
|
#include "Common/CommonTypes.h"
|
||||||
|
@ -26,7 +27,7 @@ DSPBreakpoints dsp_breakpoints;
|
||||||
static DSPCoreState core_state = DSPCORE_STOP;
|
static DSPCoreState core_state = DSPCORE_STOP;
|
||||||
u16 cyclesLeft = 0;
|
u16 cyclesLeft = 0;
|
||||||
bool init_hax = false;
|
bool init_hax = false;
|
||||||
DSPEmitter *dspjit = nullptr;
|
std::unique_ptr<DSPEmitter> dspjit;
|
||||||
std::unique_ptr<DSPCaptureLogger> g_dsp_cap;
|
std::unique_ptr<DSPCaptureLogger> g_dsp_cap;
|
||||||
static Common::Event step_event;
|
static Common::Event step_event;
|
||||||
|
|
||||||
|
@ -102,7 +103,6 @@ bool DSPCore_Init(const DSPInitOptions& opts)
|
||||||
g_dsp.step_counter = 0;
|
g_dsp.step_counter = 0;
|
||||||
cyclesLeft = 0;
|
cyclesLeft = 0;
|
||||||
init_hax = false;
|
init_hax = false;
|
||||||
dspjit = nullptr;
|
|
||||||
|
|
||||||
g_dsp.irom = (u16*)AllocateMemoryPages(DSP_IROM_BYTE_SIZE);
|
g_dsp.irom = (u16*)AllocateMemoryPages(DSP_IROM_BYTE_SIZE);
|
||||||
g_dsp.iram = (u16*)AllocateMemoryPages(DSP_IRAM_BYTE_SIZE);
|
g_dsp.iram = (u16*)AllocateMemoryPages(DSP_IRAM_BYTE_SIZE);
|
||||||
|
@ -147,7 +147,7 @@ bool DSPCore_Init(const DSPInitOptions& opts)
|
||||||
|
|
||||||
// Initialize JIT, if necessary
|
// Initialize JIT, if necessary
|
||||||
if (opts.core_type == DSPInitOptions::CORE_JIT)
|
if (opts.core_type == DSPInitOptions::CORE_JIT)
|
||||||
dspjit = new DSPEmitter();
|
dspjit = std::make_unique<DSPEmitter>();
|
||||||
|
|
||||||
g_dsp_cap.reset(opts.capture_logger);
|
g_dsp_cap.reset(opts.capture_logger);
|
||||||
|
|
||||||
|
@ -162,11 +162,7 @@ void DSPCore_Shutdown()
|
||||||
|
|
||||||
core_state = DSPCORE_STOP;
|
core_state = DSPCORE_STOP;
|
||||||
|
|
||||||
if (dspjit)
|
dspjit.reset();
|
||||||
{
|
|
||||||
delete dspjit;
|
|
||||||
dspjit = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
DSPCore_FreeMemoryPages();
|
DSPCore_FreeMemoryPages();
|
||||||
|
|
||||||
|
|
|
@ -297,9 +297,9 @@ struct SDSP
|
||||||
|
|
||||||
extern SDSP g_dsp;
|
extern SDSP g_dsp;
|
||||||
extern DSPBreakpoints dsp_breakpoints;
|
extern DSPBreakpoints dsp_breakpoints;
|
||||||
extern DSPEmitter *dspjit;
|
|
||||||
extern u16 cyclesLeft;
|
extern u16 cyclesLeft;
|
||||||
extern bool init_hax;
|
extern bool init_hax;
|
||||||
|
extern std::unique_ptr<DSPEmitter> dspjit;
|
||||||
extern std::unique_ptr<DSPCaptureLogger> g_dsp_cap;
|
extern std::unique_ptr<DSPCaptureLogger> g_dsp_cap;
|
||||||
|
|
||||||
struct DSPInitOptions
|
struct DSPInitOptions
|
||||||
|
|
Loading…
Reference in New Issue