[Scummvm-cvs-logs] CVS: scummvm/scumm script.cpp,1.156,1.157

Max Horn fingolfin at users.sourceforge.net
Mon Apr 5 15:16:11 CEST 2004


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

Modified Files:
	script.cpp 
Log Message:
Paranoid fix for potential 64bit issue; some possibly useful debug output added

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -d -r1.156 -r1.157
--- script.cpp	4 Apr 2004 23:29:09 -0000	1.156
+++ script.cpp	5 Apr 2004 22:02:58 -0000	1.157
@@ -429,7 +429,7 @@
 
 byte ScummEngine::fetchScriptByte() {
 	if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) {
-		uint32 oldoffs = _scriptPointer - _scriptOrgPointer;
+		long oldoffs = _scriptPointer - _scriptOrgPointer;
 		getScriptBaseAddress();
 		_scriptPointer = _scriptOrgPointer + oldoffs;
 	}
@@ -439,7 +439,7 @@
 uint ScummEngine::fetchScriptWord() {
 	int a;
 	if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) {
-		uint32 oldoffs = _scriptPointer - _scriptOrgPointer;
+		long oldoffs = _scriptPointer - _scriptOrgPointer;
 		getScriptBaseAddress();
 		_scriptPointer = _scriptOrgPointer + oldoffs;
 	}
@@ -540,6 +540,8 @@
 }
 
 void ScummEngine::writeVar(uint var, int value) {
+	debugC(DEBUG_VARS, "writeVar(%d, %d)", var, value);
+
 	if (!(var & 0xF000)) {
 		checkRange(_numVariables - 1, 0, var, "Variable %d out of range(w)");
 
@@ -630,6 +632,7 @@
 
 void ScummEngine::push(int a) {
 	assert(_scummStackPos >= 0 && _scummStackPos < ARRAYSIZE(_vmStack));
+	//debug(9, "push %d", a);
 	_vmStack[_scummStackPos++] = a;
 }
 
@@ -637,8 +640,9 @@
 	if (_scummStackPos < 1 || _scummStackPos > ARRAYSIZE(_vmStack)) {
 		error("No items on stack to pop() for %s (0x%X) at [%d-%d]", getOpcodeDesc(_opcode), _opcode, _roomResource, vm.slot[_currentScript].number);
 	}
-
-	return _vmStack[--_scummStackPos];
+	--_scummStackPos;
+	//debug(9, "pop %d", _vmStack[_scummStackPos]);
+	return _vmStack[_scummStackPos];
 }
 
 void ScummEngine::stopObjectCode() {





More information about the Scummvm-git-logs mailing list