From f6403958de1f67d3bce47f56b40de254c30f5ba4 Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Mon, 18 Jun 2012 18:06:40 +0100 Subject: [PATCH] Fix stamp and save assignment --- src/game/GameModel.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 2a18d6b6e..80d7d8911 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -280,11 +280,14 @@ SaveInfo * GameModel::GetSave() void GameModel::SetSave(SaveInfo * newSave) { if(currentSave != newSave) - delete currentSave; - if(newSave == NULL) - currentSave = NULL; - else if(currentSave != newSave) - currentSave = new SaveInfo(*newSave); + { + if(currentSave) + delete currentSave; + if(newSave == NULL) + currentSave = NULL; + else + currentSave = new SaveInfo(*newSave); + } if(currentSave && currentSave->GetGameSave()) { @@ -453,12 +456,15 @@ void GameModel::ClearSimulation() void GameModel::SetStamp(GameSave * save) { - if(stamp) - delete stamp; - if(save) - stamp = new GameSave(*save); - else - stamp = NULL; + if(stamp != save) + { + if(stamp) + delete stamp; + if(save) + stamp = new GameSave(*save); + else + stamp = NULL; + } } void GameModel::SetPlaceSave(GameSave * save)