[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