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

Colin Snover trac at scummvm.org
Mon Sep 18 05:49:54 CEST 2017


#10207: TITANIC: Memory leaks in QSoundManager
--------------------+------------------------------
Reporter:  csnover  |      Owner:  (none)
    Type:  defect   |     Status:  new
Priority:  normal   |  Component:  Engine: Titanic
Keywords:           |       Game:  Starship Titanic
--------------------+------------------------------
 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

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


More information about the Scummvm-tracker mailing list