Ensure double initialisation/de-initialisation of GFX can't occur

remotes/origin_old/ugfx_release_2.6
inmarket 2014-02-03 18:00:46 +10:00
parent de7aafe785
commit 0805033a66
1 changed files with 11 additions and 1 deletions

View File

@ -15,6 +15,8 @@
#include "gfx.h" #include "gfx.h"
static bool_t initDone = FALSE;
/* These init functions are defined by each module but not published */ /* These init functions are defined by each module but not published */
extern void _gosInit(void); extern void _gosInit(void);
extern void _gosDeinit(void); extern void _gosDeinit(void);
@ -57,6 +59,11 @@ extern void _gosDeinit(void);
void gfxInit(void) void gfxInit(void)
{ {
/* Ensure we only initialise once */
if (initDone)
return;
initDone = TRUE;
// These must be initialised in the order of their dependancies // These must be initialised in the order of their dependancies
_gosInit(); _gosInit();
@ -91,8 +98,11 @@ void gfxInit(void)
void gfxDeinit(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 #if GFX_USE_GAUDOUT
_gaudoutDeinit(); _gaudoutDeinit();
#endif #endif