[Scummvm-tracker] [ScummVM] #10210: TITANIC: Memory leaks in AVISurface

Colin Snover trac at scummvm.org
Wed Sep 20 17:51:31 CEST 2017


#10210: TITANIC: Memory leaks in AVISurface
-------------------------------+-----------------------------
  Reporter:  csnover           |      Owner:  (none)
      Type:  defect            |     Status:  new
  Priority:  normal            |  Component:  Engine: Titanic
Resolution:                    |   Keywords:
      Game:  Starship Titanic  |
-------------------------------+-----------------------------

Comment (by csnover):

 The number of leaks related to AVISurface is substantially reduced, it
 looks like there are still 3 or 4 more that I can identify without
 trouble:

 {{{
    1 libsystem_malloc.dylib calloc
    2 scummvm Graphics::Surface::create(unsigned short, unsigned short,
 Graphics::PixelFormat const&) scummvm/graphics/surface.cpp:74
    3 scummvm
 Image::BitmapRawDecoder::decodeFrame(Common::SeekableReadStream&)
 scummvm/image/codecs/bmp_raw.cpp:46
    4 scummvm
 Video::AVIDecoder::AVIVideoTrack::decodeFrame(Common::SeekableReadStream*)
 scummvm/video/avi_decoder.cpp:917
    5 scummvm
 Video::AVIDecoder::handleNextPacket(Video::AVIDecoder::TrackStatus&)
 scummvm/video/avi_decoder.cpp:571
    6 scummvm Video::AVIDecoder::readNextPacket()
 scummvm/video/avi_decoder.cpp:478
    7 scummvm Video::VideoDecoder::decodeNextFrame()
 scummvm/video/video_decoder.cpp:188
    8 scummvm Titanic::AVISurface::renderFrame()
 scummvm/engines/titanic/support/avi_surface.cpp:391
    9 scummvm Titanic::AVISurface::seekToFrame(unsigned int)
 scummvm/engines/titanic/support/avi_surface.cpp:181
   10 scummvm Titanic::AVISurface::setFrame(int)
 scummvm/engines/titanic/support/avi_surface.cpp:361
   11 scummvm Titanic::OSMovie::setFrame(unsigned int)
 scummvm/engines/titanic/support/movie.cpp:153
   12 scummvm Titanic::CMouseCursor::loadCursorImages()
 scummvm/engines/titanic/support/mouse_cursor.cpp:85
   13 scummvm Titanic::CMouseCursor::CMouseCursor(Titanic::CScreenManager*)
 scummvm/engines/titanic/support/mouse_cursor.cpp:63
   14 scummvm Titanic::OSScreenManager::loadCursors()
 scummvm/engines/titanic/support/screen_manager.cpp:350
   15 scummvm Titanic::OSScreenManager::setMode(int, int, int, unsigned
 int, bool) scummvm/engines/titanic/support/screen_manager.cpp:122
   16 scummvm Titanic::CMainGameWindow::applicationStarting()
 scummvm/engines/titanic/main_game_window.cpp:60
   17 scummvm Titanic::TitanicEngine::initialize()
 scummvm/engines/titanic/titanic.cpp:127
   18 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:154
 }}}

 {{{
    2 libc++abi.dylib operator new(unsigned long)
    3 scummvm
 Image::BitmapRawDecoder::decodeFrame(Common::SeekableReadStream&)
 scummvm/image/codecs/bmp_raw.cpp:45
    4 scummvm
 Video::AVIDecoder::AVIVideoTrack::decodeFrame(Common::SeekableReadStream*)
 scummvm/video/avi_decoder.cpp:917
    5 scummvm
 Video::AVIDecoder::handleNextPacket(Video::AVIDecoder::TrackStatus&)
 scummvm/video/avi_decoder.cpp:571
    6 scummvm Video::AVIDecoder::readNextPacket()
 scummvm/video/avi_decoder.cpp:478
    7 scummvm Video::VideoDecoder::decodeNextFrame()
 scummvm/video/video_decoder.cpp:188
    8 scummvm Titanic::AVISurface::renderFrame()
 scummvm/engines/titanic/support/avi_surface.cpp:391
    9 scummvm Titanic::AVISurface::seekToFrame(unsigned int)
 scummvm/engines/titanic/support/avi_surface.cpp:181
   10 scummvm Titanic::AVISurface::setFrame(int)
 scummvm/engines/titanic/support/avi_surface.cpp:361
   11 scummvm Titanic::OSMovie::setFrame(unsigned int)
 scummvm/engines/titanic/support/movie.cpp:153
   12 scummvm Titanic::CMouseCursor::loadCursorImages()
 scummvm/engines/titanic/support/mouse_cursor.cpp:85
   13 scummvm Titanic::CMouseCursor::CMouseCursor(Titanic::CScreenManager*)
 scummvm/engines/titanic/support/mouse_cursor.cpp:63
   14 scummvm Titanic::OSScreenManager::loadCursors()
 scummvm/engines/titanic/support/screen_manager.cpp:350
   15 scummvm Titanic::OSScreenManager::setMode(int, int, int, unsigned
 int, bool) scummvm/engines/titanic/support/screen_manager.cpp:122
   16 scummvm Titanic::CMainGameWindow::applicationStarting()
 scummvm/engines/titanic/main_game_window.cpp:60
   17 scummvm Titanic::TitanicEngine::initialize()
 scummvm/engines/titanic/titanic.cpp:127
   18 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:154
 }}}

 {{{
    2 libc++abi.dylib operator new(unsigned long)
    3 scummvm
 Image::BitmapRawDecoder::decodeFrame(Common::SeekableReadStream&)
 scummvm/image/codecs/bmp_raw.cpp:45
    4 scummvm
 Video::AVIDecoder::AVIVideoTrack::decodeFrame(Common::SeekableReadStream*)
 scummvm/video/avi_decoder.cpp:917
    5 scummvm
 Video::AVIDecoder::handleNextPacket(Video::AVIDecoder::TrackStatus&)
 scummvm/video/avi_decoder.cpp:571
    6 scummvm Video::AVIDecoder::readNextPacket()
 scummvm/video/avi_decoder.cpp:478
    7 scummvm Video::VideoDecoder::decodeNextFrame()
 scummvm/video/video_decoder.cpp:188
    8 scummvm Titanic::AVISurface::renderFrame()
 scummvm/engines/titanic/support/avi_surface.cpp:391
    9 scummvm Titanic::OSMovie::setFrame(unsigned int)
 scummvm/engines/titanic/support/movie.cpp:153
   10 scummvm Titanic::OSVideoSurface::loadMovie(Titanic::CResourceKey
 const&, bool) scummvm/engines/titanic/support/video_surface.cpp:367
   11 scummvm Titanic::OSVideoSurface::load()
 scummvm/engines/titanic/support/video_surface.cpp:479
   12 scummvm Titanic::OSVideoSurface::loadIfReady()
 scummvm/engines/titanic/support/video_surface.cpp:608
   13 scummvm Titanic::OSVideoSurface::setMovieFrame(unsigned int)
 scummvm/engines/titanic/support/video_surface.cpp:558
   14 scummvm Titanic::CGameObject::loadFrame(int)
 scummvm/engines/titanic/core/game_object.cpp:436
   15 scummvm
 Titanic::CServiceElevatorWindow::EnterViewMsg(Titanic::CEnterViewMsg*)
 scummvm/engines/titanic/game/service_elevator_window.cpp:112
   16 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
   17 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   18 scummvm Titanic::CViewItem::enterView(Titanic::CViewItem*)
 scummvm/engines/titanic/core/view_item.cpp:143
   19 scummvm
 Titanic::CViewItem::MouseButtonDownMsg(Titanic::CMouseButtonDownMsg*)
 scummvm/engines/titanic/core/view_item.cpp:199
   20 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
   21 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   22 scummvm Titanic::CInputHandler::dispatchMessage(Titanic::CMessage*)
 scummvm/engines/titanic/input_handler.cpp:156
   23 scummvm Titanic::CInputHandler::processMessage(Titanic::CMessage*)
 scummvm/engines/titanic/input_handler.cpp:84
   24 scummvm Titanic::CInputHandler::handleMessage(Titanic::CMessage&,
 bool) scummvm/engines/titanic/input_handler.cpp:72
   25 scummvm Titanic::CInputTranslator::leftButtonDown(int, Common::Point
 const&) scummvm/engines/titanic/input_translator.cpp:55
   26 scummvm Titanic::CMainGameWindow::leftButtonDown(Common::Point
 const&) scummvm/engines/titanic/main_game_window.cpp:294
   27 scummvm Titanic::Events::pollEvents()
 scummvm/engines/titanic/events.cpp:61
   28 scummvm Titanic::Events::pollEventsAndWait()
 scummvm/engines/titanic/events.cpp:112
   29 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:157
 }}}

 {{{
    2 libc++abi.dylib operator new(unsigned long)
    3 scummvm
 Titanic::CMovieRangeInfo::getMovieEnd(Titanic::CMovieEventList&)
 scummvm/engines/titanic/support/movie_range_info.cpp:80
    4 scummvm Titanic::AVISurface::handleEvents(Titanic::CMovieEventList&)
 scummvm/engines/titanic/support/avi_surface.cpp:203
    5 scummvm Titanic::OSMovie::handleEvents(Titanic::CMovieEventList&)
 scummvm/engines/titanic/support/movie.cpp:167
    6 scummvm Titanic::CGameManager::updateMovies()
 scummvm/engines/titanic/game_manager.cpp:235
    7 scummvm Titanic::CGameManager::update()
 scummvm/engines/titanic/game_manager.cpp:170
    8 scummvm Titanic::CMainGameWindow::onIdle()
 scummvm/engines/titanic/main_game_window.cpp:264
    9 scummvm Titanic::Events::checkForNextFrameCounter()
 scummvm/engines/titanic/events.cpp:142
   10 scummvm Titanic::Events::pollEvents()
 scummvm/engines/titanic/events.cpp:44
   11 scummvm Titanic::Events::pollEventsAndWait()
 scummvm/engines/titanic/events.cpp:112
   12 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:157
 }}}

--
Ticket URL: <https://bugs.scummvm.org/ticket/10210#comment:2>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list