Opened 7 years ago
Closed 7 years ago
#10207 closed defect (fixed)
TITANIC: Memory leaks in QSoundManager
Reported by: | csnover | Owned by: | dreammaster |
---|---|---|---|
Priority: | normal | Component: | Engine: Titanic |
Version: | Keywords: | ||
Cc: | Game: | Starship Titanic |
Description
valgrind reports from dafioram:
==16727== 176 (32 direct, 144 indirect) bytes in 1 blocks are definitely lost in loss record 2,388 of 2,668 ==16727== at 0x4C2E19F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16727== by 0x309EB9: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:207) ==16727== by 0x35D118: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:231) ==16727== by 0x35CDD1: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:166) ==16727== by 0x30671B: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==16727== by 0x30584F: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==16727== by 0x303F1D: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:168) ==16727== by 0x215D4C: Titanic::CGameObject::playGlobalSound(Titanic::CString const&, Titanic::VolumeMode, bool, bool, int, Audio::Mixer::SoundType) (game_object.cpp:512) ==16727== by 0x2FAB95: Titanic::CAutoMusicPlayerBase::LoadSuccessMsg(Titanic::CLoadSuccessMsg*) (auto_music_player_base.cpp:74) ==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==16727== by 0x2BCAEE: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==16727== by 0x343768: Titanic::CGameManager::postLoad(Titanic::CProjectItem*) (game_manager.cpp:104) ==16727== 4,192 (32 direct, 4,160 indirect) bytes in 1 blocks are definitely lost in loss record 2,576 of 2,668 ==16727== at 0x4C2E19F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16727== by 0x309EB9: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:207) ==16727== by 0x35D118: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:231) ==16727== by 0x35CDD1: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:166) ==16727== by 0x30671B: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==16727== by 0x30584F: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==16727== by 0x303F1D: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:168) ==16727== by 0x216F33: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:803) ==16727== by 0x216DD6: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:788) ==16727== by 0x29CC48: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:93) ==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==16727== by 0x2BCAEE: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==16727== ==16727== 1,376,840 bytes in 1 blocks are possibly lost in loss record 2,666 of 2,668 ==16727== at 0x4C2DB2F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16727== by 0x3098D6: Titanic::CWaveFile::loadSound(Titanic::CString const&) (wave_file.cpp:103) ==16727== by 0x305580: Titanic::QSoundManager::loadSound(Titanic::CString const&) (sound_manager.cpp:126) ==16727== by 0x303DDC: Titanic::CSound::loadSound(Titanic::CString const&) (sound.cpp:138) ==16727== by 0x303E9C: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:158) ==16727== by 0x216F33: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:803) ==16727== by 0x216DD6: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:788) ==16727== by 0x29CCB8: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:98) ==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==16727== by 0x2BCAEE: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==16727== by 0x29D2CE: Titanic::CGondolierMixer::LoadSuccessMsg(Titanic::CLoadSuccessMsg*) (gondolier_mixer.cpp:191) ==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==16727== ==16727== 1,381,028 (32 direct, 1,380,996 indirect) bytes in 1 blocks are definitely lost in loss record 2,667 of 2,668 ==16727== at 0x4C2E19F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16727== by 0x309EB9: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:207) ==16727== by 0x35D118: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:231) ==16727== by 0x35CDD1: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:166) ==16727== by 0x30671B: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==16727== by 0x30584F: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==16727== by 0x303F1D: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:168) ==16727== by 0x216F33: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:803) ==16727== by 0x216DD6: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:788) ==16727== by 0x29CCB8: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:98) ==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==16727== by 0x2BCAEE: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==16727== ==16727== 4,984,652 (24 direct, 4,984,628 indirect) bytes in 1 blocks are definitely lost in loss record 2,668 of 2,668 ==16727== at 0x4C2E19F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16727== by 0x3075EE: Common::List<Titanic::QSoundManagerSound*>::insert(Common::ListInternal::NodeBase*, Titanic::QSoundManagerSound* const&) (list.h:248) ==16727== by 0x307018: Common::List<Titanic::QSoundManagerSound*>::push_back(Titanic::QSoundManagerSound* const&) (list.h:131) ==16727== by 0x304FBC: Titanic::QSoundManagerSounds::add(Titanic::CWaveFile*, int, void (*)(Titanic::TTtalker*), Titanic::TTtalker*) (sound_manager.cpp:52) ==16727== by 0x3066B9: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:421) ==16727== by 0x30584F: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==16727== by 0x303F1D: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:168) ==16727== by 0x216F33: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:803) ==16727== by 0x216DD6: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:788) ==16727== by 0x29CC48: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:93) ==16727== by 0x2BCD49: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==16727== by 0x2BCAEE: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60)
Build: 1.10.0git-4914-g294503f516
Change History (13)
comment:2 by , 7 years ago
helmet sounds when on the bridge.
8f6649cfb13be47f9fadfe50d31a0c0f2b8a28d1
==28531== 63,620 (72 direct, 63,548 indirect) bytes in 1 blocks are definitely lost in loss record 2,335 of 2,356 ==28531== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==28531== by 0x50EFA8: Titanic::QSoundManager::loadSound(Titanic::CString const&) (sound_manager.cpp:123) ==28531== by 0x50D820: Titanic::CSound::loadSound(Titanic::CString const&) (sound.cpp:138) ==28531== by 0x50D8E0: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:158) ==28531== by 0x4288C3: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==28531== by 0x428766: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==28531== by 0x49C52A: Titanic::CNavHelmet::PETHelmetOnOffMsg(Titanic::CPETHelmetOnOffMsg*) (nav_helmet.cpp:104) ==28531== by 0x4C911F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==28531== by 0x4C8EC4: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==28531== by 0x4F8AF1: Titanic::CNavigationControllerGlyph::MouseButtonUpMsg(Common::Point const&) (pet_remote_glyphs.cpp:557) ==28531== by 0x4FF182: Titanic::CPetGlyphs::MouseButtonUpMsg(Common::Point const&) (pet_glyphs.cpp:367) ==28531== by 0x4F4374: Titanic::CPetRemote::MouseButtonUpMsg(Titanic::CMouseButtonUpMsg*) (pet_remote.cpp:159)
==28531== 63,620 (72 direct, 63,548 indirect) bytes in 1 blocks are definitely lost in loss record 2,336 of 2,356 ==28531== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==28531== by 0x50EFA8: Titanic::QSoundManager::loadSound(Titanic::CString const&) (sound_manager.cpp:123) ==28531== by 0x50D820: Titanic::CSound::loadSound(Titanic::CString const&) (sound.cpp:138) ==28531== by 0x50D8E0: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:158) ==28531== by 0x4288C3: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==28531== by 0x428766: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==28531== by 0x49C3B7: Titanic::CNavHelmet::PETHelmetOnOffMsg(Titanic::CPETHelmetOnOffMsg*) (nav_helmet.cpp:89) ==28531== by 0x4C911F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==28531== by 0x4C8EC4: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==28531== by 0x4F2938: Titanic::CPetStarfield::MouseButtonDownMsg(Titanic::CMouseButtonDownMsg*) (pet_starfield.cpp:87) ==28531== by 0x4E79F1: Titanic::CPetControl::MouseButtonDownMsg(Titanic::CMouseButtonDownMsg*) (pet_control.cpp:283) ==28531== by 0x4C911F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107)
==28531== 284,120 (72 direct, 284,048 indirect) bytes in 1 blocks are definitely lost in loss record 2,346 of 2,356 ==28531== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==28531== by 0x50EFA8: Titanic::QSoundManager::loadSound(Titanic::CString const&) (sound_manager.cpp:123) ==28531== by 0x50D820: Titanic::CSound::loadSound(Titanic::CString const&) (sound.cpp:138) ==28531== by 0x50D8E0: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:158) ==28531== by 0x4288C3: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==28531== by 0x428766: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==28531== by 0x49C4D8: Titanic::CNavHelmet::PETHelmetOnOffMsg(Titanic::CPETHelmetOnOffMsg*) (nav_helmet.cpp:103) ==28531== by 0x4C911F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==28531== by 0x4C8EC4: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==28531== by 0x4F8AF1: Titanic::CNavigationControllerGlyph::MouseButtonUpMsg(Common::Point const&) (pet_remote_glyphs.cpp:557) ==28531== by 0x4FF182: Titanic::CPetGlyphs::MouseButtonUpMsg(Common::Point const&) (pet_glyphs.cpp:367) ==28531== by 0x4F4374: Titanic::CPetRemote::MouseButtonUpMsg(Titanic::CMouseButtonUpMsg*) (pet_remote.cpp:159)
==28531== 284,120 (72 direct, 284,048 indirect) bytes in 1 blocks are definitely lost in loss record 2,347 of 2,356 ==28531== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==28531== by 0x50EFA8: Titanic::QSoundManager::loadSound(Titanic::CString const&) (sound_manager.cpp:123) ==28531== by 0x50D820: Titanic::CSound::loadSound(Titanic::CString const&) (sound.cpp:138) ==28531== by 0x50D8E0: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:158) ==28531== by 0x4288C3: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==28531== by 0x428766: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==28531== by 0x49C409: Titanic::CNavHelmet::PETHelmetOnOffMsg(Titanic::CPETHelmetOnOffMsg*) (nav_helmet.cpp:90) ==28531== by 0x4C911F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==28531== by 0x4C8EC4: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==28531== by 0x4F2938: Titanic::CPetStarfield::MouseButtonDownMsg(Titanic::CMouseButtonDownMsg*) (pet_starfield.cpp:87) ==28531== by 0x4E79F1: Titanic::CPetControl::MouseButtonDownMsg(Titanic::CMouseButtonDownMsg*) (pet_control.cpp:283) ==28531== by 0x4C911F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107)
comment:3 by , 7 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:4 by , 7 years ago
Resolution: | fixed |
---|---|
Status: | closed → new |
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
comment:5 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → pending |
Okay, I realised the original already had a clean method for freeing wave files when done with them or on exit. So this should be sorted out now, though could use confirmation.
comment:6 by , 7 years ago
Resolution: | fixed |
---|---|
Status: | pending → new |
Sorry, things are still leaking.
2 libc++abi.dylib operator new(unsigned long) 3 scummvm Audio::RawStream<false, true, false>::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:212 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::CDeskbot::MovieEndMsg(Titanic::CMovieEndMsg*) scummvm/engines/titanic/npcs/deskbot.cpp:123 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::CGameManager::updateMovies() scummvm/engines/titanic/game_manager.cpp:250 17 scummvm Titanic::CGameManager::update() scummvm/engines/titanic/game_manager.cpp:170 18 scummvm Titanic::CMainGameWindow::onIdle() scummvm/engines/titanic/main_game_window.cpp:264 19 scummvm Titanic::Events::checkForNextFrameCounter() scummvm/engines/titanic/events.cpp:142 20 scummvm Titanic::Events::pollEvents() scummvm/engines/titanic/events.cpp:44 21 scummvm Titanic::Events::pollEventsAndWait() scummvm/engines/titanic/events.cpp:112 22 scummvm Titanic::TitanicEngine::run() scummvm/engines/titanic/titanic.cpp:157
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::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::playGlobalSound(Titanic::CString const&, Titanic::VolumeMode, bool, bool, int, Audio::Mixer::SoundType) scummvm/engines/titanic/core/game_object.cpp:513 9 scummvm Titanic::CAutoMusicPlayerBase::LoadSuccessMsg(Titanic::CLoadSuccessMsg*) scummvm/engines/titanic/sound/auto_music_player_base.cpp:73 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::postLoad(Titanic::CProjectItem*) scummvm/engines/titanic/game_manager.cpp:104 13 scummvm Titanic::CProjectItem::postLoad() scummvm/engines/titanic/core/project_item.cpp:340 14 scummvm Titanic::CProjectItem::loadGame(int) scummvm/engines/titanic/core/project_item.cpp:222 15 scummvm Titanic::CMainGameWindow::applicationStarting() scummvm/engines/titanic/main_game_window.cpp:91 16 scummvm Titanic::TitanicEngine::initialize() scummvm/engines/titanic/titanic.cpp:127 17 scummvm Titanic::TitanicEngine::run() scummvm/engines/titanic/titanic.cpp:154
2 libc++abi.dylib operator new(unsigned long) 3 scummvm Audio::makeRawStream(Common::SeekableReadStream*, int, unsigned char, DisposeAfterUse::Flag) scummvm/audio/decoders/raw.cpp:214 4 scummvm Audio::makeRawStream(unsigned char const*, unsigned int, int, unsigned char, DisposeAfterUse::Flag) scummvm/audio/decoders/raw.cpp:221 5 scummvm Audio::makeWAVStream(Common::SeekableReadStream*, DisposeAfterUse::Flag) scummvm/audio/decoders/wave.cpp:227 6 scummvm Titanic::CWaveFile::createAudioStream() scummvm/engines/titanic/sound/wave_file.cpp:168 7 scummvm Titanic::CWaveFile::play(int, unsigned char) scummvm/engines/titanic/sound/wave_file.cpp:201 8 scummvm Titanic::QMixer::qsWaveMixPump() scummvm/engines/titanic/sound/qmixer.cpp:234 9 scummvm Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) scummvm/engines/titanic/sound/qmixer.cpp:170 10 scummvm Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) scummvm/engines/titanic/sound/sound_manager.cpp:426 11 scummvm Titanic::CAutoSoundPlayer::TurnOn(Titanic::CTurnOn*) scummvm/engines/titanic/sound/auto_sound_player.cpp:81 12 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*) scummvm/engines/titanic/messages/messages.cpp:107 13 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) scummvm/engines/titanic/messages/messages.cpp:60 14 scummvm Titanic::CRoomAutoSoundPlayer::EnterRoomMsg(Titanic::CEnterRoomMsg*) scummvm/engines/titanic/sound/room_auto_sound_player.cpp:46 15 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*) scummvm/engines/titanic/messages/messages.cpp:107 16 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) scummvm/engines/titanic/messages/messages.cpp:60 17 scummvm Titanic::CViewItem::enterView(Titanic::CViewItem*) scummvm/engines/titanic/core/view_item.cpp:163 18 scummvm Titanic::CViewItem::MouseButtonDownMsg(Titanic::CMouseButtonDownMsg*) scummvm/engines/titanic/core/view_item.cpp:199 19 scummvm Titanic::CMessage::perform(Titanic::CTreeItem*) scummvm/engines/titanic/messages/messages.cpp:107 20 scummvm Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) scummvm/engines/titanic/messages/messages.cpp:60 21 scummvm Titanic::CInputHandler::dispatchMessage(Titanic::CMessage*) scummvm/engines/titanic/input_handler.cpp:156 22 scummvm Titanic::CInputHandler::processMessage(Titanic::CMessage*) scummvm/engines/titanic/input_handler.cpp:84 23 scummvm Titanic::CInputHandler::handleMessage(Titanic::CMessage&, bool) scummvm/engines/titanic/input_handler.cpp:72 24 scummvm Titanic::CInputTranslator::leftButtonDown(int, Common::Point const&) scummvm/engines/titanic/input_translator.cpp:55 25 scummvm Titanic::CMainGameWindow::leftButtonDown(Common::Point const&) scummvm/engines/titanic/main_game_window.cpp:294 26 scummvm Titanic::Events::pollEvents() scummvm/engines/titanic/events.cpp:61 27 scummvm Titanic::Events::pollEventsAndWait() scummvm/engines/titanic/events.cpp:112 28 scummvm Titanic::TitanicEngine::run() scummvm/engines/titanic/titanic.cpp:157
comment:7 by , 7 years ago
To be clear, these leaks are happening during the game, not just after the engine is deleted.
comment:8 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → pending |
Okay, I hope the most recent commits take care of the remaining leaks. I tried doing a global counter in the wavefile constructor & destructor, and the total was 0 on exit. So I'm cautiously optimistic.
comment:9 by , 7 years ago
Embarkation
==10378== 176 (32 direct, 144 indirect) bytes in 1 blocks are definitely lost in loss record 2,295 of 2,412 ==10378== at 0x4C2E19F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==10378== by 0x30CFF3: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:207) ==10378== by 0x360BBC: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:235) ==10378== by 0x360875: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:170) ==10378== by 0x309905: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==10378== by 0x308A39: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==10378== by 0x307167: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:179) ==10378== by 0x217286: Titanic::CGameObject::playGlobalSound(Titanic::CString const&, Titanic::VolumeMode, bool, bool, int, Audio::Mixer::SoundType) (game_object.cpp:513) ==10378== by 0x2FDC55: Titanic::CAutoMusicPlayerBase::LoadSuccessMsg(Titanic::CLoadSuccessMsg*) (auto_music_player_base.cpp:74) ==10378== by 0x2BF73F: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==10378== by 0x2BF4E4: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==10378== by 0x34709C: Titanic::CGameManager::postLoad(Titanic::CProjectItem*) (game_manager.cpp:104)
comment:10 by , 7 years ago
Resolution: | fixed |
---|---|
Status: | pending → new |
Arboretum:
==2467== 4,232 (32 direct, 4,200 indirect) bytes in 1 blocks are definitely lost in loss record 2,315 of 2,329 ==2467== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==2467== by 0x513647: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:207) ==2467== by 0x565766: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:235) ==2467== by 0x565421: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:170) ==2467== by 0x51017E: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==2467== by 0x50F2B5: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==2467== by 0x50D9D7: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:179) ==2467== by 0x428883: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==2467== by 0x428726: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==2467== by 0x4AB0DA: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:99) ==2467== by 0x4C9017: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==2467== by 0x4C8DBC: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==2467== ==2467== 1,297,856 (32 direct, 1,297,824 indirect) bytes in 1 blocks are definitely lost in loss record 2,328 of 2,329 ==2467== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==2467== by 0x513647: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:207) ==2467== by 0x565766: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:235) ==2467== by 0x565421: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:170) ==2467== by 0x51017E: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==2467== by 0x50F2B5: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==2467== by 0x50D9D7: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:179) ==2467== by 0x428883: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==2467== by 0x428726: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==2467== by 0x4AB06A: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:94) ==2467== by 0x4C9017: Titanic::CMessage::perform(Titanic::CTreeItem*) (messages.cpp:107) ==2467== by 0x4C8DBC: Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (messages.cpp:60) ==2467== ==2467== 1,376,796 bytes in 1 blocks are possibly lost in loss record 2,329 of 2,329 ==2467== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==2467== by 0x731834: Audio::makeWAVStream(Common::SeekableReadStream*, DisposeAfterUse::Flag) (wave.cpp:220) ==2467== by 0x5134AB: Titanic::CWaveFile::createAudioStream() (wave_file.cpp:170) ==2467== by 0x5135FD: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:201) ==2467== by 0x565766: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:235) ==2467== by 0x565421: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:170) ==2467== by 0x51017E: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==2467== by 0x50F2B5: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==2467== by 0x50D9D7: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:179) ==2467== by 0x428883: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804) ==2467== by 0x428726: Titanic::CGameObject::playSound(Titanic::CString const&, unsigned int, int, bool) (game_object.cpp:789) ==2467== by 0x4AB0DA: Titanic::CGondolierMixer::TurnOn(Titanic::CTurnOn*) (gondolier_mixer.cpp:99)
comment:11 by , 7 years ago
Bridge helmet on then off also look at starview and skyview:
==2533== 711,816 (256 direct, 711,560 indirect) bytes in 4 blocks are definitely lost in loss record 2,337 of 2,337 ==2533== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==2533== by 0x72D5DC: Audio::makeRawStream(Common::SeekableReadStream*, int, unsigned char, DisposeAfterUse::Flag) (raw.cpp:214) ==2533== by 0x72D6E0: Audio::makeRawStream(unsigned char const*, unsigned int, int, unsigned char, DisposeAfterUse::Flag) (raw.cpp:221) ==2533== by 0x7318E8: Audio::makeWAVStream(Common::SeekableReadStream*, DisposeAfterUse::Flag) (wave.cpp:227) ==2533== by 0x5134AB: Titanic::CWaveFile::createAudioStream() (wave_file.cpp:170) ==2533== by 0x5135FD: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:201) ==2533== by 0x565766: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:235) ==2533== by 0x565421: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:170) ==2533== by 0x51017E: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==2533== by 0x50F2B5: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==2533== by 0x50D9D7: Titanic::CSound::playSound(Titanic::CString const&, Titanic::CProximity&) (sound.cpp:179) ==2533== by 0x428883: Titanic::CGameObject::playSound(Titanic::CString const&, Titanic::CProximity&) (game_object.cpp:804)
comment:12 by , 7 years ago
Grab parrot:
==2612== 71,055 (63,776 direct, 7,279 indirect) bytes in 1 blocks are definitely lost in loss record 2,327 of 2,328 ==2612== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==2612== by 0x72875E: Audio::makeMP3Stream(Common::SeekableReadStream*, DisposeAfterUse::Flag) (mp3.cpp:534) ==2612== by 0x7317B9: Audio::makeWAVStream(Common::SeekableReadStream*, DisposeAfterUse::Flag) (wave.cpp:208) ==2612== by 0x5134AB: Titanic::CWaveFile::createAudioStream() (wave_file.cpp:170) ==2612== by 0x5135FD: Titanic::CWaveFile::play(int, unsigned char) (wave_file.cpp:201) ==2612== by 0x565766: Titanic::QMixer::qsWaveMixPump() (qmixer.cpp:235) ==2612== by 0x565421: Titanic::QMixer::qsWaveMixPlayEx(int, unsigned int, Titanic::CWaveFile*, int, Titanic::QMIXPLAYPARAMS const&) (qmixer.cpp:170) ==2612== by 0x51017E: Titanic::QSoundManager::playWave(Titanic::CWaveFile*, int, unsigned int, Titanic::CProximity&) (sound_manager.cpp:426) ==2612== by 0x50F2B5: Titanic::QSoundManager::playSound(Titanic::CWaveFile&, Titanic::CProximity&) (sound_manager.cpp:187) ==2612== by 0x50DC85: Titanic::CSound::playSpeech(Titanic::CDialogueFile*, int, Titanic::CProximity&) (sound.cpp:228) ==2612== by 0x53CE28: Titanic::CTrueTalkManager::playSpeech(Titanic::TTtalker*, Titanic::TTroomScript*, Titanic::CViewItem*, bool) (true_talk_manager.cpp:538) ==2612== by 0x53C5CA: Titanic::CTrueTalkManager::setDialogue(Titanic::CTrueTalkNPC*, Titanic::TTroomScript*, Titanic::CViewItem*) (true_talk_manager.cpp:357)
comment:13 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Okay, once again, I think my commit will fix these leaks :)
Arboretum.
scummvm: 1.10.0git-4971-g8547c89b86