diff options
author | Carl Hetherington <carl@carlh.net> | 2010-11-24 13:56:22 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-11-24 13:56:22 +0000 |
commit | 8f2c07eedc15de9c05fab8c704a86b2be6fa9f05 (patch) | |
tree | b4a4bd99c1f4d99db82fe0868f90be7d8d709d87 /libs/ardour/route.cc | |
parent | f6019bd0edcbdfc4d67d26a6bdb4323a732a4bf3 (diff) |
Prevent crash when loading sessions with unknown plugins.
git-svn-id: svn://localhost/ardour2/branches/3.0@8082 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r-- | libs/ardour/route.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index ed36a1a3b1..1bb9c63db5 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2323,14 +2323,15 @@ Route::set_processor_state (const XMLNode& node) continue; } - processor->set_state (**niter, Stateful::current_state_version); - new_order.push_back (processor); - must_configure = true; + if (processor->set_state (**niter, Stateful::current_state_version) == 0) { + new_order.push_back (processor); + must_configure = true; + } } } } - { + { Glib::RWLock::WriterLock lm (_processor_lock); _processors = new_order; if (must_configure) { |