[Scummvm-git-logs] scummvm master -> 3f4425fa9e7b9ae9514b027e6e1ac628f6cdef24

elasota noreply at scummvm.org
Sat Jun 10 00:09:10 UTC 2023


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:
3f4425fa9e MTROPOLIS: Terminate message propagation if the message target was deleted.  Fixes infinite loop when exiting MTI piano 


Commit: 3f4425fa9e7b9ae9514b027e6e1ac628f6cdef24
    https://github.com/scummvm/scummvm/commit/3f4425fa9e7b9ae9514b027e6e1ac628f6cdef24
Author: elasota (ejlasota at gmail.com)
Date: 2023-06-09T20:08:42-04:00

Commit Message:
MTROPOLIS: Terminate message propagation if the message target was deleted.  Fixes infinite loop when exiting MTI piano scene.

Changed paths:
    engines/mtropolis/runtime.cpp


diff --git a/engines/mtropolis/runtime.cpp b/engines/mtropolis/runtime.cpp
index 9afa3f68d70..6f5e5819788 100644
--- a/engines/mtropolis/runtime.cpp
+++ b/engines/mtropolis/runtime.cpp
@@ -3755,18 +3755,24 @@ VThreadState MessageDispatch::continuePropagating(Runtime *runtime) {
 
 		switch (stackTop.propagationStage) {
 		case PropagationStack::kStageCheckAndSendCommand:
-			if (_root.expired())
+			if (_root.expired()) {
+				_terminated = true;
 				return kVThreadReturn;
+			}
 			stackTop.propagationStage = PropagationStack::kStageSendCommand;
 			break;
 		case PropagationStack::kStageCheckAndSendToStructural:
-			if (_root.expired())
+			if (_root.expired()) {
+				_terminated = true;
 				return kVThreadReturn;
+			}
 			stackTop.propagationStage = PropagationStack::kStageSendToStructuralSelf;
 			break;
 		case PropagationStack::kStageCheckAndSendToModifier:
-			if (_root.expired())
+			if (_root.expired()) {
+				_terminated = true;
 				return kVThreadReturn;
+			}
 			stackTop.propagationStage = PropagationStack::kStageSendToModifier;
 			break;
 		case PropagationStack::kStageSendToModifier: {




More information about the Scummvm-git-logs mailing list