INDY3: Rare assertion in AdLib player
|Reported by:||eriktorbjorn||Owned by:||lordhoto|
|Game:||Indiana Jones 3|
Current Git snapshot, English VGA version of the game.
Very occasionally, the new AdLib player will trip the following assertion when Indy changes clothes after climing out a window in Castle Brunwald:
scummvm: engines/scumm/players/player_ad.cpp:324: void Scumm::Player_AD::freeHWChannel(int): Assertion `_hwChannels[channel].allocated' failed.
It happened the first time I tried it, but I don't know how many times I had to try for it to happen a second time, let alone a third when I finally tried it in GDB. I can only assume it is some interaction between the music and the random (?) sound effects. Anyway, here is the backtrace I finally got:
#0 0xb7fde424 in __kernel_vsyscall () #1 0xb77df527 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #2 0xb77e28a3 in __GI_abort () at abort.c:89 #3 0xb77d88a7 in __assert_fail_base ( fmt=0xb79131b4 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x942e58c "_hwChannels[channel].allocated", file=file@entry=0x942e568 "engines/scumm/players/player_ad.cpp", line=line@entry=324, function=function@entry=0x942e9a0 <Scumm::Player_AD::freeHWChannel(int)::__PRETTY_FUNCTION__> "void Scumm::Player_AD::freeHWChannel(int)") at assert.c:92 #4 0xb77d8957 in __GI___assert_fail ( assertion=0x942e58c "_hwChannels[channel].allocated", file=0x942e568 "engines/scumm/players/player_ad.cpp", line=324, function=0x942e9a0 <Scumm::Player_AD::freeHWChannel(int)::__PRETTY_FUNCTION__> "void Scumm::Player_AD::freeHWChannel(int)") at assert.c:101 #5 0x0814e3a0 in Scumm::Player_AD::freeHWChannel (this=0x9edec90, channel=1) at engines/scumm/players/player_ad.cpp:324 #6 0x0814f854 in Scumm::Player_AD::stopSfx (this=0x9edec90, sfx=0x9edef18) at engines/scumm/players/player_ad.cpp:843 #7 0x0814e2f6 in Scumm::Player_AD::allocateHWChannel (this=0x9edec90, priority=118, owner=0x9edef18) at engines/scumm/players/player_ad.cpp:311 #8 0x0814f5c4 in Scumm::Player_AD::startSfx (this=0x9edec90, sfx=0x9edef18, resource=0xa09dc50 "v") at engines/scumm/players/player_ad.cpp:779 #9 0x0814dad2 in Scumm::Player_AD::startSound (this=0x9edec90, sound=58) at engines/scumm/players/player_ad.cpp:137 #10 0x08082185 in Scumm::Sound::playSound (this=0x9ee6410, soundID=58) at engines/scumm/sound.cpp:406 #11 0x08081652 in Scumm::Sound::processSoundQueues (this=0x9ee6410) at engines/scumm/sound.cpp:141 #12 0x080815e9 in Scumm::Sound::processSound (this=0x9ee6410) at engines/scumm/sound.cpp:128 #13 0x0807f4a3 in Scumm::ScummEngine::scummLoop_handleSound (this=0x9fe65f8) at engines/scumm/scumm.cpp:2442 #14 0x0807e86c in Scumm::ScummEngine::scummLoop (this=0x9fe65f8, delta=6) at engines/scumm/scumm.cpp:2224 #15 0x0807de35 in Scumm::ScummEngine::go (this=0x9fe65f8) at engines/scumm/scumm.cpp:2024 #16 0x08080216 in Scumm::ScummEngine::run (this=0x9fe65f8) at ./engines/scumm/scumm.h:420 #17 0x08051f5c in runGame (plugin=0x9ecdce8, system=..., edebuglevels=...) at base/main.cpp:244 #18 0x08052fd3 in scummvm_main (argc=2, argv=0xbffff364) at base/main.cpp:489 #19 0x08050ac4 in main (argc=2, argv=0xbffff364) at backends/platform/sdl/posix/posix-main.cpp:45
Ticket imported from: bugs/6659.