diff --git a/retroarch.c b/retroarch.c index 543ab741cb..38cf06fb7f 100644 --- a/retroarch.c +++ b/retroarch.c @@ -31926,14 +31926,15 @@ void video_driver_build_info(video_frame_info_t *video_info) video_info->menu_wallpaper_opacity = 0.0f; #endif - video_info->runloop_is_paused = runloop_state.paused; - video_info->runloop_is_slowmotion = runloop_state.slowmotion; + video_info->runloop_is_paused = runloop_state.paused; + video_info->runloop_is_slowmotion = runloop_state.slowmotion; - video_info->input_driver_nonblock_state = input_driver_st->nonblocking_flag; + video_info->input_driver_nonblock_state = input_driver_st ? +input_driver_st->nonblocking_flag : false; video_info->input_driver_grab_mouse_state = p_rarch->input_driver_grab_mouse_state; video_info->disp_userdata = &p_rarch->dispgfx; - video_info->userdata = VIDEO_DRIVER_GET_PTR_INTERNAL(p_rarch); + video_info->userdata = VIDEO_DRIVER_GET_PTR_INTERNAL(p_rarch); #ifdef HAVE_THREADS VIDEO_DRIVER_THREADED_UNLOCK(is_threaded); @@ -32872,9 +32873,12 @@ static void driver_adjust_system_rates( **/ void driver_set_nonblock_state(void) { - struct rarch_state *p_rarch = &rarch_st; - input_driver_state_t *input_driver_st = &p_rarch->input_driver_state; - bool enable = input_driver_st->nonblocking_flag; + struct rarch_state + *p_rarch = &rarch_st; + input_driver_state_t + *input_driver_st = &p_rarch->input_driver_state; + bool enable = input_driver_st ? +input_driver_st->nonblocking_flag : false; settings_t *settings = p_rarch->configuration_settings; bool audio_sync = settings->bools.audio_sync; bool video_vsync = settings->bools.video_vsync; @@ -33267,7 +33271,7 @@ static void retroarch_deinit_drivers( p_rarch->input_driver_block_libretro_input = false; if (input_driver_st) - input_driver_st->nonblocking_flag = false; + input_driver_st->nonblocking_flag = false; p_rarch->input_driver_flushing_input = 0; memset(&p_rarch->input_driver_turbo_btns, 0, sizeof(turbo_buttons_t)); @@ -37150,13 +37154,13 @@ static void runloop_apply_fastmotion_override( if (p_runloop->fastmotion) { - if (input_driver_st) - input_driver_st->nonblocking_flag = true; + if (input_driver_st) + input_driver_st->nonblocking_flag = true; } else { - if (input_driver_st) - input_driver_st->nonblocking_flag = false; + if (input_driver_st) + input_driver_st->nonblocking_flag = false; p_rarch->fastforward_after_frames = 1; } @@ -38138,13 +38142,13 @@ static enum runloop_state runloop_check_state( { if (input_driver_st->nonblocking_flag) { - input_driver_st->nonblocking_flag = false; + input_driver_st->nonblocking_flag = false; runloop_state.fastmotion = false; p_rarch->fastforward_after_frames = 1; } else { - input_driver_st->nonblocking_flag = true; + input_driver_st->nonblocking_flag = true; runloop_state.fastmotion = true; } @@ -38652,7 +38656,7 @@ int runloop_iterate(void) } } - if ((video_frame_delay > 0) && !input_driver_st->nonblocking_flag) + if ((video_frame_delay > 0) && input_driver_st && !input_driver_st->nonblocking_flag) retro_sleep(video_frame_delay); {