diff options
author | Robin Gareus <robin@gareus.org> | 2020-05-13 17:55:09 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-05-13 17:58:37 +0200 |
commit | 10200f5e29e946fbb133500f279fdb0cd2932e6b (patch) | |
tree | c05b629ffed1242e7284bcb68ecefed9459e809d | |
parent | 7289be59c984192d269e63d081809ef835d7b477 (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.
-rw-r--r-- | libs/ardour/internal_send.cc | 3 |
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; } |