[Scummvm-cvs-logs] SF.net SVN: scummvm:[48224] scummvm/trunk/engines/saga
h00ligan at users.sourceforge.net
h00ligan at users.sourceforge.net
Wed Mar 10 18:05:26 CET 2010
Revision: 48224
http://scummvm.svn.sourceforge.net/scummvm/?rev=48224&view=rev
Author: h00ligan
Date: 2010-03-10 17:05:25 +0000 (Wed, 10 Mar 2010)
Log Message:
-----------
Fix bug #2963556: SAGA: Memory leaks
Modified Paths:
--------------
scummvm/trunk/engines/saga/saga.cpp
scummvm/trunk/engines/saga/script.h
Modified: scummvm/trunk/engines/saga/saga.cpp
===================================================================
--- scummvm/trunk/engines/saga/saga.cpp 2010-03-10 11:43:48 UTC (rev 48223)
+++ scummvm/trunk/engines/saga/saga.cpp 2010-03-10 17:05:25 UTC (rev 48224)
@@ -62,35 +62,56 @@
SagaEngine::SagaEngine(OSystem *syst, const SAGAGameDescription *gameDesc)
: Engine(syst), _gameDescription(gameDesc) {
- _leftMouseButtonPressed = _rightMouseButtonPressed = false;
+ _framesEsc = 0;
- _console = NULL;
+ _globalFlags = 0;
+ memset(_ethicsPoints, 0, sizeof(_ethicsPoints));
+ _spiritualBarometer = 0;
- _resource = NULL;
+ _soundVolume = 0;
+ _musicVolume = 0;
+ _speechVolume = 0;
+ _subtitlesEnabled = false;
+ _voicesEnabled = false;
+ _voiceFilesExist = false;
+ _readingSpeed = 0;
+
+ _copyProtection = false;
+ _gf_wyrmkeep = false;
+ _musicWasPlaying = false;
+
+
_sndRes = NULL;
- _events = NULL;
- _font = NULL;
- _sprite = NULL;
+ _sound = NULL;
+ _music = NULL;
+ _driver = NULL;
_anim = NULL;
+ _render = NULL;
+ _isoMap = NULL;
+ _gfx = NULL;
_script = NULL;
- _interface = NULL;
_actor = NULL;
- _palanim = NULL;
+ _font = NULL;
+ _sprite = NULL;
_scene = NULL;
- _isoMap = NULL;
- _gfx = NULL;
- _driver = NULL;
+ _interface = NULL;
_console = NULL;
- _render = NULL;
- _music = NULL;
- _sound = NULL;
+ _events = NULL;
+ _palanim = NULL;
_puzzle = NULL;
+ _resource = NULL;
- _frameCount = 0;
- _globalFlags = 0;
+ _previousTicks = 0;
+
+ _saveFilesCount = 0;
+
+ _leftMouseButtonPressed = _rightMouseButtonPressed = false;
_mouseClickCount = 0;
- memset(_ethicsPoints, 0, sizeof(_ethicsPoints));
+ _gameNumber = 0;
+
+ _frameCount = 0;
+
// The Linux version of Inherit the Earth puts all data files in an
// 'itedata' sub-directory, except for voices.rsc
SearchMan.addSubDirectoryMatching(_gameDataDir, "itedata");
@@ -127,31 +148,66 @@
if (getGameId() == GID_ITE) {
delete _isoMap;
+ _isoMap = NULL;
+
delete _puzzle;
+ _puzzle = NULL;
}
delete _sndRes;
+ _sndRes = NULL;
+
delete _events;
+ _events = NULL;
if (!isSaga2()) {
delete _font;
+ _font = NULL;
+
delete _sprite;
+ _sprite = NULL;
}
delete _anim;
+ _anim = NULL;
+
delete _script;
- if (!isSaga2())
+ _script = NULL;
+
+ if (!isSaga2()) {
delete _interface;
+ _interface = NULL;
+ }
+
delete _actor;
+ _actor = NULL;
+
delete _palanim;
+ _palanim = NULL;
+
delete _scene;
+ _scene = NULL;
+
delete _render;
+ _render = NULL;
+
delete _music;
+ _music = NULL;
+
delete _sound;
+ _sound = NULL;
+
delete _driver;
+ _driver = NULL;
+
delete _gfx;
+ _gfx = NULL;
+
delete _console;
+ _console = NULL;
+
delete _resource;
+ _resource = NULL;
}
Common::Error SagaEngine::run() {
Modified: scummvm/trunk/engines/saga/script.h
===================================================================
--- scummvm/trunk/engines/saga/script.h 2010-03-10 11:43:48 UTC (rev 48223)
+++ scummvm/trunk/engines/saga/script.h 2010-03-10 17:05:25 UTC (rev 48224)
@@ -308,7 +308,7 @@
StringsTable _mainStrings;
Script(SagaEngine *vm);
- ~Script();
+ virtual ~Script();
void loadModule(int scriptModuleNumber);
void freeModules();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list