diff options
| author | Max Horn | 2008-01-05 22:35:30 +0000 | 
|---|---|---|
| committer | Max Horn | 2008-01-05 22:35:30 +0000 | 
| commit | 923ad313dc1e85ff3e2169f08abe0b2e016896c2 (patch) | |
| tree | 9f2997cd35bae683006e1d75382040e81dfd500f /engines/scumm/imuse_digi/dimuse_script.cpp | |
| parent | 64601d446f3de6099e3f2d043bfde3136e4a330d (diff) | |
| download | scummvm-rg350-923ad313dc1e85ff3e2169f08abe0b2e016896c2.tar.gz scummvm-rg350-923ad313dc1e85ff3e2169f08abe0b2e016896c2.tar.bz2 scummvm-rg350-923ad313dc1e85ff3e2169f08abe0b2e016896c2.zip | |
Let the audio mixer delete the streamSou object
svn-id: r30265
Diffstat (limited to 'engines/scumm/imuse_digi/dimuse_script.cpp')
| -rw-r--r-- | engines/scumm/imuse_digi/dimuse_script.cpp | 20 | 
1 files changed, 4 insertions, 16 deletions
| diff --git a/engines/scumm/imuse_digi/dimuse_script.cpp b/engines/scumm/imuse_digi/dimuse_script.cpp index 0d3ee7440b..9e3337076a 100644 --- a/engines/scumm/imuse_digi/dimuse_script.cpp +++ b/engines/scumm/imuse_digi/dimuse_script.cpp @@ -175,17 +175,12 @@ void IMuseDigital::flushTrack(Track *track) {  		if (track->stream->endOfStream()) {  			_mixer->stopHandle(track->mixChanHandle);  			delete track->stream; -			track->stream = NULL;  			_sound->closeSound(track->soundDesc); -			track->soundDesc = NULL; -			track->used = false; +			memset(track, 0, sizeof(Track));  		}  	} else { -		assert(track->streamSou);  		_mixer->stopHandle(track->mixChanHandle); -		delete track->streamSou; -		track->streamSou = NULL; -		track->used = false; +		memset(track, 0, sizeof(Track));  	}  } @@ -400,22 +395,15 @@ void IMuseDigital::stopAllSounds() {  			// Stop the sound output, *now*. No need to use toBeRemoved etc.  			// as we are protected by a mutex, and this method is never called  			// from IMuseDigital::callback either. +			_mixer->stopHandle(track->mixChanHandle);  			if (!track->souStreamUsed) {  				assert(track->stream); -				_mixer->stopHandle(track->mixChanHandle);  				delete track->stream;  				_sound->closeSound(track->soundDesc); -			} else if (track->streamSou) { -				assert(track->streamSou); -				_mixer->stopHandle(track->mixChanHandle); -				delete track->streamSou;  			}  			// Mark the track as unused -			track->soundDesc = NULL; -			track->streamSou = NULL; -			track->stream = NULL; -			track->used = false; +			memset(track, 0, sizeof(Track));  		}  	}  } | 
