From d98cd5a680502afa31300c8bf04849de0face89b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 10 Feb 2015 16:46:49 +0100 Subject: [PATCH] runloop.c - create check_video_alive - try to prevent segfaults at all costs --- runloop.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/runloop.c b/runloop.c index 45fcc038a9..0fbb4fd8ed 100644 --- a/runloop.c +++ b/runloop.c @@ -612,6 +612,15 @@ static int do_state_checks( return 0; } +static inline bool check_video_alive(void) +{ + if (!driver.video || !driver.video_data) + return false; + if (!driver.video->alive(driver.video_data)) + return false; + return true; +} + /** * time_to_exit: * @input : input sample for this frame @@ -636,7 +645,7 @@ static inline int time_to_exit(retro_input_t input) || (g_extern.max_frames && g_extern.frame_count >= g_extern.max_frames) || (g_extern.bsv.movie_end && g_extern.bsv.eof_exit) - || !driver.video->alive(driver.video_data) + || check_video_alive() ) return 1; return 0;