[Scummvm-tracker] [ScummVM] #10210: TITANIC: Memory leaks in AVISurface
Colin Snover
trac at scummvm.org
Mon Sep 18 05:53:47 CEST 2017
#10210: TITANIC: Memory leaks in AVISurface
--------------------+------------------------------
Reporter: csnover | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Titanic
Keywords: | Game: Starship Titanic
--------------------+------------------------------
valgrind reports from dafioram
{{{
==16727== 16,384 bytes in 1 blocks are possibly lost in loss record 2,612
of 2,668
==16727== at 0x4C2FB45: calloc (in /usr/lib/valgrind
/vgpreload_memcheck-amd64-linux.so)
==16727== by 0x49ABB8: Graphics::Surface::create(unsigned short,
unsigned short, Graphics::PixelFormat const&) (surface.cpp:74)
==16727== by 0x4930E5: Graphics::ManagedSurface::create(unsigned short,
unsigned short, Graphics::PixelFormat const&) (managed_surface.cpp:99)
==16727== by 0x492D46: Graphics::ManagedSurface::ManagedSurface(int,
int, Graphics::PixelFormat const&) (managed_surface.cpp:51)
==16727== by 0x364CA1: Titanic::AVISurface::setupDecompressor()
(avi_surface.cpp:296)
==16727== by 0x364A35:
Titanic::AVISurface::setVideoSurface(Titanic::CVideoSurface*)
(avi_surface.cpp:258)
==16727== by 0x323ABB: Titanic::OSMovie::OSMovie(Titanic::CResourceKey
const&, Titanic::CVideoSurface*) (movie.cpp:95)
==16727== by 0x322C41: Titanic::CMouseCursor::loadCursorImages()
(mouse_cursor.cpp:86)
==16727== by 0x322A11:
Titanic::CMouseCursor::CMouseCursor(Titanic::CScreenManager*)
(mouse_cursor.cpp:64)
==16727== by 0x329A2A: Titanic::OSScreenManager::loadCursors()
(screen_manager.cpp:350)
==16727== by 0x328AE0: Titanic::OSScreenManager::setMode(int, int, int,
unsigned int, bool) (screen_manager.cpp:122)
==16727== by 0x347888: Titanic::CMainGameWindow::applicationStarting()
(main_game_window.cpp:58)
==16727==
==16727== 229,824 (448 direct, 229,376 indirect) bytes in 14 blocks are
definitely lost in loss record 2,649 of 2,668
==16727== at 0x4C2E19F: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16727== by 0x47A59D:
Image::BitmapRawDecoder::decodeFrame(Common::SeekableReadStream&)
(bmp_raw.cpp:45)
==16727== by 0x44D76A:
Video::AVIDecoder::AVIVideoTrack::decodeFrame(Common::SeekableReadStream*)
(avi_decoder.cpp:917)
==16727== by 0x44C136:
Video::AVIDecoder::handleNextPacket(Video::AVIDecoder::TrackStatus&)
(avi_decoder.cpp:571)
==16727== by 0x44BC38: Video::AVIDecoder::readNextPacket()
(avi_decoder.cpp:478)
==16727== by 0x450665: Video::VideoDecoder::decodeNextFrame()
(video_decoder.cpp:188)
==16727== by 0x44A0DA: Video::AVIDecoder::decodeNextFrame()
(avi_decoder.cpp:151)
==16727== by 0x365238: Titanic::AVISurface::renderFrame()
(avi_surface.cpp:393)
==16727== by 0x364677: Titanic::AVISurface::seekToFrame(unsigned int)
(avi_surface.cpp:182)
==16727== by 0x365116: Titanic::AVISurface::setFrame(int)
(avi_surface.cpp:363)
==16727== by 0x323E29: Titanic::OSMovie::setFrame(unsigned int)
(movie.cpp:153)
==16727== by 0x322C58: Titanic::CMouseCursor::loadCursorImages()
(mouse_cursor.cpp:87)
==16727==
==16727== 27,488 (288 direct, 27,200 indirect) bytes in 3 blocks are
definitely lost in loss record 2,623 of 2,668
==16727== at 0x4C2E19F: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16727== by 0x364C88: Titanic::AVISurface::setupDecompressor()
(avi_surface.cpp:296)
==16727== by 0x364A35:
Titanic::AVISurface::setVideoSurface(Titanic::CVideoSurface*)
(avi_surface.cpp:258)
==16727== by 0x323ABB: Titanic::OSMovie::OSMovie(Titanic::CResourceKey
const&, Titanic::CVideoSurface*) (movie.cpp:95)
==16727== by 0x326481:
Titanic::CMovieManager::createMovie(Titanic::CResourceKey const&,
Titanic::CVideoSurface*) (movie_manager.cpp:30)
==16727== by 0x32F876:
Titanic::OSVideoSurface::loadMovie(Titanic::CResourceKey const&, bool)
(video_surface.cpp:366)
==16727== by 0x32FDB3: Titanic::OSVideoSurface::load()
(video_surface.cpp:479)
==16727== by 0x3306ED: Titanic::OSVideoSurface::loadIfReady()
(video_surface.cpp:608)
==16727== by 0x32FA04: Titanic::OSVideoSurface::getWidth()
(video_surface.cpp:400)
==16727== by 0x2152AD:
Titanic::CGameObject::draw(Titanic::CScreenManager*, Common::Point const&)
(game_object.cpp:343)
==16727== by 0x2E5BB5:
Titanic::CPetGfxElement::draw(Titanic::CScreenManager*, Common::Point
const&) (pet_gfx_element.cpp:76)
==16727== by 0x2E5B37:
Titanic::CPetGfxElement::draw(Titanic::CScreenManager*)
(pet_gfx_element.cpp:67)
==16727== 44,336 (192 direct, 44,144 indirect) bytes in 2 blocks are
definitely lost in loss record 2,632 of 2,668
==16727== at 0x4C2E19F: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16727== by 0x364C88: Titanic::AVISurface::setupDecompressor()
(avi_surface.cpp:296)
==16727== by 0x364A35:
Titanic::AVISurface::setVideoSurface(Titanic::CVideoSurface*)
(avi_surface.cpp:258)
==16727== by 0x323ABB: Titanic::OSMovie::OSMovie(Titanic::CResourceKey
const&, Titanic::CVideoSurface*) (movie.cpp:95)
==16727== by 0x326481:
Titanic::CMovieManager::createMovie(Titanic::CResourceKey const&,
Titanic::CVideoSurface*) (movie_manager.cpp:30)
==16727== by 0x32F876:
Titanic::OSVideoSurface::loadMovie(Titanic::CResourceKey const&, bool)
(video_surface.cpp:366)
==16727== by 0x32FDB3: Titanic::OSVideoSurface::load()
(video_surface.cpp:479)
==16727== by 0x3306ED: Titanic::OSVideoSurface::loadIfReady()
(video_surface.cpp:608)
==16727== by 0x3302DF: Titanic::OSVideoSurface::setMovieFrame(unsigned
int) (video_surface.cpp:558)
==16727== by 0x215995: Titanic::CGameObject::loadFrame(int)
(game_object.cpp:435)
==16727== by 0x34DC1D:
Titanic::CCarry::EnterViewMsg(Titanic::CEnterViewMsg*) (carry.cpp:222)
==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*)
(messages.cpp:107)
==16727==
==16727== 230,816 (1,440 direct, 229,376 indirect) bytes in 15 blocks are
definitely lost in loss record 2,650 of 2,668
==16727== at 0x4C2E19F: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16727== by 0x364C88: Titanic::AVISurface::setupDecompressor()
(avi_surface.cpp:296)
==16727== by 0x364A35:
Titanic::AVISurface::setVideoSurface(Titanic::CVideoSurface*)
(avi_surface.cpp:258)
==16727== by 0x323ABB: Titanic::OSMovie::OSMovie(Titanic::CResourceKey
const&, Titanic::CVideoSurface*) (movie.cpp:95)
==16727== by 0x322C41: Titanic::CMouseCursor::loadCursorImages()
(mouse_cursor.cpp:86)
==16727== by 0x322A11:
Titanic::CMouseCursor::CMouseCursor(Titanic::CScreenManager*)
(mouse_cursor.cpp:64)
==16727== by 0x329A2A: Titanic::OSScreenManager::loadCursors()
(screen_manager.cpp:350)
==16727== by 0x328AE0: Titanic::OSScreenManager::setMode(int, int, int,
unsigned int, bool) (screen_manager.cpp:122)
==16727== by 0x347888: Titanic::CMainGameWindow::applicationStarting()
(main_game_window.cpp:58)
==16727== by 0x211585: Titanic::TitanicEngine::initialize()
(titanic.cpp:125)
==16727== by 0x211709: Titanic::TitanicEngine::run() (titanic.cpp:152)
==16727== by 0x1FC228: runGame(PluginSubclass<MetaEngine> const*,
OSystem&, Common::String const&) (main.cpp:263)
==16727==
==16727== 408,000 bytes in 1 blocks are possibly lost in loss record 2,655
of 2,668
==16727== at 0x4C2FB45: calloc (in /usr/lib/valgrind
/vgpreload_memcheck-amd64-linux.so)
==16727== by 0x49ABB8: Graphics::Surface::create(unsigned short,
unsigned short, Graphics::PixelFormat const&) (surface.cpp:74)
==16727== by 0x480513:
Image::CinepakDecoder::decodeFrame(Common::SeekableReadStream&)
(cinepak.cpp:424)
==16727== by 0x44D76A:
Video::AVIDecoder::AVIVideoTrack::decodeFrame(Common::SeekableReadStream*)
(avi_decoder.cpp:917)
==16727== by 0x44CC8A: Video::AVIDecoder::seekIntern(Audio::Timestamp
const&) (avi_decoder.cpp:757)
==16727== by 0x45105B: Video::VideoDecoder::seek(Audio::Timestamp
const&) (video_decoder.cpp:357)
==16727== by 0x449EE1: Video::AVIDecoder::seekToFrame(unsigned int)
(avi_decoder.cpp:111)
==16727== by 0x36466B: Titanic::AVISurface::seekToFrame(unsigned int)
(avi_surface.cpp:181)
==16727== by 0x365116: Titanic::AVISurface::setFrame(int)
(avi_surface.cpp:363)
==16727== by 0x365951: Titanic::AVISurface::playCutscene(Titanic::Rect
const&, unsigned int, unsigned int) (avi_surface.cpp:499)
==16727== by 0x323CDE: Titanic::OSMovie::playCutscene(Titanic::Rect
const&, unsigned int, unsigned int) (movie.cpp:130)
==16727== by 0x343C35:
Titanic::CGameManager::playClip(Titanic::CMovieClip*, Titanic::CRoomItem*,
Titanic::CRoomItem*) (game_manager.cpp:163)
==16727==
}}}
Build: 1.10.0git-4914-g294503f516
--
Ticket URL: <https://bugs.scummvm.org/ticket/10210>
ScummVM <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list