diff options
Diffstat (limited to 'common/timer.cpp')
| -rw-r--r-- | common/timer.cpp | 10 | 
1 files changed, 4 insertions, 6 deletions
| diff --git a/common/timer.cpp b/common/timer.cpp index 92229eecd6..f96a2e553a 100644 --- a/common/timer.cpp +++ b/common/timer.cpp @@ -91,12 +91,10 @@ int Timer::handler(int t) {  	for (l = 0; l < MAX_TIMERS; l++) {  		if (_timerSlots[l].procedure && _timerSlots[l].interval > 0) {  			_timerSlots[l].counter -= interval; -			// FIXME: We only check the value of _timerSlots[l].interval here -			// because the timer might remove itself. -			// Strictly spoken, that is a dirty thing to do for a timer, but for -			// now the bundle timer requires this. Of course the whole bundle -			// music timer is kind of scary anyway... -			while (_timerSlots[l].counter <= 0 && _timerSlots[l].interval > 0) { +			while (_timerSlots[l].counter <= 0) { +				// A small paranoia check which catches the case where +				// a timer removes itself (which it never should do). +				assert(_timerSlots[l].procedure && _timerSlots[l].interval > 0);  				_timerSlots[l].counter += _timerSlots[l].interval;  				_timerSlots[l].procedure(_timerSlots[l].refCon);  			} | 
