From 8600c09f60eb898fb28116053d56fa5b86578898 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 9 Dec 2015 18:04:48 +0100 Subject: [PATCH] Immediately free audio_driver_context_audio_data after calling free function --- audio/audio_driver.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 2ae8083e21..81d3bee6f1 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -236,8 +236,12 @@ static bool uninit_audio(void) { settings_t *settings = config_get_ptr(); - if (audio_driver_context_audio_data && current_audio) - current_audio->free(audio_driver_context_audio_data); + if (current_audio && current_audio->free) + { + if (audio_driver_context_audio_data) + current_audio->free(audio_driver_context_audio_data); + audio_driver_context_audio_data = NULL; + } if (audio_driver_data.conv_outsamples) free(audio_driver_data.conv_outsamples); @@ -784,10 +788,7 @@ bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data) break; case RARCH_AUDIO_CTL_DEINIT: if (uninit_audio()) - { - audio_driver_context_audio_data = NULL; return true; - } break; case RARCH_AUDIO_CTL_SETUP_REWIND: audio_driver_setup_rewind();