Opened 19 years ago

Closed 19 years ago

Last modified 19 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
Version: 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 by SF/retroactivemind, 19 years ago

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

comment:2 by fingolfin, 19 years ago

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

comment:3 by fingolfin, 19 years ago

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 by kingguppy, 19 years ago

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 by kingguppy, 19 years ago

Owner: kingguppy removed

comment:6 by kingguppy, 19 years ago

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

comment:7 by joostp, 19 years ago

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

comment:8 by joostp, 19 years ago

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

comment:9 by joostp, 19 years ago

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