From d55626722eb53650bee43b1a5ed3f544824f2b7f Mon Sep 17 00:00:00 2001 From: David Turner Date: Thu, 27 Jan 2011 02:57:07 +0000 Subject: AGOS: Fix Memory Leaks when playing Simon 2 Win. These were identified with Valgrind. svn-id: r55558 --- engines/agos/agos.cpp | 15 +++++++++------ 1 file 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() { -- cgit v1.2.3