[Scummvm-cvs-logs] SF.net SVN: scummvm:[34870] scummvm/trunk/engines/parallaction

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sat Nov 1 13:39:02 CET 2008


Revision: 34870
          http://scummvm.svn.sourceforge.net/scummvm/?rev=34870&view=rev
Author:   peres001
Date:     2008-11-01 12:39:01 +0000 (Sat, 01 Nov 2008)

Log Message:
-----------
Fixed assorted leaks in NS Amiga.

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/disk_ns.cpp
    scummvm/trunk/engines/parallaction/graphics.cpp
    scummvm/trunk/engines/parallaction/parallaction.cpp
    scummvm/trunk/engines/parallaction/sound.cpp

Modified: scummvm/trunk/engines/parallaction/disk_ns.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk_ns.cpp	2008-10-31 13:20:13 UTC (rev 34869)
+++ scummvm/trunk/engines/parallaction/disk_ns.cpp	2008-11-01 12:39:01 UTC (rev 34870)
@@ -903,7 +903,7 @@
 
 	free(buf);
 
-	return new Cnv(numFrames, width, height, data);
+	return new Cnv(numFrames, width, height, data, true);
 }
 #undef NUM_PLANES
 

Modified: scummvm/trunk/engines/parallaction/graphics.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/graphics.cpp	2008-10-31 13:20:13 UTC (rev 34869)
+++ scummvm/trunk/engines/parallaction/graphics.cpp	2008-11-01 12:39:01 UTC (rev 34870)
@@ -765,6 +765,7 @@
 	_backgroundInfo = 0;
 
 	_halfbrite = false;
+	_nextProjectorPos = 0;
 	_hbCircleRadius = 0;
 
 	_unpackedBitmap = new byte[MAXIMUM_UNPACKED_BITMAP_SIZE];

Modified: scummvm/trunk/engines/parallaction/parallaction.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.cpp	2008-10-31 13:20:13 UTC (rev 34869)
+++ scummvm/trunk/engines/parallaction/parallaction.cpp	2008-11-01 12:39:01 UTC (rev 34870)
@@ -89,6 +89,7 @@
 	delete _callableNames;
 	delete _cmdExec;
 	delete _programExec;
+	delete _saveLoad;
 
 	_gfx->clearGfxObjects(kGfxObjCharacter | kGfxObjNormal);
 	hideDialogueStuff();

Modified: scummvm/trunk/engines/parallaction/sound.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/sound.cpp	2008-10-31 13:20:13 UTC (rev 34869)
+++ scummvm/trunk/engines/parallaction/sound.cpp	2008-11-01 12:39:01 UTC (rev 34870)
@@ -312,9 +312,13 @@
 AmigaSoundMan::AmigaSoundMan(Parallaction *vm) : SoundMan(vm) {
 	_musicStream = 0;
 	_channels[0].data = 0;
+	_channels[0].dispose = false;
 	_channels[1].data = 0;
+	_channels[1].dispose = false;
 	_channels[2].data = 0;
+	_channels[2].dispose = false;
 	_channels[3].data = 0;
+	_channels[3].dispose = false;
 }
 
 AmigaSoundMan::~AmigaSoundMan() {
@@ -340,7 +344,7 @@
 		ch->header.samplesPerHiCycle = 0;
 		ch->header.samplesPerSec = 11934;
 		ch->header.volume = 160;
-		ch->data = new int8[AMIGABEEP_SIZE * NUM_REPEATS];
+		ch->data = (int8*)malloc(AMIGABEEP_SIZE * NUM_REPEATS);
 		int8* odata = ch->data;
 		for (uint i = 0; i < NUM_REPEATS; i++) {
 			memcpy(odata, res_amigaBeep, AMIGABEEP_SIZE);
@@ -364,6 +368,8 @@
 		return;
 	}
 
+	stopSfx(channel);
+
 	debugC(1, kDebugAudio, "AmigaSoundMan::playSfx(%s, %i)", filename, channel);
 
 	Channel *ch = &_channels[channel];


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