summaryrefslogtreecommitdiffstats
path: root/src/server/events/Disconnect.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-10-06 17:51:43 +0000
committerDavid Robillard <d@drobilla.net>2011-10-06 17:51:43 +0000
commitbb12144cbfb8c06f502ce0f963edefbb6009aea9 (patch)
tree0fb098b714256e3f4fe8148d2893715de4f749bc /src/server/events/Disconnect.cpp
parent5994178571afa3483d2a52ce78646d4161153ea5 (diff)
downloadingen-bb12144cbfb8c06f502ce0f963edefbb6009aea9.tar.gz
ingen-bb12144cbfb8c06f502ce0f963edefbb6009aea9.tar.bz2
ingen-bb12144cbfb8c06f502ce0f963edefbb6009aea9.zip
Use an intrusive linked list for InputPort connections.
This simplifies the code and avoids the overhead of allocating list nodes. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3532 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/events/Disconnect.cpp')
-rw-r--r--src/server/events/Disconnect.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp
index c55ae1ae..c089fb11 100644
--- a/src/server/events/Disconnect.cpp
+++ b/src/server/events/Disconnect.cpp
@@ -185,9 +185,9 @@ Disconnect::Impl::execute(ProcessContext& context, bool set_dst_buffers)
{
ThreadManager::assert_thread(THREAD_PROCESS);
- InputPort::Connections::Node* const port_connections_node
+ ConnectionImpl* const port_connection
= _dst_input_port->remove_connection(context, _src_output_port);
- if (!port_connections_node) {
+ if (!port_connection) {
return false;
}
@@ -204,9 +204,8 @@ Disconnect::Impl::execute(ProcessContext& context, bool set_dst_buffers)
}
assert(_connection);
- assert(port_connections_node->elem() == _connection);
+ assert(port_connection == _connection.get());
- _engine.maid()->push(port_connections_node);
return true;
}