mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-30 10:27:44 +01:00
This fixes a crash when deleting routes, while there are still automation events queued for the route. Specifically, SoloControl has a reference Soloable& _soloable; which points to the parent route. A rt-event can still hold a valid shared pointer to the SoloControl, even if the route is destroyed. Calling SoloControl::actually_set_value is fine (the control still exists due to the shared ptr), but then checking the parent route: ``` if (_soloable.is_safe() || !can_solo()) ``` accesses the already deleted route, which causes a crash. The solution implemented here is to not bind a shared_ptr to the realtime event. However, since deletion of the route happens in the main UI thread, there may or may not still be a race. |
||
|---|---|---|
| .. | ||
| appleutility | ||
| ardour | ||
| ardouralsautil | ||
| audiographer | ||
| auscan | ||
| backends | ||
| canvas | ||
| clearlooks-newer | ||
| ctrl-interface | ||
| evoral | ||
| fluidsynth | ||
| fst | ||
| gtkmm2ext | ||
| hidapi | ||
| libltc | ||
| lua | ||
| midi++2 | ||
| panners | ||
| pbd | ||
| plugins | ||
| ptformat | ||
| qm-dsp | ||
| surfaces | ||
| temporal | ||
| vamp-plugins | ||
| vamp-pyin | ||
| vfork | ||
| vst3 | ||
| waveview | ||
| widgets | ||
| zita-convolver | ||
| zita-resampler | ||