summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-05-13 17:55:09 +0200
committerRobin Gareus <robin@gareus.org>2020-05-13 17:58:37 +0200
commit10200f5e29e946fbb133500f279fdb0cd2932e6b (patch)
treec05b629ffed1242e7284bcb68ecefed9459e809d /libs
parent7289be59c984192d269e63d081809ef835d7b477 (diff)
Fix crash when closing session with VCA slaved solo
Session::destroy() calls drop_references(), which leads to InternalSend::send_from_going_away() calling InternalSend::propagate_solo(). This looks up the SoloControl to test soloed_by_others(), incl. and VCA maters. Those VCAs however may already have been destroyed, and (weak pointer) _master.lock() fails.
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/internal_send.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/libs/ardour/internal_send.cc b/libs/ardour/internal_send.cc
index d93e61e1ac..b5b1ead7ab 100644
--- a/libs/ardour/internal_send.cc
+++ b/libs/ardour/internal_send.cc
@@ -83,6 +83,9 @@ InternalSend::~InternalSend ()
void
InternalSend::propagate_solo ()
{
+ if (_session.inital_connect_or_deletion_in_progress ()) {
+ return;
+ }
if (!_send_to || !_send_from) {
return;
}