Sort out game kernel cleanup sequences; also dodge a warning

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3461 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2009-12-21 03:55:46 +00:00
parent dafd5e415d
commit 390ab06714
3 changed files with 7 additions and 18 deletions
+4 -17
View File
@@ -16,7 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "master.h"
#include "nameref.h" #include "nameref.h"
#include "libs/reslib.h" #include "libs/reslib.h"
#include "gamestr.h" #include "gamestr.h"
@@ -34,21 +33,14 @@
// should be something like solarsys.h // should be something like solarsys.h
extern void FreeIPData (void); extern void FreeIPData (void);
static void UninitContexts (void);
static void UninitKernel (BOOLEAN ships);
static void UninitGameKernel (void);
void void
FreeKernel (void) FreeKernel (void)
{ {
UninitKernel (TRUE); UninitPlayerInput ();
UninitContexts ();
UninitResourceSystem (); UninitResourceSystem ();
UninitPlayerInput ();
DestroyDrawable (ReleaseDrawable (Screen)); DestroyDrawable (ReleaseDrawable (Screen));
DestroyContext (ScreenContext); DestroyContext (ScreenContext);
@@ -68,7 +60,7 @@ UninitContexts (void)
} }
static void static void
UninitKernel (BOOLEAN ships) UninitKernel (void)
{ {
UninitSpace (); UninitSpace ();
@@ -83,9 +75,6 @@ UninitKernel (BOOLEAN ships)
UninitQueue (&race_q[0]); UninitQueue (&race_q[0]);
UninitQueue (&race_q[1]); UninitQueue (&race_q[1]);
if (ships)
FreeMasterShipList ();
ActivityFrame = 0; ActivityFrame = 0;
} }
@@ -98,17 +87,15 @@ FreeGameData (void)
FreeHyperData (); FreeHyperData ();
} }
static void void
UninitGameKernel (void) UninitGameKernel (void)
{ {
// XXX: this function is never called. Why not? (BUG?)
if (ActivityFrame) if (ActivityFrame)
{ {
FreeGameData (); FreeGameData ();
UninitKernel (FALSE); UninitKernel ();
UninitContexts (); UninitContexts ();
} }
} }
+1
View File
@@ -61,6 +61,7 @@ extern BYTE PlayerControl[];
BOOLEAN InitContexts (void); BOOLEAN InitContexts (void);
void UninitPlayerInput (void); void UninitPlayerInput (void);
BOOLEAN InitGameKernel (void); BOOLEAN InitGameKernel (void);
void UninitGameKernel (void);
extern BOOLEAN LoadKernel (int argc, char *argv[]); extern BOOLEAN LoadKernel (int argc, char *argv[]);
extern void FreeKernel (void); extern void FreeKernel (void);
+2 -1
View File
@@ -296,7 +296,8 @@ while (--ac > 0)
} }
// CloseJournal (); // CloseJournal ();
FreeGameData (); UninitGameKernel ();
FreeMasterShipList ();
FreeKernel (); FreeKernel ();
MainExited = TRUE; MainExited = TRUE;