Browse Source

a set logic error

Cary Sandvig 25 years ago
parent
commit
abf03aa012
1 changed files with 2 additions and 1 deletions
  1. 2 1
      panda/src/audio/audio_manager.cxx

+ 2 - 1
panda/src/audio/audio_manager.cxx

@@ -47,8 +47,9 @@ void AudioManager::set_update_func(AudioManager::UpdateFunc* func) {
 void AudioManager::ns_update(void) {
   // handle looping
   if (_loopset != (LoopSet*)0L)
-    for (LoopSet::iterator i=_loopset->begin(); i!=_loopset->end(); ++i) {
+    for (LoopSet::iterator i=_loopset->begin(); i!=_loopset->end();) {
       AudioSound* sound = *i;
+      ++i;  // because the sound may be removed from the set durring this
       if (sound->status() == AudioSound::READY) {
 	if (audio_cat->is_debug())
 	  audio_cat->debug() << "AudioManager::ns_update looping '"