[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_bndmgr.cpp,1.4,1.5

Pawel Kolodziejski aquadran at users.sourceforge.net
Tue Jan 6 19:54:00 CET 2004


Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1:/tmp/cvs-serv19348

Modified Files:
	dimuse_bndmgr.cpp 
Log Message:
less memory usage

Index: dimuse_bndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_bndmgr.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- dimuse_bndmgr.cpp	7 Jan 2004 03:39:33 -0000	1.4
+++ dimuse_bndmgr.cpp	7 Jan 2004 03:53:36 -0000	1.5
@@ -188,6 +188,7 @@
 		comp_input = (byte *)malloc(_compTable[i].size + 1);
 		comp_input[_compTable[i].size] = 0;
 
+		byte *curBuf;
 		if (_lastBlock != i) {
 			_file.seek(_bundleTable[index].offset + _compTable[i].offset, SEEK_SET);
 			_file.read(comp_input, _compTable[i].size);
@@ -196,10 +197,11 @@
 			assert(output_size <= 0x2000);
 			_lastBlock = i;
 			_lastCacheOutputSize = output_size;
-			memcpy(&_blockChache, comp_output, output_size);
+			memcpy(_blockChache, comp_output, output_size);
+			curBuf = comp_output;
 		} else {
 			output_size = _lastCacheOutputSize;
-			memcpy(comp_output, &_blockChache, output_size);
+			curBuf = _blockChache;
 		}
 
 		if ((header_size != 0) && (skip > header_size))
@@ -207,7 +209,8 @@
 		if (output_size > size)
 			output_size = size;
 
-		memcpy(*comp_final + final_size, comp_output + skip, output_size);
+		memcpy(*comp_final + final_size, curBuf + skip, output_size);
+
 		final_size += output_size;
 		size -= output_size;
 		skip = 0;





More information about the Scummvm-git-logs mailing list