aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2014-07-08 21:18:05 +0200
committerWillem Jan Palenstijn2014-07-08 21:18:12 +0200
commita22f9bccf3624a0f9a085391edddeef47eaa8c5f (patch)
tree9560b223e38a3f2497ce970b7e9e02a935533a86
parent24595ede3b5d99e315f0d1dd05d85752f6553a05 (diff)
downloadscummvm-rg350-a22f9bccf3624a0f9a085391edddeef47eaa8c5f.tar.gz
scummvm-rg350-a22f9bccf3624a0f9a085391edddeef47eaa8c5f.tar.bz2
scummvm-rg350-a22f9bccf3624a0f9a085391edddeef47eaa8c5f.zip
VIDEO: Reduce BinkDecoder stack usage
See bug #6677.
-rw-r--r--video/bink_decoder.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/video/bink_decoder.cpp b/video/bink_decoder.cpp
index be4dc549a4..a228377a27 100644
--- a/video/bink_decoder.cpp
+++ b/video/bink_decoder.cpp
@@ -108,20 +108,18 @@ bool BinkDecoder::loadStream(Common::SeekableReadStream *stream) {
uint32 audioTrackCount = _bink->readUint32LE();
if (audioTrackCount > 0) {
- _audioTracks.reserve(audioTrackCount);
+ _audioTracks.resize(audioTrackCount);
_bink->skip(4 * audioTrackCount);
// Reading audio track properties
for (uint32 i = 0; i < audioTrackCount; i++) {
- AudioInfo track;
+ AudioInfo &track = _audioTracks[i];
track.sampleRate = _bink->readUint16LE();
track.flags = _bink->readUint16LE();
- _audioTracks.push_back(track);
-
- initAudioTrack(_audioTracks[i]);
+ initAudioTrack(track);
}
_bink->skip(4 * audioTrackCount);