mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
TIMER: Add a comment to explain why we remove the name in removeTimerProc.
This commit is contained in:
parent
c443f113ed
commit
930f626dab
@ -162,6 +162,18 @@ void DefaultTimerManager::removeTimerProc(TimerProc callback) {
|
||||
}
|
||||
}
|
||||
|
||||
// We need to remove all names referencing the timer proc here.
|
||||
//
|
||||
// Else we run into troubles, when the client code removes and readds timer
|
||||
// callbacks.
|
||||
//
|
||||
// Another issues occurs when one plays a game with ALSA as music driver,
|
||||
// does RTL and starts a different engine game with ALSA as music driver.
|
||||
// In this case the MPU401 code will add different timer procs with the
|
||||
// same name, resulting in two different callbacks added with the same
|
||||
// name and causing installTimerProc to error out.
|
||||
// A good test case is running a SCUMM with ALSA output and then a KYRA
|
||||
// game for example.
|
||||
for (TimerSlotMap::iterator i = _callbacks.begin(), end = _callbacks.end(); i != end; ++i) {
|
||||
if (i->_value == callback)
|
||||
_callbacks.erase(i);
|
||||
|
Loading…
Reference in New Issue
Block a user