[Scummvm-tracker] [ScummVM] #10207: TITANIC: Memory leaks in QSoundManager

Colin Snover trac at scummvm.org
Sun Sep 24 19:13:55 CEST 2017


#10207: TITANIC: Memory leaks in QSoundManager
-------------------------------+-----------------------------
  Reporter:  csnover           |      Owner:  dreammaster
      Type:  defect            |     Status:  new
  Priority:  normal            |  Component:  Engine: Titanic
Resolution:                    |   Keywords:
      Game:  Starship Titanic  |
-------------------------------+-----------------------------
Changes (by csnover):

 * status:  closed => new
 * resolution:  fixed =>


Comment:

 Audio data is currently leaking:

 {{{
    2 libc++abi.dylib operator new(unsigned long)
    3 scummvm Audio::RawStream<true, false, true>::RawStream(int, bool,
 DisposeAfterUse::Flag, Common::SeekableReadStream*)
 scummvm/audio/decoders/raw.cpp:55
    4 scummvm Audio::makeRawStream(Common::SeekableReadStream*, int,
 unsigned char, DisposeAfterUse::Flag) scummvm/audio/decoders/raw.cpp:214
    5 scummvm Audio::makeRawStream(unsigned char const*, unsigned int, int,
 unsigned char, DisposeAfterUse::Flag) scummvm/audio/decoders/raw.cpp:221
    6 scummvm Audio::makeWAVStream(Common::SeekableReadStream*,
 DisposeAfterUse::Flag) scummvm/audio/decoders/wave.cpp:227
    7 scummvm Titanic::CWaveFile::createAudioStream()
 scummvm/engines/titanic/sound/wave_file.cpp:168
    8 scummvm Titanic::CWaveFile::play(int, unsigned char)
 scummvm/engines/titanic/sound/wave_file.cpp:201
    9 scummvm Titanic::QMixer::qsWaveMixPump()
 scummvm/engines/titanic/sound/qmixer.cpp:234
   10 scummvm Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int,
 Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&)
 scummvm/engines/titanic/sound/qmixer.cpp:170
   11 scummvm Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int,
 unsigned int, Titanic::CProximity&)
 scummvm/engines/titanic/sound/sound_manager.cpp:426
   12 scummvm Titanic::CGameObject::playSound(Titanic::CString const&,
 unsigned int, int, bool) scummvm/engines/titanic/core/game_object.cpp:789
   13 scummvm
 Titanic::CPETSounds::PETPlaySoundMsg(Titanic::CPETPlaySoundMsg*)
 scummvm/engines/titanic/game/pet/pet_sounds.cpp:47
   14 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
   15 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   16 scummvm Titanic::CPetControl::playSound(int)
 scummvm/engines/titanic/pet_control/pet_control.cpp:574
   17 scummvm Titanic::TTnpcScript::setDial(int, int)
 scummvm/engines/titanic/true_talk/tt_npc_script.cpp:641
   18 scummvm Titanic::TTnpcScript::updateCurrentDial(bool)
 scummvm/engines/titanic/true_talk/tt_npc_script.cpp:1020
   19 scummvm Titanic::DeskbotScript::process(Titanic::TTroomScript const*,
 Titanic::TTsentence const*)
 scummvm/engines/titanic/true_talk/deskbot_script.cpp:81
   20 scummvm Titanic::CScriptHandler::processInput(Titanic::TTroomScript*,
 Titanic::TTnpcScript*, Titanic::TTstring const&)
 scummvm/engines/titanic/true_talk/script_handler.cpp:98
   21 scummvm
 Titanic::CTrueTalkManager::processInput(Titanic::CTrueTalkNPC*,
 Titanic::CTextInputMsg*, Titanic::CViewItem*)
 scummvm/engines/titanic/true_talk/true_talk_manager.cpp:334
   22 scummvm Titanic::CTrueTalkNPC::processInput(Titanic::CTextInputMsg*,
 Titanic::CViewItem*) scummvm/engines/titanic/npcs/true_talk_npc.cpp:232
   23 scummvm Titanic::CTrueTalkNPC::TextInputMsg(Titanic::CTextInputMsg*)
 scummvm/engines/titanic/npcs/true_talk_npc.cpp:83
   24 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
   25 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   26 scummvm Titanic::CPetConversations::textLineEntered(Titanic::CString
 const&) scummvm/engines/titanic/pet_control/pet_conversations.cpp:507
   27 scummvm Titanic::CPetConversations::handleKey(Common::KeyState
 const&) scummvm/engines/titanic/pet_control/pet_conversations.cpp:490
   28 scummvm Titanic::CPetConversations::KeyCharMsg(Titanic::CKeyCharMsg*)
 scummvm/engines/titanic/pet_control/pet_conversations.cpp:224
   29 scummvm Titanic::CPetControl::KeyCharMsg(Titanic::CKeyCharMsg*)
 scummvm/engines/titanic/pet_control/pet_control.cpp:339
   30 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
   31 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   32 scummvm Titanic::CInputHandler::dispatchMessage(Titanic::CMessage*)
 scummvm/engines/titanic/input_handler.cpp:154
   33 scummvm Titanic::CInputHandler::processMessage(Titanic::CMessage*)
 scummvm/engines/titanic/input_handler.cpp:84
   34 scummvm Titanic::CInputHandler::handleMessage(Titanic::CMessage&,
 bool) scummvm/engines/titanic/input_handler.cpp:72
   35 scummvm Titanic::CInputTranslator::keyDown(Common::KeyState const&)
 scummvm/engines/titanic/input_translator.cpp:91
   36 scummvm Titanic::CMainGameWindow::keyDown(Common::KeyState)
 scummvm/engines/titanic/main_game_window.cpp:367
   37 scummvm Titanic::Events::pollEvents()
 scummvm/engines/titanic/events.cpp:95
   38 scummvm Titanic::Events::pollEventsAndWait()
 scummvm/engines/titanic/events.cpp:112
   39 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:157
 }}}

 {{{
    1 libsystem_malloc.dylib malloc
    2 scummvm Audio::makeWAVStream(Common::SeekableReadStream*,
 DisposeAfterUse::Flag) scummvm/audio/decoders/wave.cpp:220
    3 scummvm Titanic::CWaveFile::createAudioStream()
 scummvm/engines/titanic/sound/wave_file.cpp:168
    4 scummvm Titanic::CWaveFile::play(int, unsigned char)
 scummvm/engines/titanic/sound/wave_file.cpp:201
    5 scummvm Titanic::QMixer::qsWaveMixPump()
 scummvm/engines/titanic/sound/qmixer.cpp:234
    6 scummvm Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int,
 Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&)
 scummvm/engines/titanic/sound/qmixer.cpp:170
    7 scummvm Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int,
 unsigned int, Titanic::CProximity&)
 scummvm/engines/titanic/sound/sound_manager.cpp:426
    8 scummvm Titanic::CGameObject::playSound(Titanic::CString const&,
 unsigned int, int, bool) scummvm/engines/titanic/core/game_object.cpp:789
    9 scummvm Titanic::CDeskbot::MovieEndMsg(Titanic::CMovieEndMsg*)
 scummvm/engines/titanic/npcs/deskbot.cpp:123
   10 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
   11 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   12 scummvm Titanic::CGameManager::updateMovies()
 scummvm/engines/titanic/game_manager.cpp:250
   13 scummvm Titanic::CGameManager::update()
 scummvm/engines/titanic/game_manager.cpp:170
   14 scummvm Titanic::CMainGameWindow::onIdle()
 scummvm/engines/titanic/main_game_window.cpp:264
   15 scummvm Titanic::Events::checkForNextFrameCounter()
 scummvm/engines/titanic/events.cpp:142
   16 scummvm Titanic::Events::pollEvents()
 scummvm/engines/titanic/events.cpp:44
   17 scummvm Titanic::Events::pollEventsAndWait()
 scummvm/engines/titanic/events.cpp:112
   18 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:157
 }}}

 {{{
    2 libc++abi.dylib operator new(unsigned long)
    3 scummvm Titanic::CWaveFile::createAudioStream()
 scummvm/engines/titanic/sound/wave_file.cpp:169
    4 scummvm Titanic::CWaveFile::play(int, unsigned char)
 scummvm/engines/titanic/sound/wave_file.cpp:201
    5 scummvm Titanic::QMixer::qsWaveMixPump()
 scummvm/engines/titanic/sound/qmixer.cpp:234
    6 scummvm Titanic::Events::pollEventsAndWait()
 scummvm/engines/titanic/events.cpp:118
    7 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:157
 }}}

 {{{
    1 libsystem_malloc.dylib malloc
    2 scummvm Titanic::CWaveFile::loadSound(Titanic::CString const&)
 scummvm/engines/titanic/sound/wave_file.cpp:103
    3 scummvm Titanic::QSoundManager::loadSound(Titanic::CString const&)
 scummvm/engines/titanic/sound/sound_manager.cpp:126
    4 scummvm Titanic::CSound::loadSound(Titanic::CString const&)
 scummvm/engines/titanic/sound/sound.cpp:138
    5 scummvm Titanic::CSound::playSound(Titanic::CString const&,
 Titanic::CProximity&) scummvm/engines/titanic/sound/sound.cpp:158
    6 scummvm Titanic::CGameObject::playGlobalSound(Titanic::CString
 const&, Titanic::VolumeMode, bool, bool, int, Audio::Mixer::SoundType)
 scummvm/engines/titanic/core/game_object.cpp:513
    7 scummvm
 Titanic::CAutoMusicPlayerBase::LoadSuccessMsg(Titanic::CLoadSuccessMsg*)
 scummvm/engines/titanic/sound/auto_music_player_base.cpp:73
    8 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*)
 scummvm/engines/titanic/messages/messages.cpp:107
    9 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*,
 Titanic::ClassDef const*, int)
 scummvm/engines/titanic/messages/messages.cpp:60
   10 scummvm Titanic::CGameManager::postLoad(Titanic::CProjectItem*)
 scummvm/engines/titanic/game_manager.cpp:104
   11 scummvm Titanic::CProjectItem::postLoad()
 scummvm/engines/titanic/core/project_item.cpp:340
   12 scummvm Titanic::CProjectItem::loadGame(int)
 scummvm/engines/titanic/core/project_item.cpp:222
   13 scummvm Titanic::CMainGameWindow::applicationStarting()
 scummvm/engines/titanic/main_game_window.cpp:91
   14 scummvm Titanic::TitanicEngine::initialize()
 scummvm/engines/titanic/titanic.cpp:127
   15 scummvm Titanic::TitanicEngine::run()
 scummvm/engines/titanic/titanic.cpp:154
 }}}

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


More information about the Scummvm-tracker mailing list