From d388981714e8d58d321f42ea67907f59267268f7 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Mon, 16 Nov 2015 22:04:24 +0100 Subject: 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. --- engines/bbvs/videoplayer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'engines') 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); } -- cgit v1.2.3