update route/processor semantics
[ardour.git] / libs / ardour / port_set.cc
index c7f5e2e674e7557cc1ca7eb3ce33a38dc0ce6a3e..93fe54ed1c99807336ba609b3a04b8049c5adc80 100644 (file)
@@ -92,7 +92,7 @@ PortSet::add (boost::shared_ptr<Port> 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());
 }
@@ -104,7 +104,7 @@ PortSet::remove (boost::shared_ptr<Port> port)
        if (i != _all_ports.end()) {
                _all_ports.erase(i);
        }
-       
+
        for (std::vector<PortVec>::iterator l = _ports.begin(); l != _ports.end(); ++l) {
                PortVec::iterator i = find(l->begin(), l->end(), port);
                if (i != l->end()) {
@@ -145,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<Port>();
 }
 
 boost::shared_ptr<AudioPort>