[Scummvm-git-logs] scummvm master -> 5b73cddc4e5c1f952f5036a00dba1b9e053f2521
sev-
sev at scummvm.org
Mon Aug 3 16:46:40 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5b73cddc4e DIRECTOR: LINGO: Made scummvmAssert* built-ins trace line numbers
Commit: 5b73cddc4e5c1f952f5036a00dba1b9e053f2521
https://github.com/scummvm/scummvm/commit/5b73cddc4e5c1f952f5036a00dba1b9e053f2521
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-03T18:46:13+02:00
Commit Message:
DIRECTOR: LINGO: Made scummvmAssert* built-ins trace line numbers
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index be2e1b710b..1b0da740fd 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -258,8 +258,8 @@ static struct BuiltinProto {
{ "lastWordOf", LB::b_lastwordof, 1, 1, false, 4, FBLTIN }, // D4 f
// ScummVM Asserts: Used for testing ScummVM's Lingo implementation
- { "scummvmAssert", LB::b_scummvmassert,1, 1, true, 2, HBLTIN },
- { "scummvmAssertEqual", LB::b_scummvmassertequal,2,2,true,2,HBLTIN },
+ { "scummvmAssert", LB::b_scummvmassert,1, 2, true, 2, HBLTIN },
+ { "scummvmAssertEqual", LB::b_scummvmassertequal,2,3,true,2,HBLTIN },
{ 0, 0, 0, 0, false, 0, VOIDSYM }
@@ -2438,21 +2438,23 @@ void LB::b_lastwordof(int nargs) {
}
void LB::b_scummvmassert(int nargs) {
+ Datum line = g_lingo->pop();
Datum d = g_lingo->pop();
if (d.asInt() == 0) {
- warning("LB::b_scummvmassert: is false");
+ warning("LB::b_scummvmassert: is false at line %d", line.asInt());
}
assert(d.asInt() != 0);
}
void LB::b_scummvmassertequal(int nargs) {
+ Datum line = g_lingo->pop();
Datum d2 = g_lingo->pop();
Datum d1 = g_lingo->pop();
int result = d1.equalTo(d2);
if (!result) {
- warning("LB::b_scummvmassertequals: %s is not equal %s", d1.asString().c_str(), d2.asString().c_str());
+ warning("LB::b_scummvmassertequals: %s is not equal %s at line %d", d1.asString().c_str(), d2.asString().c_str(), line.asInt());
}
assert(result == 1);
}
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index cd551282e2..632c093436 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -214,6 +214,14 @@ int Lingo::codeSetImmediate(bool state) {
}
int Lingo::codeCmd(Common::String *s, int numpar) {
+ // Insert current line number to our asserts
+ if (s->equalsIgnoreCase("scummvmAssert") || s->equalsIgnoreCase("scummvmAssertEqual")) {
+ g_lingo->code1(LC::c_intpush);
+ g_lingo->codeInt(g_lingo->_linenumber);
+
+ numpar++;
+ }
+
int ret = g_lingo->code1(LC::c_callcmd);
g_lingo->codeString(s->c_str());
More information about the Scummvm-git-logs
mailing list