[Scummvm-cvs-logs] scummvm master -> cea06991ebab97c72e9fd89a4bf63835bcf0de80

lordhoto lordhoto at gmail.com
Wed Aug 10 18:26:04 CEST 2011


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:
cea06991eb TIMER: Remove name of callback in removeTimerProc.


Commit: cea06991ebab97c72e9fd89a4bf63835bcf0de80
    https://github.com/scummvm/scummvm/commit/cea06991ebab97c72e9fd89a4bf63835bcf0de80
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-08-10T09:22:25-07:00

Commit Message:
TIMER: Remove name of callback in removeTimerProc.

This should fix #3389673 "LOOM: CD-Version crashes at start". It also fixes the
same error showing up for me in Monkey CD.

The doc changes in 4c7958450f628937270f claims the name is used for the event
recorder, but as far as I can tell it is not used right now. Thus depending on
how it is used the behavior of SCUMM removing and adding the same timer aagain
*might* cause problems.

In any way we need to remove the name in removeTimerProc, else RTL + launching
the same game again would be broken too.

Changed paths:
    backends/timer/default/default-timer.cpp



diff --git a/backends/timer/default/default-timer.cpp b/backends/timer/default/default-timer.cpp
index efb3ec9..28524bf 100644
--- a/backends/timer/default/default-timer.cpp
+++ b/backends/timer/default/default-timer.cpp
@@ -161,4 +161,11 @@ void DefaultTimerManager::removeTimerProc(TimerProc callback) {
 			slot = slot->next;
 		}
 	}
+
+	for (TimerSlotMap::iterator i = _callbacks.begin(), end = _callbacks.end(); i != end; ++i) {
+		if (i->_value == callback) {
+			_callbacks.erase(i);
+			break;
+		}
+	}
 }






More information about the Scummvm-git-logs mailing list