diff options
author | Torbjörn Andersson | 2015-11-16 22:04:24 +0100 |
---|---|---|
committer | Torbjörn Andersson | 2015-11-16 22:08:49 +0100 |
commit | d388981714e8d58d321f42ea67907f59267268f7 (patch) | |
tree | e7c6aa53b7038968c418e2459f414f02506f7874 | |
parent | ac93f3512ffbad7b40ef62a3622367f24d6f5193 (diff) | |
download | scummvm-rg350-d388981714e8d58d321f42ea67907f59267268f7.tar.gz scummvm-rg350-d388981714e8d58d321f42ea67907f59267268f7.tar.bz2 scummvm-rg350-d388981714e8d58d321f42ea67907f59267268f7.zip |
BBVS: Fix recent video player memory leak (CID 1339416)
Surface::convertTo() creates a new surface, so we have to free it
once we're done with it.
-rw-r--r-- | engines/bbvs/videoplayer.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/engines/bbvs/videoplayer.cpp b/engines/bbvs/videoplayer.cpp index f417f275bf..1b721c434f 100644 --- a/engines/bbvs/videoplayer.cpp +++ b/engines/bbvs/videoplayer.cpp @@ -61,8 +61,10 @@ void BbvsEngine::playVideo(int videoNum) { const Graphics::Surface *frame = videoDecoder->decodeNextFrame(); if (frame) { if (frame->format.bytesPerPixel > 1) { - const Graphics::Surface *frame1 = frame->convertTo(_system->getScreenFormat()); + Graphics::Surface *frame1 = frame->convertTo(_system->getScreenFormat()); _system->copyRectToScreen(frame1->getPixels(), frame1->pitch, 0, 0, frame1->w, frame1->h); + frame1->free(); + delete frame1; } else { _system->copyRectToScreen(frame->getPixels(), frame->pitch, 0, 0, frame->w, frame->h); } |