Robin Gareus
3b9a253a84
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 |