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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Fri Jul 9 23:51:21 CEST 2010


Revision: 50774
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50774&view=rev
Author:   m_kiewitz
Date:     2010-07-09 21:51:20 +0000 (Fri, 09 Jul 2010)

Log Message:
-----------
SCI: improve error message on subcall signature mismatch

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-07-09 21:49:07 UTC (rev 50773)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-07-09 21:51:20 UTC (rev 50774)
@@ -831,7 +831,12 @@
 				workaround = trackOriginAndFindWorkaround(0, kernelSubCall.workarounds, &originReply);
 				if ((workaround.segment == 0xFFFF) && (workaround.offset == 0xFFFF)) {
 					kernel->signatureDebug(kernelSubCall.signature, argc, argv);
-					error("[VM] k%s (%x) signature mismatch via method %s::%s (script %d, localCall %x)", kernelSubCall.name, kernelCallNr, originReply.objectName.c_str(), originReply.methodName.c_str(), originReply.scriptNr, originReply.localCallOffset);
+					int callNameLen = strlen(kernelCall.name);
+					if (strncmp(kernelCall.name, kernelSubCall.name, callNameLen) == 0) {
+						const char *subCallName = kernelSubCall.name + callNameLen;
+						error("[VM] k%s(%s): signature mismatch via method %s::%s (script %d, localCall %x)", kernelCall.name, subCallName, originReply.objectName.c_str(), originReply.methodName.c_str(), originReply.scriptNr, originReply.localCallOffset);
+					}
+					error("[VM] k%s: signature mismatch via method %s::%s (script %d, localCall %x)", kernelSubCall.name, originReply.objectName.c_str(), originReply.methodName.c_str(), originReply.scriptNr, originReply.localCallOffset);
 				}
 				// FIXME: implement some real workaround type logic - ignore call, still do call etc.
 				if (workaround.segment)


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