diff options
author | David Turner | 2011-01-27 02:57:07 +0000 |
---|---|---|
committer | David Turner | 2011-01-27 02:57:07 +0000 |
commit | d55626722eb53650bee43b1a5ed3f544824f2b7f (patch) | |
tree | ef2401461eecde677cccedb0b0677d748ce0bdd8 /engines/agos | |
parent | b7a8444992b8f17ea553f9e2a2c7a9989e4f0ad6 (diff) | |
download | scummvm-rg350-d55626722eb53650bee43b1a5ed3f544824f2b7f.tar.gz scummvm-rg350-d55626722eb53650bee43b1a5ed3f544824f2b7f.tar.bz2 scummvm-rg350-d55626722eb53650bee43b1a5ed3f544824f2b7f.zip |
AGOS: Fix Memory Leaks when playing Simon 2 Win.
These were identified with Valgrind.
svn-id: r55558
Diffstat (limited to 'engines/agos')
-rw-r--r-- | engines/agos/agos.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp index 7250c7b957..fb96759a08 100644 --- a/engines/agos/agos.cpp +++ b/engines/agos/agos.cpp @@ -895,10 +895,6 @@ void AGOSEngine::setupGame() { } AGOSEngine::~AGOSEngine() { - // In Simon 2, this gets deleted along with _sound further down - if (getGameType() != GType_SIMON2) - delete _gameFile; - _midi.close(); delete _driver; @@ -925,14 +921,20 @@ AGOSEngine::~AGOSEngine() { free(_textMem); free(_xtblList); + if (_backGroundBuf) + _backGroundBuf->free(); delete _backGroundBuf; delete _backBuf; free(_planarBuf); delete _scaleBuf; free(_zoneBuffers); - free(_window4BackScn); - free(_window6BackScn); + if (_window4BackScn) + _window4BackScn->free(); + delete _window4BackScn; + if (_window6BackScn) + _window6BackScn->free(); + delete _window6BackScn; free(_firstTimeStruct); free(_pendingDeleteTimeEvent); @@ -949,6 +951,7 @@ AGOSEngine::~AGOSEngine() { delete _debugger; delete _sound; + delete _gameFile; } GUI::Debugger *AGOSEngine::getDebugger() { |