Previously Port::PortDrop was never handled.
The signal was disconnected directly when the connection
is re-used by Port::PortSignalDrop.
Ports::drop() was not called when the engine was stopped
or disconnected, and port-handles were not invalidated.
This lead to crashes whenever a port-related operation was performed
while the engine was stopped. e.g. adding/removing tracks or plugins
(latency recompute, notify port-engine) and various other operations.
void port_connected_or_disconnected (boost::weak_ptr<Port>, boost::weak_ptr<Port>, bool);
void signal_drop ();
void drop ();
- PBD::ScopedConnection drop_connection;
+ PBD::ScopedConnectionList drop_connection;
PBD::ScopedConnection engine_connection;
};