Files
ardour/gtk2_ardour
Robin Gareus 464df06419 Fix signal emission order ambiguity (record regionview)
A rec-region is added to the streamview just like any other region
(::add_region_view_internal). This subscribes to region->DropReferences.

When the DropReferences is handled first by StreamView::remove_region_view
the corresponding RegionView is destroyed.

This can happen even while recording is still active, eg. when locating
(which stops the current recording).
MidiStreamView::setup_rec_box() is called and crashes in
`dynamic_cast<MidiRegionView*> (rec_regions.back().second);`
due to a use after free.

Strictly speaking this is a logic error in how ::setup_rec_box()
determines if to add or remove the rec-box. But due to the
asynchronous nature of signal emission and transport-state changes
the best solution is to destroy the rec-region at the same
when the RegionView is destroyed.

To reproduce:
 * create a session with a MIDI track
 * disconnect the input (empty MIDI regions are removed)
 * Preferences > Transport > *enable* latched-record-enable
 * use the Dummy backend's MIDI generator
 * connect Hardware > MIDI > MMC -> Ardour misc > MMC in
   OR use JACK-transport to locate while recording.
2023-06-04 21:42:02 +02:00
..
2023-03-28 01:39:36 +02:00
2023-05-18 01:26:52 +02:00
2023-06-04 02:56:22 +02:00
2023-03-24 23:20:50 +01:00
2023-04-28 15:57:42 -06:00
2023-05-31 15:53:12 +02:00
2023-04-28 15:57:42 -06:00
2023-05-22 02:01:42 +02:00
2023-05-31 21:36:24 +02:00
2023-05-31 21:36:24 +02:00
2023-05-31 16:53:38 +02:00
2023-05-27 16:18:10 +02:00
2023-05-31 21:36:24 +02:00
2023-04-22 17:58:28 -06:00
2023-04-22 17:58:28 -06:00
2023-05-24 04:07:30 +02:00