13
0

All plugin activate() method when required for copy & paste operations. Fixes segfaults on drag and drop of plugins between routes.

git-svn-id: svn://localhost/ardour2/branches/3.0@6203 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2009-11-28 02:39:16 +00:00
parent 673a995e5c
commit 1e424e1146
2 changed files with 6 additions and 3 deletions

View File

@ -89,6 +89,8 @@ PluginInsert::PluginInsert (Session& s, const XMLNode& node)
throw failed_constructor();
}
_pending_active = _active;
{
Glib::Mutex::Lock em (_session.engine().process_lock());
IO::PortCountChanged (max(input_streams(), output_streams()));
@ -718,7 +720,6 @@ PluginInsert::set_state(const XMLNode& node, int version)
}
if (prop->value() == X_("ladspa") || prop->value() == X_("Ladspa")) { /* handle old school sessions */
cout << "- LADSPA\n";
type = ARDOUR::LADSPA;
} else if (prop->value() == X_("lv2")) {
type = ARDOUR::LV2;
@ -752,8 +753,6 @@ PluginInsert::set_state(const XMLNode& node, int version)
}
}
cout << "- ID " << prop->value() << "\n";
boost::shared_ptr<Plugin> plugin;
plugin = find_plugin (_session, prop->value(), type);

View File

@ -1014,6 +1014,10 @@ Route::add_processors (const ProcessorList& others, ProcessorList::iterator iter
_processors.insert (iter, *i);
if ((*i)->active()) {
(*i)->activate ();
}
if (configure_processors_unlocked (err)) {
++existing_end;
_processors.erase (existing_end, _processors.end());