- Return 0 in makeVorbisStream and makeFlacStream, in case creating the stream failed.

- Add a TODO in the MP3 code for the same behavior.

svn-id: r47841
This commit is contained in:
Johannes Schickel 2010-02-03 08:58:52 +00:00
parent 5115c94f35
commit c040eeca44
3 changed files with 15 additions and 2 deletions

View File

@ -729,7 +729,13 @@ void FlacInputStream::callWrapError(const ::FLAC__SeekableStreamDecoder *decoder
SeekableAudioStream *makeFlacStream(
Common::SeekableReadStream *stream,
DisposeAfterUse::Flag disposeAfterUse) {
return new FlacInputStream(stream, disposeAfterUse);
SeekableAudioStream *s = new FlacInputStream(stream, disposeAfterUse);
if (s && s->endOfData()) {
delete s;
return 0;
} else {
return s;
}
}
} // End of namespace Audio

View File

@ -338,6 +338,7 @@ int MP3InputStream::readBuffer(int16 *buffer, const int numSamples) {
SeekableAudioStream *makeMP3Stream(
Common::SeekableReadStream *stream,
DisposeAfterUse::Flag disposeAfterUse) {
// TODO: Properly check whether creating the MP3 stream succeeded.
return new MP3InputStream(stream, disposeAfterUse);
}

View File

@ -244,7 +244,13 @@ bool VorbisInputStream::refill() {
SeekableAudioStream *makeVorbisStream(
Common::SeekableReadStream *stream,
DisposeAfterUse::Flag disposeAfterUse) {
return new VorbisInputStream(stream, disposeAfterUse);
SeekableAudioStream *s = new VorbisInputStream(stream, disposeAfterUse);
if (s && s->endOfData()) {
delete s;
return 0;
} else {
return s;
}
}
} // End of namespace Audio