illegal memory read, units must be freed very, very late.

This commit is contained in:
Enno Rehling 2007-12-16 23:18:22 +00:00
parent e04184b673
commit 8dd186d303
2 changed files with 8 additions and 6 deletions

View file

@ -134,10 +134,10 @@ read_game(const char * filename)
static int static int
write_game(const char *filename) write_game(const char *filename)
{ {
free_units(); int result;
remove_empty_factions(true); remove_empty_factions(true);
result = writegame(filename, 0);
return writegame(filename, 0); return result;
} }
static summary * sum_begin = 0; static summary * sum_begin = 0;

View file

@ -333,9 +333,11 @@ static void
game_done(void) game_done(void)
{ {
/* Diese Routine enfernt allen allokierten Speicher wieder. Das ist nur /* Diese Routine enfernt allen allokierten Speicher wieder. Das ist nur
* zum Debugging interessant, wenn man Leak Detection hat, und nach * zum Debugging interessant, wenn man Leak Detection hat, und nach
* nicht freigegebenem Speicher sucht, der nicht bis zum Ende benötigt * nicht freigegebenem Speicher sucht, der nicht bis zum Ende benötigt
* wird (temporäre Hilsstrukturen) */ * wird (temporäre Hilsstrukturen) */
free_units();
while (regions) { while (regions) {
region *r = regions; region *r = regions;