diff --git a/src/kernel/config.c b/src/kernel/config.c index 56022ef74..8d98165ca 100644 --- a/src/kernel/config.c +++ b/src/kernel/config.c @@ -1058,9 +1058,6 @@ void free_gamedata(void) { int i; free_donations(); - free_units(); - free_regions(); - free_borders(); for (i = 0; i != MAXLOCALES; ++i) { if (defaults[i]) { @@ -1068,14 +1065,16 @@ void free_gamedata(void) defaults[i] = 0; } } - free_alliances(); while (factions) { faction *f = factions; factions = f->next; - funhash(f); free_faction(f); free(f); } + free_units(); + free_regions(); + free_borders(); + free_alliances(); while (planes) { plane *pl = planes; diff --git a/src/tests.c b/src/tests.c index eb03820a8..c5f98502e 100644 --- a/src/tests.c +++ b/src/tests.c @@ -78,6 +78,7 @@ void test_cleanup(void) { int i; + free_gamedata(); free_terrains(); free_resources(); free_config(); @@ -89,7 +90,6 @@ void test_cleanup(void) free_shiptypes(); free_races(); free_spellbooks(); - free_gamedata(); free_seen(); free_prefixes(); mt_clear();