summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-11-26 21:45:06 +0100
committerRobin Gareus <robin@gareus.org>2018-11-26 21:45:06 +0100
commit5531a440c990391241292a864f9c71d3b7625c45 (patch)
treed9026a49e39add808328c935af4159d803527363 /libs/ardour/session.cc
parentdce81aecc54b9ed286ec502a2e45f4da6200d056 (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.cc8
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;
}