[Scummvm-cvs-logs] SF.net SVN: scummvm:[50380] scummvm/trunk/engines/sci/engine/vm.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Sun Jun 27 18:09:17 CEST 2010


Revision: 50380
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50380&view=rev
Author:   m_kiewitz
Date:     2010-06-27 16:09:17 +0000 (Sun, 27 Jun 2010)

Log Message:
-----------
SCI: now showing kernel call name when argument signature check fails

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/vm.cpp

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2010-06-27 16:02:03 UTC (rev 50379)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-06-27 16:09:17 UTC (rev 50380)
@@ -654,16 +654,16 @@
 	}
 }
 
-static void callKernelFunc(EngineState *s, int kernelFuncNum, int argc) {
+static void callKernelFunc(EngineState *s, int kernelFuncNr, int argc) {
 
-	if (kernelFuncNum >= (int)g_sci->getKernel()->_kernelFuncs.size())
-		error("Invalid kernel function 0x%x requested", kernelFuncNum);
+	if (kernelFuncNr >= (int)g_sci->getKernel()->_kernelFuncs.size())
+		error("Invalid kernel function 0x%x requested", kernelFuncNr);
 
-	const KernelFuncWithSignature &kernelFunc = g_sci->getKernel()->_kernelFuncs[kernelFuncNum];
+	const KernelFuncWithSignature &kernelFunc = g_sci->getKernel()->_kernelFuncs[kernelFuncNr];
 
 	if (kernelFunc.signature
 			&& !g_sci->getKernel()->signatureMatch(kernelFunc.signature, argc, s->xs->sp + 1)) {
-		error("[VM] Invalid arguments to kernel call %x", kernelFuncNum);
+		error("[VM] Invalid arguments to kernel call k%s (funcNr %x)", g_sci->getKernel()->getKernelName(kernelFuncNr).c_str(), kernelFuncNr);
 	}
 
 	reg_t *argv = s->xs->sp + 1;
@@ -675,15 +675,15 @@
 		ExecStack *xstack;
 		xstack = add_exec_stack_entry(s->_executionStack, NULL_REG, NULL, NULL_REG, argc, argv - 1, 0, -1, -1, NULL_REG,
 				  s->_executionStack.size()-1, SCI_XS_CALLEE_LOCALS);
-		xstack->selector = kernelFuncNum;
+		xstack->selector = kernelFuncNr;
 		xstack->type = EXEC_STACK_TYPE_KERNEL;
 
 		//warning("callk %s", kernelFunc.origName.c_str());
 
 		// TODO: SCI2.1 equivalent
 		if (s->loadFromLauncher >= 0 && (
-				(kernelFuncNum == 0x8 && getSciVersion() <= SCI_VERSION_1_1) ||     // DrawPic
-				(kernelFuncNum == 0x3d && getSciVersion() == SCI_VERSION_2)         // GetSaveDir
+				(kernelFuncNr == 0x8 && getSciVersion() <= SCI_VERSION_1_1) ||     // DrawPic
+				(kernelFuncNr == 0x3d && getSciVersion() == SCI_VERSION_2)         // GetSaveDir
 				//(kernelFuncNum == 0x28 && getSciVersion() == SCI_VERSION_2_1)       // AddPlane
 				)) {
 
@@ -726,7 +726,7 @@
 			s->_executionStack.pop_back();
 	} else {
 		Common::String warningMsg = "Dummy function " + kernelFunc.origName +
-									Common::String::printf("[0x%x]", kernelFuncNum) +
+									Common::String::printf("[0x%x]", kernelFuncNr) +
 									" invoked - ignoring. Params: " +
 									Common::String::printf("%d", argc) + " (";
 


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