From 5cdbe7e3cc3062357769bc2886d585f0d9e7da1b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 25 Dec 2015 19:30:31 +0100 Subject: [PATCH] Fixes some crucial bugs --- audio/audio_driver.c | 12 ++++++------ audio/audio_driver.h | 1 + runloop.c | 4 +++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 6d9ddbe6f1..f02d7f6317 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -261,12 +261,6 @@ static bool uninit_audio(void) rarch_resampler_freep(&audio_driver_resampler, &audio_driver_resampler_data); - if (audio_driver_data.audio_callback.callback) - { - audio_driver_data.audio_callback.callback = NULL; - audio_driver_data.audio_callback.set_state = NULL; - } - if (audio_driver_data.data) free(audio_driver_data.data); audio_driver_data.data = NULL; @@ -675,6 +669,12 @@ void audio_driver_set_buffer_size(size_t bufsize) audio_driver_data.driver_buffer_size = bufsize; } +void audio_driver_unset_callback(void) +{ + audio_driver_data.audio_callback.callback = NULL; + audio_driver_data.audio_callback.set_state = NULL; +} + void audio_driver_set_callback(const void *data) { const struct retro_audio_callback *cb = diff --git a/audio/audio_driver.h b/audio/audio_driver.h index d1097377e0..adf23f6357 100644 --- a/audio/audio_driver.h +++ b/audio/audio_driver.h @@ -148,6 +148,7 @@ void audio_driver_dsp_filter_init(const char *device); void audio_driver_set_buffer_size(size_t bufsize); void audio_driver_set_callback(const void *info); +void audio_driver_unset_callback(void); void audio_driver_callback_set_state(bool state); diff --git a/runloop.c b/runloop.c index 2a927facb5..eead3d0dd2 100644 --- a/runloop.c +++ b/runloop.c @@ -585,7 +585,9 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data) free(runloop_system.ports); runloop_system.ports = NULL; - runloop_key_event = NULL; + runloop_key_event = NULL; + global_get_ptr()->frontend_key_event = NULL; + audio_driver_unset_callback(); memset(&runloop_system, 0, sizeof(rarch_system_info_t)); break; case RUNLOOP_CTL_IS_FRAME_COUNT_END: