Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#1854 closed defect (fixed)

FOTAQ: Crash when quitting through journal (MIDI-related)

Reported by: SF/retroactivemind Owned by: joostp
Priority: normal Component: Engine: Queen
Keywords: Cc:
Game: Flight of the Amazon Queen

Description

I get an "Fatal signal: Segmentation Fault (SDL Parachute
Deployed)" message when using MT-32 music driver &
selecting "Give Up" in the journal screen or after
completing FOTAQ (Full English Talkie).

I first noticed this with the Dec 16 binary snapshot, but it
also happens with the latest snapshot as of now. (Dec
20)

Ticket imported from: #1088441. Ticket imported from: bugs/1854.

Change History (9)

comment:1 Changed 15 years ago by SF/retroactivemind

Summary: FOTAQ/MT-32: 'SDL Parachute Deployed' at completion/exitFOTAQ: 'SDL Parachute Deployed' at completion/exit (MT-32)

comment:2 Changed 15 years ago by fingolfin

KingGuppy, can you determine whether this is the fault of the MT32
driver or rather a bug in FOTAQ?

comment:3 Changed 15 years ago by fingolfin

Owner: set to kingguppy
Summary: FOTAQ: 'SDL Parachute Deployed' at completion/exit (MT-32)FOTAQ: Crash at exit when using MT-32 driver

comment:4 Changed 15 years ago by kingguppy

This isn't related to the MT-32 emulator specifically.

In MusicPlayer::~MusicPlayer() in queen/music.cpp:

this->close();

ends up setting _driver to 0, and the

delete _parser;

immediately after it eventually dereferences _driver through
a (redundant) call to MidiParser::allNotesOff().

There are several fixes possible, but I'd like someone who
knows the code better to choose the right one.

comment:5 Changed 15 years ago by kingguppy

Owner: kingguppy deleted

comment:6 Changed 15 years ago by kingguppy

Summary: FOTAQ: Crash at exit when using MT-32 driverFOTAQ: Crash when quitting through journal (MIDI-related)

comment:7 Changed 15 years ago by joostp

Someone who knows which code better? that of MidiDriver and the like,
or the FOTAQ MusicPlayer?

comment:8 Changed 15 years ago by joostp

This is now fixed in CVS by reordering the of close()-ing
and delete-ing of the _driver + _parser.

comment:9 Changed 15 years ago by joostp

Owner: set to joostp
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.