summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-09-02 22:59:12 +0000
committerCarl Hetherington <carl@carlh.net>2009-09-02 22:59:12 +0000
commite745eb695283f209da7f47fa4c43d511fef1de12 (patch)
treeb1a9b311d54e63511f2c2bc916a213a04078cc95
parent9d9905f443f797efaabb7b8b36217b71e57c6c06 (diff)
Modified version of Hans' patch for mantis 1985. Also remove unused port_connections array in AudioEngine.
git-svn-id: svn://localhost/ardour2/branches/3.0@5621 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/ardour/audioengine.h6
-rw-r--r--libs/ardour/audioengine.cc26
2 files changed, 5 insertions, 27 deletions
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index 9dec7c8ec3..cb8baf85df 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -238,12 +238,6 @@ class AudioEngine : public sigc::trackable
int process_callback (nframes_t nframes);
void remove_all_ports ();
- typedef std::pair<std::string,std::string> PortConnection;
- typedef std::list<PortConnection> PortConnections;
-
- PortConnections port_connections;
- void remove_connections_for (Port&);
-
std::string get_nth_physical (DataType type, uint32_t n, int flags);
void port_registration_failure (const std::string& portname);
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 7b69b54e26..17d5318f48 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -580,8 +580,7 @@ AudioEngine::remove_session ()
session = 0;
}
- //FIXME: Preliminary bugfix for http://tracker.ardour.org/view.php?id=1985
- //remove_all_ports ();
+ remove_all_ports ();
}
void
@@ -682,8 +681,6 @@ AudioEngine::unregister_port (Port& port)
/* writer goes out of scope, forces update */
}
- remove_connections_for (port);
-
return 0;
}
@@ -1141,28 +1138,15 @@ AudioEngine::remove_all_ports ()
{
RCUWriter<Ports> writer (ports);
boost::shared_ptr<Ports> ps = writer.get_copy ();
- ps->clear ();
- }
-}
-void
-AudioEngine::remove_connections_for (Port& port)
-{
- for (PortConnections::iterator i = port_connections.begin(); i != port_connections.end(); ) {
- PortConnections::iterator tmp;
-
- tmp = i;
- ++tmp;
-
- if ((*i).first == port.name()) {
- port_connections.erase (i);
+ for (Ports::iterator i = ps->begin(); i != ps->end(); ++i) {
+ delete *i;
}
-
- i = tmp;
+
+ ps->clear ();
}
}
-
static void
ardour_jack_error (const char* msg)
{