[Scummvm-cvs-logs] SF.net SVN: scummvm:[46407] tools/branches/gsoc2009-gui/compress_scumm_san. cpp
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Thu Dec 17 22:12:21 CET 2009
Revision: 46407
http://scummvm.svn.sourceforge.net/scummvm/?rev=46407&view=rev
Author: fingolfin
Date: 2009-12-17 21:12:20 +0000 (Thu, 17 Dec 2009)
Log Message:
-----------
TOOLS: Don't memset C++ objects... and catch exception when the end of the file is reached
Modified Paths:
--------------
tools/branches/gsoc2009-gui/compress_scumm_san.cpp
Modified: tools/branches/gsoc2009-gui/compress_scumm_san.cpp
===================================================================
--- tools/branches/gsoc2009-gui/compress_scumm_san.cpp 2009-12-17 20:30:19 UTC (rev 46406)
+++ tools/branches/gsoc2009-gui/compress_scumm_san.cpp 2009-12-17 21:12:20 UTC (rev 46407)
@@ -45,7 +45,7 @@
int bits = 16;
int chan = 2;
byte wav[44];
- memset (wav, 0, 44);
+ memset(wav, 0, 44);
wav[0] = 'R';
wav[1] = 'I';
wav[2] = 'F';
@@ -650,9 +650,21 @@
FrameInfo *frameInfo = (FrameInfo *)malloc(sizeof(FrameInfo) * nbframes);
- memset(_audioTracks, 0, sizeof(AudioTrackInfo) * COMPRESS_SCUMM_SAN_MAX_TRACKS);
for (l = 0; l < COMPRESS_SCUMM_SAN_MAX_TRACKS; l++) {
_audioTracks[l].animFrame = -1;
+ _audioTracks[l].trackId = 0;
+ _audioTracks[l].bits = 0;
+ _audioTracks[l].stereo = 0;
+ _audioTracks[l].freq = 0;
+ _audioTracks[l].used = 0;
+ _audioTracks[l].waveDataSize = 0;
+ _audioTracks[l].volumes = 0;
+ _audioTracks[l].pans = 0;
+ _audioTracks[l].sizes = 0;
+ _audioTracks[l].nbframes = 0;
+ _audioTracks[l].countFrames = 0;
+ _audioTracks[l].lastFrame = 0;
+ _audioTracks[l].sdatSize = 0;
}
bool tracksCompress = false;
@@ -676,7 +688,11 @@
frameInfo[l].lessPSADSize = 0;
output.writeUint32BE(frameSize);
for (;;) {
- tag = input.readUint32BE(); // chunk tag
+ try {
+ tag = input.readUint32BE(); // chunk tag
+ } catch(...) {
+ break;
+ }
if (input.eos())
break;
if (tag == 'FRME') {
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