[Scummvm-cvs-logs] SF.net SVN: scummvm:[45572] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sat Oct 31 19:32:20 CET 2009
Revision: 45572
http://scummvm.svn.sourceforge.net/scummvm/?rev=45572&view=rev
Author: lordhoto
Date: 2009-10-31 18:32:17 +0000 (Sat, 31 Oct 2009)
Log Message:
-----------
Fix some memory leaks in Kyrandia 1 (this hopefully fixes crashes on NDS after a long playtime).
Modified Paths:
--------------
scummvm/trunk/engines/kyra/seqplayer.cpp
scummvm/trunk/engines/kyra/sprites.cpp
Modified: scummvm/trunk/engines/kyra/seqplayer.cpp
===================================================================
--- scummvm/trunk/engines/kyra/seqplayer.cpp 2009-10-31 18:26:31 UTC (rev 45571)
+++ scummvm/trunk/engines/kyra/seqplayer.cpp 2009-10-31 18:32:17 UTC (rev 45572)
@@ -655,6 +655,11 @@
}
delete[] _specialBuffer;
_specialBuffer = 0;
+
+ for (uint i = 0; i < ARRAYSIZE(_seqMovies); ++i) {
+ delete _seqMovies[i].movie;
+ _seqMovies[i].movie = 0;
+ }
return seqSkippedFlag;
}
Modified: scummvm/trunk/engines/kyra/sprites.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sprites.cpp 2009-10-31 18:26:31 UTC (rev 45571)
+++ scummvm/trunk/engines/kyra/sprites.cpp 2009-10-31 18:32:17 UTC (rev 45572)
@@ -65,10 +65,8 @@
uint8 *data;
for (int i = 0; i < MAX_NUM_ANIMS; i++) {
- if (_anims[i].background) {
- delete[] _anims[i].background;
- _anims[i].background = 0;
- }
+ delete[] _anims[i].background;
+ _anims[i].background = 0;
if (_anims[i].script != 0) {
data = _anims[i].script;
@@ -407,6 +405,9 @@
_res->exists(filename, true);
_dat = _res->fileData(filename, &fileSize);
+ for (uint i = 0; i < MAX_NUM_ANIMS; ++i)
+ delete[] _anims[i].background;
+
memset(_anims, 0, sizeof(_anims));
uint8 nextAnim = 0;
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