diff options
author | Robin Gareus <robin@gareus.org> | 2018-11-26 21:45:06 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-11-26 21:45:06 +0100 |
commit | 5531a440c990391241292a864f9c71d3b7625c45 (patch) | |
tree | d9026a49e39add808328c935af4159d803527363 /libs/ardour/session.cc | |
parent | dce81aecc54b9ed286ec502a2e45f4da6200d056 (diff) |
Fix stuck connection block when template load fails.
Session::new_route_from_template() unconditionally calls
IO::disable_connecting(), and needs to be reverted likewise
(no RAII here).
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index f5920f96e4..6fd6a9474c 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3451,6 +3451,11 @@ Session::new_route_from_template (uint32_t how_many, PresentationInfo::order_t i goto out; } + catch (...) { + IO::enable_connecting (); + throw; + } + --how_many; } @@ -3462,9 +3467,10 @@ Session::new_route_from_template (uint32_t how_many, PresentationInfo::order_t i } else { add_routes (ret, true, true, false, insert_at); } - IO::enable_connecting (); } + IO::enable_connecting (); + return ret; } |