mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-07 06:46:43 +00:00
(svn r8119) -Fix (r8101): Uninitializing windows should be called before freeing dynamic variables as windows could use those variables during cleanup (eg WE_DESTROY calling GetStation(w->window_number).
-Merged UnInitializeGame with UnInitializeAirports and UnInitializeDynamicVariables
This commit is contained in:
parent
468f53911d
commit
54b88bc8e6
@ -263,9 +263,15 @@ static void InitializeDynamicVariables(void)
|
|||||||
_industry_sort = NULL;
|
_industry_sort = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UnInitializeDynamicVariables(void)
|
|
||||||
|
static void UnInitializeGame(void)
|
||||||
{
|
{
|
||||||
/* Dynamic stuff needs to be free'd somewhere... */
|
UnInitWindowSystem();
|
||||||
|
|
||||||
|
/* Uninitialize airport state machines */
|
||||||
|
UnInitializeAirports();
|
||||||
|
|
||||||
|
/* Uninitialize variables that are allocated dynamically */
|
||||||
CleanPool(&_Town_pool);
|
CleanPool(&_Town_pool);
|
||||||
CleanPool(&_Industry_pool);
|
CleanPool(&_Industry_pool);
|
||||||
CleanPool(&_Station_pool);
|
CleanPool(&_Station_pool);
|
||||||
@ -275,11 +281,6 @@ static void UnInitializeDynamicVariables(void)
|
|||||||
|
|
||||||
free((void*)_town_sort);
|
free((void*)_town_sort);
|
||||||
free((void*)_industry_sort);
|
free((void*)_industry_sort);
|
||||||
}
|
|
||||||
|
|
||||||
static void UnInitializeGame(void)
|
|
||||||
{
|
|
||||||
UnInitWindowSystem();
|
|
||||||
|
|
||||||
free(_config_file);
|
free(_config_file);
|
||||||
}
|
}
|
||||||
@ -547,18 +548,14 @@ int ttd_main(int argc, char *argv[])
|
|||||||
SaveToHighScore();
|
SaveToHighScore();
|
||||||
}
|
}
|
||||||
|
|
||||||
// uninitialize airport state machines
|
/* Reset windowing system and free config file */
|
||||||
UnInitializeAirports();
|
UnInitializeGame();
|
||||||
|
|
||||||
/* uninitialize variables that are allocated dynamic */
|
|
||||||
UnInitializeDynamicVariables();
|
|
||||||
|
|
||||||
/* stop the AI */
|
/* stop the AI */
|
||||||
AI_Uninitialize();
|
AI_Uninitialize();
|
||||||
|
|
||||||
/* Close all and any open filehandles */
|
/* Close all and any open filehandles */
|
||||||
FioCloseAll();
|
FioCloseAll();
|
||||||
UnInitializeGame();
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user