diff --git a/src/eressea/lua/gamecode.cpp b/src/eressea/lua/gamecode.cpp index 96b8dd3ff..484c58680 100644 --- a/src/eressea/lua/gamecode.cpp +++ b/src/eressea/lua/gamecode.cpp @@ -134,10 +134,10 @@ read_game(const char * filename) static int write_game(const char *filename) { - free_units(); + int result; remove_empty_factions(true); - - return writegame(filename, 0); + result = writegame(filename, 0); + return result; } static summary * sum_begin = 0; diff --git a/src/eressea/server.cpp b/src/eressea/server.cpp index afe1199b8..ff9bafc44 100644 --- a/src/eressea/server.cpp +++ b/src/eressea/server.cpp @@ -333,9 +333,11 @@ static void game_done(void) { /* Diese Routine enfernt allen allokierten Speicher wieder. Das ist nur - * zum Debugging interessant, wenn man Leak Detection hat, und nach - * nicht freigegebenem Speicher sucht, der nicht bis zum Ende benötigt - * wird (temporäre Hilsstrukturen) */ + * zum Debugging interessant, wenn man Leak Detection hat, und nach + * nicht freigegebenem Speicher sucht, der nicht bis zum Ende benötigt + * wird (temporäre Hilsstrukturen) */ + + free_units(); while (regions) { region *r = regions;