From 0805033a660bf45751c78f1d715b7765d9aa2642 Mon Sep 17 00:00:00 2001 From: inmarket Date: Mon, 3 Feb 2014 18:00:46 +1000 Subject: Ensure double initialisation/de-initialisation of GFX can't occur --- src/gfx.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/gfx.c') diff --git a/src/gfx.c b/src/gfx.c index 46003f09..dfc9cb75 100644 --- a/src/gfx.c +++ b/src/gfx.c @@ -15,6 +15,8 @@ #include "gfx.h" +static bool_t initDone = FALSE; + /* These init functions are defined by each module but not published */ extern void _gosInit(void); extern void _gosDeinit(void); @@ -57,6 +59,11 @@ extern void _gosDeinit(void); void gfxInit(void) { + /* Ensure we only initialise once */ + if (initDone) + return; + initDone = TRUE; + // These must be initialised in the order of their dependancies _gosInit(); @@ -91,8 +98,11 @@ void gfxInit(void) void gfxDeinit(void) { - // We deinitialise the opposit way as we initialised + if (!initDone) + return; + initDone = FALSE; + // We deinitialise the opposite way as we initialised #if GFX_USE_GAUDOUT _gaudoutDeinit(); #endif -- cgit v1.2.3