[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