(svn r7518) -Codechange: more NULL pointer resets after free.

This commit is contained in:
Darkvater
2006-12-20 21:17:33 +00:00
parent 1812bcfc8c
commit 28042b65ac
3 changed files with 14 additions and 11 deletions

View File

@@ -96,17 +96,21 @@ void ClearGRFConfig(GRFConfig **config)
/* Clear a GRF Config list */
void ClearGRFConfigList(GRFConfig *config)
void ClearGRFConfigList(GRFConfig **config)
{
GRFConfig *c, *next;
for (c = config; c != NULL; c = next) {
for (c = *config; c != NULL; c = next) {
next = c->next;
ClearGRFConfig(&c);
}
*config = NULL;
}
/* Copy a GRF Config list */
/** Copy a GRF Config list
* @param dst pointer to destination list
* @param srt pointer to source list values
* @return pointer to the last value added to the destination list */
GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src)
{
GRFConfig *c;
@@ -131,8 +135,7 @@ void ResetGRFConfig(bool defaults)
{
GRFConfig **c = &_grfconfig;
ClearGRFConfigList(_grfconfig);
_grfconfig = NULL;
ClearGRFConfigList(c);
if (defaults) c = CopyGRFConfigList(c, _grfconfig_newgame);
CopyGRFConfigList(c, _grfconfig_static);
@@ -244,8 +247,7 @@ void ScanNewGRFFiles(void)
{
uint num;
ClearGRFConfigList(_all_grfs);
_all_grfs = NULL;
ClearGRFConfigList(&_all_grfs);
DEBUG(grf, 1) ("[GRF] Scanning for NewGRFs");
num = ScanPath(_paths.data_dir);
@@ -388,7 +390,7 @@ static void Load_NGRF(void)
/* Append static NewGRF configuration */
CopyGRFConfigList(last, _grfconfig_static);
ClearGRFConfigList(_grfconfig);
ClearGRFConfigList(&_grfconfig);
_grfconfig = first;
}