From d98cd5a680502afa31300c8bf04849de0face89b Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
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;