From c36b8e1ae9d694832bdf9628def7ea417c7832f1 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 5 Dec 2015 08:52:01 +0100 Subject: [PATCH] Don't touch driver->frontend outside of frontend_driver.c anymore --- frontend/frontend_driver.c | 16 ++++++++++++++++ frontend/frontend_driver.h | 3 +++ gfx/video_driver.c | 5 ++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index 5438f20d93..6b76cdae19 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -176,4 +176,20 @@ environment_get_t frontend_driver_environment_get_ptr(void) return NULL; return driver->frontend_ctx->environment_get; } + +bool frontend_driver_has_get_video_driver_func(void) +{ + driver_t *driver = driver_get_ptr(); + if (!driver || !driver->frontend_ctx || !driver->frontend_ctx->get_video_driver) + return false; + return true; +} + +const struct video_driver *frontend_driver_get_video_driver(void) +{ + driver_t *driver = driver_get_ptr(); + if (!driver || !driver->frontend_ctx || !driver->frontend_ctx->get_video_driver) + return NULL; + return driver->frontend_ctx->get_video_driver(); +} #endif diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index 21c942bc86..3ce77d3aa6 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -124,6 +124,9 @@ void frontend_driver_init_first(void *args); environment_get_t frontend_driver_environment_get_ptr(void); +bool frontend_driver_has_get_video_driver_func(void); + +const struct video_driver *frontend_driver_get_video_driver(void); #ifdef __cplusplus } #endif diff --git a/gfx/video_driver.c b/gfx/video_driver.c index eadd119599..2e3baafc7b 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -241,10 +241,9 @@ static bool find_video_driver(void) } #endif - if (driver->frontend_ctx && - driver->frontend_ctx->get_video_driver) + if (frontend_driver_has_get_video_driver_func()) { - current_video = driver->frontend_ctx->get_video_driver(); + current_video = frontend_driver_get_video_driver(); if (current_video) return true;