mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-01 08:23:15 +00:00
Fix a memory leak.
svn-id: r47227
This commit is contained in:
parent
6ca0570fe3
commit
0447a7f9f8
@ -305,13 +305,10 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
|
||||
if (!_digitalMusicContext->isCompressed()) {
|
||||
byte musicFlags = Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_STEREO |
|
||||
Audio::Mixer::FLAG_16BITS | Audio::Mixer::FLAG_LITTLE_ENDIAN;
|
||||
if (flags == MUSIC_LOOP)
|
||||
musicFlags |= Audio::Mixer::FLAG_LOOP;
|
||||
|
||||
Audio::LinearDiskStreamAudioBlock audioBlocks[1];
|
||||
audioBlocks[0].pos = 0;
|
||||
audioBlocks[0].len = resData->size / 2; // 16-bit sound
|
||||
audioStream = Audio::makeLinearDiskStream(musicStream, audioBlocks, 1, 11025, musicFlags, false);
|
||||
audioStream = Audio::makeLinearDiskStream(musicStream, audioBlocks, 1, 11025, musicFlags, true);
|
||||
} else {
|
||||
// Read compressed header to determine compression type
|
||||
musicFile->seek((uint32)resData->offset, SEEK_SET);
|
||||
@ -319,18 +316,21 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
|
||||
|
||||
if (identifier == 0) { // MP3
|
||||
#ifdef USE_MAD
|
||||
audioStream = Audio::makeMP3Stream(musicStream, false);
|
||||
audioStream = Audio::makeMP3Stream(musicStream, true);
|
||||
#endif
|
||||
} else if (identifier == 1) { // OGG
|
||||
#ifdef USE_VORBIS
|
||||
audioStream = Audio::makeVorbisStream(musicStream, false);
|
||||
audioStream = Audio::makeVorbisStream(musicStream, true);
|
||||
#endif
|
||||
} else if (identifier == 2) { // FLAC
|
||||
#ifdef USE_FLAC
|
||||
audioStream = Audio::makeFlacStream(musicStream, false);
|
||||
audioStream = Audio::makeFlacStream(musicStream, true);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (!audioStream)
|
||||
delete musicStream;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user