summaryrefslogtreecommitdiff
path: root/gtk2_ardour/processor_box.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/processor_box.cc')
-rw-r--r--gtk2_ardour/processor_box.cc19
1 files changed, 17 insertions, 2 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index 201e89db3b..de4af60136 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -1305,18 +1305,33 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
XMLNode n (**niter);
Send::make_unique (n, *_session);
- p.reset (new Send (*_session, _route->mute_master(), n));
+ Send* s = new Send (*_session, _route->mute_master());
+ if (s->set_state (n, Stateful::loading_state_version)) {
+ delete s;
+ return;
+ }
+
+ p.reset (s);
+
} else if (type->value() == "return") {
XMLNode n (**niter);
Return::make_unique (n, *_session);
- p.reset (new Return (*_session, **niter));
+ Return* r = new Return (*_session);
+
+ if (r->set_state (n, Stateful::loading_state_version)) {
+ delete r;
+ return;
+ }
+
+ p.reset (r);
} else {
/* XXX its a bit limiting to assume that everything else
is a plugin.
*/
+
p.reset (new PluginInsert (*_session, **niter));
}