[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