correctly close handle in alsa audio driver.

(cherry picked from commit 3e85e89dc5)
This commit is contained in:
Ibrahn Sahir 2018-07-23 12:55:34 +01:00 committed by Rémi Verschelde
parent 5c69f83c96
commit 112075b3ad
2 changed files with 6 additions and 5 deletions

View File

@ -58,7 +58,10 @@ Error AudioDriverALSA::init_device() {
#define CHECK_FAIL(m_cond) \ #define CHECK_FAIL(m_cond) \
if (m_cond) { \ if (m_cond) { \
fprintf(stderr, "ALSA ERR: %s\n", snd_strerror(status)); \ fprintf(stderr, "ALSA ERR: %s\n", snd_strerror(status)); \
snd_pcm_close(pcm_handle); \ if (pcm_handle) { \
snd_pcm_close(pcm_handle); \
pcm_handle = NULL; \
} \
ERR_FAIL_COND_V(m_cond, ERR_CANT_OPEN); \ ERR_FAIL_COND_V(m_cond, ERR_CANT_OPEN); \
} }
@ -152,7 +155,6 @@ Error AudioDriverALSA::init() {
active = false; active = false;
thread_exited = false; thread_exited = false;
exit_thread = false; exit_thread = false;
pcm_open = false;
Error err = init_device(); Error err = init_device();
if (err == OK) { if (err == OK) {
@ -315,9 +317,9 @@ void AudioDriverALSA::unlock() {
void AudioDriverALSA::finish_device() { void AudioDriverALSA::finish_device() {
if (pcm_open) { if (pcm_handle) {
snd_pcm_close(pcm_handle); snd_pcm_close(pcm_handle);
pcm_open = NULL; pcm_handle = NULL;
} }
} }

View File

@ -66,7 +66,6 @@ class AudioDriverALSA : public AudioDriver {
bool active; bool active;
bool thread_exited; bool thread_exited;
mutable bool exit_thread; mutable bool exit_thread;
bool pcm_open;
public: public:
const char *get_name() const { const char *get_name() const {