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.
*/
#include "master.h"
#include "nameref.h"
#include "libs/reslib.h"
#include "gamestr.h"
@@ -34,21 +33,14 @@
// should be something like solarsys.h
extern void FreeIPData (void);
static void UninitContexts (void);
static void UninitKernel (BOOLEAN ships);
static void UninitGameKernel (void);
void
FreeKernel (void)
{
UninitKernel (TRUE);
UninitContexts ();
UninitPlayerInput ();
UninitResourceSystem ();
UninitPlayerInput ();
DestroyDrawable (ReleaseDrawable (Screen));
DestroyContext (ScreenContext);
@@ -68,7 +60,7 @@ UninitContexts (void)
}
static void
UninitKernel (BOOLEAN ships)
UninitKernel (void)
{
UninitSpace ();
@@ -83,9 +75,6 @@ UninitKernel (BOOLEAN ships)
UninitQueue (&race_q[0]);
UninitQueue (&race_q[1]);
if (ships)
FreeMasterShipList ();
ActivityFrame = 0;
}
@@ -98,17 +87,15 @@ FreeGameData (void)
FreeHyperData ();
}
static void
void
UninitGameKernel (void)
{
// XXX: this function is never called. Why not? (BUG?)
if (ActivityFrame)
{
FreeGameData ();
UninitKernel (FALSE);
UninitKernel ();
UninitContexts ();
}
}
+1
View File
@@ -61,6 +61,7 @@ extern BYTE PlayerControl[];
BOOLEAN InitContexts (void);
void UninitPlayerInput (void);
BOOLEAN InitGameKernel (void);
void UninitGameKernel (void);
extern BOOLEAN LoadKernel (int argc, char *argv[]);
extern void FreeKernel (void);
+2 -1
View File
@@ -296,7 +296,8 @@ while (--ac > 0)
}
// CloseJournal ();
FreeGameData ();
UninitGameKernel ();
FreeMasterShipList ();
FreeKernel ();
MainExited = TRUE;