From 3125dfe66e7cad99f262eb05d26df05ca15c7a95 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Sat, 30 Jan 2010 15:37:20 +0000 Subject: Add some asserts to the RawAudioStream code. svn-id: r47720 --- sound/decoders/raw.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'sound/decoders/raw.cpp') diff --git a/sound/decoders/raw.cpp b/sound/decoders/raw.cpp index 29ca3a8813..0fe11f252c 100644 --- a/sound/decoders/raw.cpp +++ b/sound/decoders/raw.cpp @@ -94,8 +94,11 @@ public: // Add up length of all blocks in order to caluclate total play time int32 len = 0; - for (RawStreamBlockList::const_iterator i = _blocks.begin(); i != _blocks.end(); ++i) + for (RawStreamBlockList::const_iterator i = _blocks.begin(); i != _blocks.end(); ++i) { + assert(i->len % (stereo ? 2 : 1) == 0); len += i->len; + } + _playtime = Timestamp(0, len / (is16Bit ? 2 : 1) / (stereo ? 2 : 1), rate); } @@ -269,8 +272,11 @@ SeekableAudioStream *makeRawStream(Common::SeekableReadStream *stream, RawAudioStreamBlock block; block.pos = 0; + const bool isStereo = (flags & Audio::FLAG_STEREO) != 0; const bool is16Bit = (flags & Audio::FLAG_16BITS) != 0; + assert(stream->size() % ((is16Bit ? 2 : 1) * (isStereo ? 2 : 1)) == 0); + block.len = stream->size() / (is16Bit ? 2 : 1); blocks.push_back(block); -- cgit v1.2.3