[Scummvm-git-logs] scummvm master -> 80f83e256561d7f8aa80e6eed990871e815af499

moralrecordings code at moral.net.au
Sun May 31 07:05:47 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
729e9768a2 DIRECTOR: LINGO: Fix executeHandler
80f83e2565 DIRECTOR: LINGO: Stop execution when the call stack is empty


Commit: 729e9768a25db89067451ae0d72822f3095d1807
    https://github.com/scummvm/scummvm/commit/729e9768a25db89067451ae0d72822f3095d1807
Author: Scott Percival (code at moral.net.au)
Date: 2020-05-31T15:02:19+08:00

Commit Message:
DIRECTOR: LINGO: Fix executeHandler

executeHandler is called by the main loop, and should start code execution.

Changed paths:
    engines/director/lingo/lingo.cpp


diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 22a9ca5976..c0fe343207 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -399,6 +399,7 @@ void Lingo::executeHandler(Common::String name) {
 
 	debugC(1, kDebugLingoExec, "Executing script handler : %s", name.c_str());
 	LC::call(name, 0);
+	execute(_pc);
 
 	cleanLocalVars();
 }


Commit: 80f83e256561d7f8aa80e6eed990871e815af499
    https://github.com/scummvm/scummvm/commit/80f83e256561d7f8aa80e6eed990871e815af499
Author: Scott Percival (code at moral.net.au)
Date: 2020-05-31T15:04:07+08:00

Commit Message:
DIRECTOR: LINGO: Stop execution when the call stack is empty

Changed paths:
    engines/director/lingo/lingo-code.cpp


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index a3446ba592..85ad346c2d 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1417,7 +1417,7 @@ void LC::call(Symbol *sym, int nargs) {
 }
 
 void LC::c_procret() {
-	if (!g_lingo->_callstack.size()) {
+	if (g_lingo->_callstack.size() == 0) {
 		warning("c_procret: Call stack underflow");
 		g_lingo->_abort = true;
 		return;
@@ -1443,6 +1443,12 @@ void LC::c_procret() {
 	g_lingo->_localvars = fp->localvars;
 
 	delete fp;
+
+	if (g_lingo->_callstack.size() == 0) {
+		debugC(5, kDebugLingoExec, "Call stack empty, returning");
+		g_lingo->_abort = true;
+		return;
+	}
 }
 
 void LC::c_global() {




More information about the Scummvm-git-logs mailing list