[Scummvm-cvs-logs] CVS: scummvm/scumm/smush codec47.cpp,1.14,1.15

James Brown ender at users.sourceforge.net
Wed Jan 8 14:32:06 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1:/tmp/cvs-serv14657/scumm/smush

Modified Files:
	codec47.cpp 
Log Message:
subcode lvl3:0xFD fix. this sub writes into oob+1 memory :/


Index: codec47.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/codec47.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- codec47.cpp	8 Jan 2003 21:39:21 -0000	1.14
+++ codec47.cpp	8 Jan 2003 22:31:35 -0000	1.15
@@ -772,8 +772,6 @@
 		return;
 	}
 	if (code == 0xFD) {
-		d_src += 4;
-		return;
 		byte * tmp_ptr = (*(d_src + 1) << 7) + (byte*)codec47_decode2_buf2;
 		int32 l = *(tmp_ptr + 96);
 		byte val = *(d_src + 2);
@@ -781,14 +779,14 @@
 		do {
 			*(d_dst + *(tmp_ptr2)) = val;
 			tmp_ptr2++;
-		} while (--l);
+		} while (--l > 0);
 		l = *(tmp_ptr + 97);
 		val = *(d_src + 3);
 		tmp_ptr2 = (int16*)(tmp_ptr + 32);
 		do {
 			*(d_dst + *(tmp_ptr2)) = val;
 			tmp_ptr2++;
-		} while (--l);
+		} while (--l > 0);
 		d_src += 4;
 		return;
 	}
@@ -991,7 +989,7 @@
 
 		int32 frame_size = getRect().width() * getRect().height();
 		_deltaSize = frame_size * 3;
-		_deltaBuf = new byte[_deltaSize + 1000000];
+		_deltaBuf = new byte[_deltaSize];
 		_deltaBufs[0] = _deltaBuf;
 		_deltaBufs[1] = _deltaBuf + frame_size;
 		_curBuf = _deltaBuf + frame_size * 2;





More information about the Scummvm-git-logs mailing list