mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-14 18:58:36 +12:00
Trying to fix potential resource leak
This commit is contained in:
parent
8483b17995
commit
e338c3938b
3 changed files with 24 additions and 9 deletions
|
@ -9,6 +9,11 @@ AudioManager::AudioManager() : m_audio_out(nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioManager::~AudioManager()
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
void AudioManager::Init()
|
void AudioManager::Init()
|
||||||
{
|
{
|
||||||
if (m_audio_out) return;
|
if (m_audio_out) return;
|
||||||
|
|
|
@ -35,6 +35,7 @@ class AudioManager
|
||||||
AudioThread* m_audio_out;
|
AudioThread* m_audio_out;
|
||||||
public:
|
public:
|
||||||
AudioManager();
|
AudioManager();
|
||||||
|
~AudioManager();
|
||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
void Close();
|
void Close();
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
XAudio2Thread::~XAudio2Thread()
|
XAudio2Thread::~XAudio2Thread()
|
||||||
{
|
{
|
||||||
if (m_source_voice) Quit();
|
Quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
XAudio2Thread::XAudio2Thread() : m_xaudio2_instance(nullptr), m_master_voice(nullptr), m_source_voice(nullptr)
|
XAudio2Thread::XAudio2Thread() : m_xaudio2_instance(nullptr), m_master_voice(nullptr), m_source_voice(nullptr)
|
||||||
|
@ -46,14 +46,23 @@ void XAudio2Thread::Init()
|
||||||
|
|
||||||
void XAudio2Thread::Quit()
|
void XAudio2Thread::Quit()
|
||||||
{
|
{
|
||||||
Stop();
|
if (m_source_voice != nullptr)
|
||||||
m_source_voice->DestroyVoice();
|
{
|
||||||
m_source_voice = nullptr;
|
Stop();
|
||||||
m_master_voice->DestroyVoice();
|
m_source_voice->DestroyVoice();
|
||||||
m_master_voice = nullptr;
|
m_source_voice = nullptr;
|
||||||
m_xaudio2_instance->StopEngine();
|
}
|
||||||
m_xaudio2_instance->Release();
|
if (m_master_voice != nullptr)
|
||||||
m_xaudio2_instance = nullptr;
|
{
|
||||||
|
m_master_voice->DestroyVoice();
|
||||||
|
m_master_voice = nullptr;
|
||||||
|
}
|
||||||
|
if (m_xaudio2_instance != nullptr)
|
||||||
|
{
|
||||||
|
m_xaudio2_instance->StopEngine();
|
||||||
|
m_xaudio2_instance->Release();
|
||||||
|
m_xaudio2_instance = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue