Merge pull request #3525 from lioncash/ptr

DSPEmulator: Make CreateDSPEmulator return a unique_ptr
This commit is contained in:
Pierre Bourdon 2016-01-19 23:54:58 +01:00
commit 991d3f6f96
3 changed files with 15 additions and 14 deletions

View File

@ -2,15 +2,16 @@
// Licensed under GPLv2+ // Licensed under GPLv2+
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Core/DSPEmulator.h" #include <memory>
#include "Core/DSPEmulator.h"
#include "Core/HW/DSPHLE/DSPHLE.h" #include "Core/HW/DSPHLE/DSPHLE.h"
#include "Core/HW/DSPLLE/DSPLLE.h" #include "Core/HW/DSPLLE/DSPLLE.h"
DSPEmulator *CreateDSPEmulator(bool HLE) std::unique_ptr<DSPEmulator> CreateDSPEmulator(bool hle)
{ {
if (HLE) if (hle)
return new DSPHLE(); return std::make_unique<DSPHLE>();
else
return new DSPLLE(); return std::make_unique<DSPLLE>();
} }

View File

@ -4,6 +4,7 @@
#pragma once #pragma once
#include <memory>
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
class PointerWrap; class PointerWrap;
@ -32,4 +33,4 @@ public:
virtual u32 DSP_UpdateRate() = 0; virtual u32 DSP_UpdateRate() = 0;
}; };
DSPEmulator *CreateDSPEmulator(bool HLE); std::unique_ptr<DSPEmulator> CreateDSPEmulator(bool hle);

View File

@ -23,11 +23,11 @@
// the just used buffer through the AXList (or whatever it might be called in // the just used buffer through the AXList (or whatever it might be called in
// Nintendo games). // Nintendo games).
#include "AudioCommon/AudioCommon.h" #include <memory>
#include "AudioCommon/AudioCommon.h"
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
#include "Common/MemoryUtil.h" #include "Common/MemoryUtil.h"
#include "Core/ConfigManager.h" #include "Core/ConfigManager.h"
#include "Core/CoreTiming.h" #include "Core/CoreTiming.h"
#include "Core/DSPEmulator.h" #include "Core/DSPEmulator.h"
@ -167,7 +167,7 @@ static ARAM_Info g_ARAM_Info;
static u16 g_AR_MODE; static u16 g_AR_MODE;
static u16 g_AR_REFRESH; static u16 g_AR_REFRESH;
static DSPEmulator *dsp_emulator; static std::unique_ptr<DSPEmulator> dsp_emulator;
static int dsp_slice = 0; static int dsp_slice = 0;
static bool dsp_is_lle = false; static bool dsp_is_lle = false;
@ -230,9 +230,9 @@ void FlushInstantDMA(u32 address)
} }
} }
DSPEmulator *GetDSPEmulator() DSPEmulator* GetDSPEmulator()
{ {
return dsp_emulator; return dsp_emulator.get();
} }
void Init(bool hle) void Init(bool hle)
@ -284,8 +284,7 @@ void Shutdown()
} }
dsp_emulator->Shutdown(); dsp_emulator->Shutdown();
delete dsp_emulator; dsp_emulator.reset();
dsp_emulator = nullptr;
} }
void RegisterMMIO(MMIO::Mapping* mmio, u32 base) void RegisterMMIO(MMIO::Mapping* mmio, u32 base)