[Scummvm-cvs-logs] SF.net SVN: scummvm: [22120] scummvm/trunk/engines/scumm

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Apr 23 15:41:01 CEST 2006


Revision: 22120
Author:   fingolfin
Date:     2006-04-23 15:39:55 -0700 (Sun, 23 Apr 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22120&view=rev

Log Message:
-----------
Detect (and error out) if readMAXS fails

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/he/resource_he.cpp
    scummvm/trunk/engines/scumm/resource.cpp
Modified: scummvm/trunk/engines/scumm/he/resource_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/resource_he.cpp	2006-04-23 21:58:01 UTC (rev 22119)
+++ scummvm/trunk/engines/scumm/he/resource_he.cpp	2006-04-23 22:39:55 UTC (rev 22120)
@@ -1683,9 +1683,8 @@
 
 		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
 		_numGlobalScripts = 2048;
-	}
-
-	ScummEngine_v90he::readMAXS(blockSize);
+	} else
+		ScummEngine_v90he::readMAXS(blockSize);
 }
 
 void ScummEngine_v90he::readMAXS(int blockSize) {
@@ -1718,9 +1717,8 @@
 			_numGlobalScripts = 2048;
 		else
 			_numGlobalScripts = 200;
-	}
-
-	ScummEngine_v72he::readMAXS(blockSize);
+	} else
+		ScummEngine_v72he::readMAXS(blockSize);
 }
 
 void ScummEngine_v72he::readMAXS(int blockSize) {
@@ -1747,9 +1745,8 @@
 
 		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
 		_numGlobalScripts = 200;
-	}
-
-	ScummEngine_v6::readMAXS(blockSize);
+	} else
+		ScummEngine_v6::readMAXS(blockSize);
 }
 
 byte *ScummEngine_v72he::getStringAddress(int i) {

Modified: scummvm/trunk/engines/scumm/resource.cpp
===================================================================
--- scummvm/trunk/engines/scumm/resource.cpp	2006-04-23 21:58:01 UTC (rev 22119)
+++ scummvm/trunk/engines/scumm/resource.cpp	2006-04-23 22:39:55 UTC (rev 22120)
@@ -1181,13 +1181,16 @@
 			_shadowPaletteSize = 256;
 			_shadowPalette = (byte *)calloc(_shadowPaletteSize, 1);
 		}
-	}
+	} else
+		error("readMAXS(%d) failed to read MAXS data", blockSize);
 }
 
 void ScummEngine::readGlobalObjects() {
 	int i;
 	int num = _fileHandle->readUint16LE();
 	assert(num == _numGlobalObjects);
+	assert(_objectStateTable);
+	assert(_objectOwnerTable);
 
 	_fileHandle->read(_objectOwnerTable, num);
 	for (i = 0; i < num; i++) {
@@ -1209,6 +1212,8 @@
 	int i;
 	int num = _fileHandle->readUint32LE();
 	assert(num == _numGlobalObjects);
+	assert(_objectStateTable);
+	assert(_objectOwnerTable);
 
 	_objectIDMap = new ObjectNameId[num];
 	_objectIDMapSize = num;
@@ -1233,6 +1238,8 @@
 void ScummEngine_v7::readGlobalObjects() {
 	int num = _fileHandle->readUint16LE();
 	assert(num == _numGlobalObjects);
+	assert(_objectStateTable);
+	assert(_objectOwnerTable);
 
 	_fileHandle->read(_objectStateTable, num);
 	_fileHandle->read(_objectRoomTable, num);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the Scummvm-git-logs mailing list