X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fport_set.cc;h=93fe54ed1c99807336ba609b3a04b8049c5adc80;hb=f169ff3db3943b9992042e71048cade2ca1fe39d;hp=7e9f0656c598a760886c541c5f3681ec18d10562;hpb=4c224ef9558b0d555cad533dfe276c8f6dbd7bde;p=ardour.git diff --git a/libs/ardour/port_set.cc b/libs/ardour/port_set.cc index 7e9f0656c5..93fe54ed1c 100644 --- a/libs/ardour/port_set.cc +++ b/libs/ardour/port_set.cc @@ -18,9 +18,10 @@ #include -#include "ardour/port_set.h" -#include "ardour/midi_port.h" #include "ardour/audio_port.h" +#include "ardour/midi_port.h" +#include "ardour/port.h" +#include "ardour/port_set.h" using std::string; @@ -55,7 +56,7 @@ static bool sort_ports_by_name (boost::shared_ptr a, boost::shared_ptr port) sort(v.begin(), v.end(), sort_ports_by_name); sort(_all_ports.begin(), _all_ports.end(), sort_ports_by_type_and_name); - + _count.set(port->type(), _count.get(port->type()) + 1); assert(_count.get(port->type()) == _ports[port->type()].size()); } @@ -103,7 +104,7 @@ PortSet::remove (boost::shared_ptr port) if (i != _all_ports.end()) { _all_ports.erase(i); } - + for (std::vector::iterator l = _ports.begin(); l != _ports.end(); ++l) { PortVec::iterator i = find(l->begin(), l->end(), port); if (i != l->end()) { @@ -144,9 +145,11 @@ PortSet::port(DataType type, size_t n) const return port(n); } else { const PortVec& v = _ports[type]; - assert(n < v.size()); - return v[n]; + if (n < v.size()) { + return v[n]; + } } + return boost::shared_ptr(); } boost::shared_ptr