[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