[Scummvm-cvs-logs] SF.net SVN: scummvm:[54176] scummvm/trunk/engines/toon

tdhs at users.sourceforge.net tdhs at users.sourceforge.net
Wed Nov 10 00:57:56 CET 2010


Revision: 54176
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54176&view=rev
Author:   tdhs
Date:     2010-11-09 23:57:56 +0000 (Tue, 09 Nov 2010)

Log Message:
-----------
TOON: More corrections to close memory leaks.

These corrections close a number of leaks in the Toon engine reported by running Valgrind with --leak-check=full option, but a significant number still remain.

Modified Paths:
--------------
    scummvm/trunk/engines/toon/audio.cpp
    scummvm/trunk/engines/toon/audio.h
    scummvm/trunk/engines/toon/character.cpp
    scummvm/trunk/engines/toon/character.h
    scummvm/trunk/engines/toon/toon.cpp

Modified: scummvm/trunk/engines/toon/audio.cpp
===================================================================
--- scummvm/trunk/engines/toon/audio.cpp	2010-11-09 23:31:08 UTC (rev 54175)
+++ scummvm/trunk/engines/toon/audio.cpp	2010-11-09 23:57:56 UTC (rev 54176)
@@ -208,10 +208,8 @@
 
 
 void AudioManager::closeAudioPack(int32 id) {
-	if(_audioPacks[id]) {
-		delete _audioPacks[id];
-		_audioPacks[id] = 0;
-	}
+	delete _audioPacks[id];
+	_audioPacks[id] = NULL;
 }
 
 bool AudioManager::loadAudioPack(int32 id, Common::String indexFile, Common::String packFile) {
@@ -239,10 +237,6 @@
 	if (_channels[1])
 		_channels[1]->stop(true);
 }
-AudioStreamInstance::~AudioStreamInstance() {
-	if (_man)
-		_man->removeInstance(this);
-}
 
 AudioStreamInstance::AudioStreamInstance(AudioManager *man, Audio::Mixer *mixer, Common::SeekableReadStream *stream , bool looping) {
 	_compBufferSize = 0;
@@ -274,6 +268,11 @@
 	}
 }
 
+AudioStreamInstance::~AudioStreamInstance() {
+	if (_man)
+		_man->removeInstance(this);
+}
+
 int AudioStreamInstance::readBuffer(int16 *buffer, const int numSamples) {
 	debugC(5, kDebugAudio, "readBuffer(buffer, %d)", numSamples);
 

Modified: scummvm/trunk/engines/toon/audio.h
===================================================================
--- scummvm/trunk/engines/toon/audio.h	2010-11-09 23:31:08 UTC (rev 54175)
+++ scummvm/trunk/engines/toon/audio.h	2010-11-09 23:57:56 UTC (rev 54176)
@@ -124,7 +124,7 @@
 	void removeInstance(AudioStreamInstance *inst); // called by destructor
 
 	AudioManager(ToonEngine *vm, Audio::Mixer *mixer);
-	~AudioManager(void);
+	~AudioManager();
 
 	bool voiceStillPlaying();
 

Modified: scummvm/trunk/engines/toon/character.cpp
===================================================================
--- scummvm/trunk/engines/toon/character.cpp	2010-11-09 23:31:08 UTC (rev 54175)
+++ scummvm/trunk/engines/toon/character.cpp	2010-11-09 23:57:56 UTC (rev 54176)
@@ -33,17 +33,19 @@
 Character::Character(ToonEngine *vm) : _vm(vm) {
 	_animationInstance = 0;
 	_shadowAnimationInstance = NULL;
-	_shadowAnim = NULL;
 	_x = 0;
 	_y = 0;
 	_z = 0;
 	_finalX = 0;
 	_finalY = 0;
-	_specialAnim = 0;
 	_sceneAnimationId = -1;
-	_idleAnim = 0;
-	_walkAnim = 0;
-	_talkAnim = 0;
+
+	_walkAnim = NULL;
+	_idleAnim = NULL;
+	_talkAnim = NULL;
+	_shadowAnim = NULL;
+	_specialAnim = NULL;
+
 	_facing = 0;
 	_flags = 0;
 	_animFlags = 0;
@@ -65,11 +67,15 @@
 
 Character::~Character(void) {
 	delete _shadowAnimationInstance;
+
+	delete _walkAnim;
+	delete _idleAnim;
+	delete _talkAnim;
 	delete _shadowAnim;
+	delete _specialAnim;
 }
 
 void Character::init() {
-
 }
 
 void Character::setFacing(int32 facing) {
@@ -204,27 +210,21 @@
 
 bool Character::loadWalkAnimation(Common::String animName) {
 	debugC(1, kDebugCharacter, "loadWalkAnimation(%s)", animName.c_str());
-	if (_walkAnim)
-		delete _walkAnim;
-
+	delete _walkAnim;
 	_walkAnim = new Animation(_vm);
 	return _walkAnim->loadAnimation(animName);
 }
 
 bool Character::loadIdleAnimation(Common::String animName) {
 	debugC(1, kDebugCharacter, "loadIdleAnimation(%s)", animName.c_str());
-	if (_idleAnim)
-		delete _idleAnim;
-
+	delete _idleAnim;
 	_idleAnim = new Animation(_vm);
 	return _idleAnim->loadAnimation(animName);
 }
 
 bool Character::loadTalkAnimation(Common::String animName) {
 	debugC(1, kDebugCharacter, "loadTalkAnimation(%s)", animName.c_str());
-	if (_talkAnim)
-		delete _talkAnim;
-
+	delete _talkAnim;
 	_talkAnim = new Animation(_vm);
 	return _talkAnim->loadAnimation(animName);
 }
@@ -234,7 +234,6 @@
 }
 
 void Character::playStandingAnim() {
-
 }
 
 void Character::updateTimers(int32 relativeAdd) {
@@ -247,7 +246,7 @@
 // Strangerke - Commented (not used)
 #if 0
 	if (_animSpecialId != _animSpecialDefaultId)
-		delete anim
+		delete anim;
 #endif
 	if (_animScriptId != -1)
 		_vm->getSceneAnimationScript(_animScriptId)->_frozenForConversation = false;
@@ -983,8 +982,7 @@
 
 	_animFlags |= flags;
 
-	if (_specialAnim)
-		delete _specialAnim;
+	delete _specialAnim;
 	_specialAnim = new Animation(_vm);
 	_specialAnim->loadAnimation(animName);
 

Modified: scummvm/trunk/engines/toon/character.h
===================================================================
--- scummvm/trunk/engines/toon/character.h	2010-11-09 23:31:08 UTC (rev 54175)
+++ scummvm/trunk/engines/toon/character.h	2010-11-09 23:57:56 UTC (rev 54176)
@@ -53,7 +53,7 @@
 class Character {
 public:
 	Character(ToonEngine *vm);
-	virtual ~Character(void);
+	virtual ~Character();
 	virtual void init();
 	virtual int32 getId();
 	virtual void setId(int32 id);

Modified: scummvm/trunk/engines/toon/toon.cpp
===================================================================
--- scummvm/trunk/engines/toon/toon.cpp	2010-11-09 23:31:08 UTC (rev 54175)
+++ scummvm/trunk/engines/toon/toon.cpp	2010-11-09 23:57:56 UTC (rev 54176)
@@ -656,8 +656,6 @@
 			musicPlaying = false;
 		}
 
-
-
 		switch (clickingOn) {
 		case MAINMENUHOTSPOT_START:
 			// Start game (actually exit main menu)
@@ -686,6 +684,11 @@
 		}
 	}
 
+	//delete mainmenuMusic;
+	for (int entryNr = 0; entryNr < MAINMENU_ENTRYCOUNT; entryNr++)
+		delete entries[entryNr].animation;
+	delete mainmenuPicture;
+
 	return !exitGame;
 }
 
@@ -756,6 +759,17 @@
 
 	_moviePlayer = NULL;
 	_mainSurface = NULL;
+
+	_finalPalette = NULL;
+	_backupPalette = NULL;
+	_additionalPalette1 = NULL;
+	_additionalPalette2 = NULL;
+	_cutawayPalette = NULL;
+	_universalPalette = NULL;
+	_fluxPalette = NULL;
+
+	_conversationData = NULL;
+
 	_fontRenderer = NULL;
 	_fontToon = NULL;
 	_fontEZ = NULL;
@@ -764,6 +778,7 @@
 	_roomTexts = NULL;
 	_script_func = NULL;
 	_script = NULL;
+	_pathFinding = NULL;
 	_console = new ToonConsole(this);
 
 	switch (_language) {
@@ -795,6 +810,16 @@
 	delete _moviePlayer;
 	delete _mainSurface;
 
+	delete[] _finalPalette;
+	delete[] _backupPalette;
+	delete[] _additionalPalette1;
+	delete[] _additionalPalette2;
+	delete[] _cutawayPalette;
+	delete[] _universalPalette;
+	delete[] _fluxPalette;
+
+	delete[] _conversationData;
+
 	delete _fontRenderer;
 	delete _fontToon;
 	delete _fontEZ;
@@ -804,6 +829,8 @@
 	delete _script_func;
 	delete _script;
 
+	delete _pathFinding;
+
 	DebugMan.clearAllDebugChannels();
 	delete _console;
 }


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