[Scummvm-cvs-logs] CVS: scummvm/sword2 memory.cpp,1.27,1.28

Torbjörn Andersson eriktorbjorn at users.sourceforge.net
Wed Jun 9 23:34:07 CEST 2004


Update of /cvsroot/scummvm/scummvm/sword2
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19747

Modified Files:
	memory.cpp 
Log Message:
Added another assert(). I'm hunting - unsuccessfully so far - for a
reproducable crash where an invalid pointer is decoded. Strangely, I never
saw it being encoded... Oh well, I'll find it eventually.


Index: memory.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/memory.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- memory.cpp	8 Jun 2004 06:53:35 -0000	1.27
+++ memory.cpp	10 Jun 2004 06:33:11 -0000	1.28
@@ -101,12 +101,13 @@
 
 	assert(id <= 0x03ff);
 	assert(offset <= 0x003fffff);
+	assert(offset < _memBlocks[id].size);
 
 	return (id << 22) | (ptr - _memBlocks[id].ptr);
 }
 
 byte *MemoryManager::decodePtr(int32 n) {
-	int16 id = (n >> 22) & 0x03ff;
+	uint32 id = (n & 0xffc00000) >> 22;
 	uint32 offset = n & 0x003fffff;
 
 	assert(_memBlocks[id].ptr);





More information about the Scummvm-git-logs mailing list