summaryrefslogtreecommitdiffstats
path: root/src/server/events/Delete.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-14 22:48:58 +0000
committerDavid Robillard <d@drobilla.net>2012-08-14 22:48:58 +0000
commit68c2d72ba4e2208ff926461bb6faccfbadcf2a61 (patch)
treeebda7b74b59165a7732293aad53228952e0b9e72 /src/server/events/Delete.cpp
parent76b602f1f834cb2c255848c5ba887b3d7c47171a (diff)
downloadingen-68c2d72ba4e2208ff926461bb6faccfbadcf2a61.tar.gz
ingen-68c2d72ba4e2208ff926461bb6faccfbadcf2a61.tar.bz2
ingen-68c2d72ba4e2208ff926461bb6faccfbadcf2a61.zip
Don't look up system ports by path in the audio thread.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4697 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/events/Delete.cpp')
-rw-r--r--src/server/events/Delete.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp
index 96668af1..97f1161f 100644
--- a/src/server/events/Delete.cpp
+++ b/src/server/events/Delete.cpp
@@ -109,6 +109,10 @@ Delete::pre_process()
_ports_array = _port->parent_patch()->build_ports_array();
assert(_ports_array->size() == _port->parent_patch()->num_ports_non_rt());
}
+
+ if (!_port->parent_patch()->parent()) {
+ _engine_port = _engine.driver()->port(_port->path());
+ }
}
}
@@ -140,8 +144,9 @@ Delete::execute(ProcessContext& context)
_engine.maid()->push(_port->parent_patch()->external_ports());
_port->parent_patch()->external_ports(_ports_array);
- if ( ! _port->parent_patch()->parent())
- _garbage = _engine.driver()->remove_port(context, _port->path(), &_engine_port);
+ if (_engine_port) {
+ _garbage = _engine.driver()->remove_port(context, _engine_port);
+ }
}
if (parent_patch) {