aboutsummaryrefslogtreecommitdiffstats
path: root/src/gfx.c
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2014-02-03 18:00:46 +1000
committerinmarket <andrewh@inmarket.com.au>2014-02-03 18:00:46 +1000
commit0805033a660bf45751c78f1d715b7765d9aa2642 (patch)
treeafe114b96a20bf8397941a2689b7490101a55537 /src/gfx.c
parentde7aafe785e5641115aa4b3f5a900515d8d36a28 (diff)
downloaduGFX-0805033a660bf45751c78f1d715b7765d9aa2642.tar.gz
uGFX-0805033a660bf45751c78f1d715b7765d9aa2642.tar.bz2
uGFX-0805033a660bf45751c78f1d715b7765d9aa2642.zip
Ensure double initialisation/de-initialisation of GFX can't occur
Diffstat (limited to 'src/gfx.c')
-rw-r--r--src/gfx.c12
1 files changed, 11 insertions, 1 deletions
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