[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_bndmgr.cpp,1.24,1.25
Pawel Kolodziejski
aquadran at users.sourceforge.net
Sat Sep 4 07:28:00 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13072/scummvm/scumm/imuse_digi
Modified Files:
dimuse_bndmgr.cpp
Log Message:
added error info for bundle mgr bug
Index: dimuse_bndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_bndmgr.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- dimuse_bndmgr.cpp 28 Aug 2004 14:06:32 -0000 1.24
+++ dimuse_bndmgr.cpp 4 Sep 2004 14:27:16 -0000 1.25
@@ -172,7 +172,7 @@
_file.seek(8, SEEK_CUR);
if (tag != MKID_BE('COMP')) {
- warning("BundleMgr::decompressSampleByIndex() Compressed sound %d invalid (%s)", index, tag2str(tag));
+ warning("BundleMgr::loadCompTable() Compressed sound %d invalid (%s)", index, tag2str(tag));
return false;
}
@@ -199,7 +199,7 @@
int32 BundleMgr::decompressSampleByIndex(int32 index, int32 offset, int32 size, byte **comp_final, int header_size, bool header_outside) {
int32 i, final_size, output_size;
int skip, first_block, last_block;
-
+
assert(0 <= index && index < _numFiles);
if (_file.isOpen() == false) {
@@ -217,7 +217,7 @@
if (!_compTableLoaded)
return 0;
}
-
+
first_block = (offset + header_size) / 0x2000;
last_block = (offset + header_size + size - 1) / 0x2000;
@@ -238,6 +238,9 @@
_file.seek(_bundleTable[index].offset + _compTable[i].offset, SEEK_SET);
_file.read(_compInput, _compTable[i].size);
_outputSize = BundleCodecs::decompressCodec(_compTable[i].codec, _compInput, _compOutput, _compTable[i].size);
+ if (_outputSize > 0x2000) {
+ error("_outputSize: %d", _outputSize);
+ }
_lastBlock = i;
}
@@ -254,7 +257,10 @@
output_size = size;
assert(final_size + output_size <= blocks_final_size);
- assert(skip + output_size <= (int)sizeof(_compOutput));
+
+ if ((skip + output_size) > 0x2000) {
+ error("skip: %d, output_size: %d, _outputSize: %d", skip, output_size, _outputSize);
+ }
memcpy(*comp_final + final_size, _compOutput + skip, output_size);
final_size += output_size;
More information about the Scummvm-git-logs
mailing list