diff options
author | Thomas Fach-Pedersen | 2014-05-30 13:53:42 -0700 |
---|---|---|
committer | Eugene Sandulenko | 2016-09-29 22:33:35 +0200 |
commit | d93ecabc7ae5a24dabc4e21a6fcb5ec37e74566d (patch) | |
tree | 329fd0247ef27dd84486fe47c2b024380620436e /engines/bladerunner/vqa_decoder.cpp | |
parent | eefea240c72a464857fbe463b8604c6ffa112e8f (diff) | |
download | scummvm-rg350-d93ecabc7ae5a24dabc4e21a6fcb5ec37e74566d.tar.gz scummvm-rg350-d93ecabc7ae5a24dabc4e21a6fcb5ec37e74566d.tar.bz2 scummvm-rg350-d93ecabc7ae5a24dabc4e21a6fcb5ec37e74566d.zip |
BLADERUNNER: Fix memory leaks in VQADecoder
Diffstat (limited to 'engines/bladerunner/vqa_decoder.cpp')
-rw-r--r-- | engines/bladerunner/vqa_decoder.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/bladerunner/vqa_decoder.cpp b/engines/bladerunner/vqa_decoder.cpp index ba30e73ee4..f2aee5dd33 100644 --- a/engines/bladerunner/vqa_decoder.cpp +++ b/engines/bladerunner/vqa_decoder.cpp @@ -118,6 +118,9 @@ const char *strTag(uint32 tag) VQADecoder::VQADecoder() : _s(nullptr), + _frameInfo(nullptr), + _videoTrack(nullptr), + _audioTrack(nullptr), _maxVIEWChunkSize(0), _maxZBUFChunkSize(0), _maxAESCChunkSize(0) @@ -125,6 +128,9 @@ VQADecoder::VQADecoder() } VQADecoder::~VQADecoder() { + delete _audioTrack; + delete _videoTrack; + delete[] _frameInfo; } bool VQADecoder::loadStream(Common::SeekableReadStream *s) { @@ -172,10 +178,7 @@ bool VQADecoder::loadStream(Common::SeekableReadStream *s) { } while (chd.id != kFINF); _videoTrack = new VQAVideoTrack(this); - // addTrack(_videoTrack); - _audioTrack = new VQAAudioTrack(this); - // addTrack(_audioTrack); /* for (int i = 0; i != _loopInfo.loopCount; ++i) { @@ -559,6 +562,8 @@ VQADecoder::VQAVideoTrack::~VQAVideoTrack() { delete[] _zbufChunk; delete[] _vpointer; + if (_surface) + _surface->free(); delete _surface; } |