safety fix for the connection-based latency in the event that there are no connections 2.8.12
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 27 Sep 2011 18:09:30 +0000 (18:09 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 27 Sep 2011 18:09:30 +0000 (18:09 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@10146 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/route.cc

index 72b5c33057c7e31644bac28c26c0376d3747c376..cd4c637040464db6656da74715de5bdf780ffc93 100644 (file)
@@ -2478,24 +2478,32 @@ Route::update_port_latencies (vector<Port*>& from, vector<Port*>& to, bool playb
 
        jack_latency_range_t all_connections;
 
-       all_connections.min = ~((jack_nframes_t) 0);
-       all_connections.max = 0;
-
-       /* iterate over all "from" ports and determine the latency range for all of their
-          connections to the "outside" (outside of this Route).
-       */
-
-       for (vector<Port*>::const_iterator p = from.begin(); p != from.end(); ++p) {
-
-               jack_latency_range_t range;
-
-               (*p)->get_connected_latency_range (range, playback);
-
-                // cerr << "***** for " << (*p)->name() << " CLR = " << range.min << " - " << range.max << endl;
-
-               all_connections.min = min (all_connections.min, range.min);
-               all_connections.max = max (all_connections.max, range.max);
-       }
+        if (from.empty()) {
+
+                all_connections.min = 0;
+                all_connections.max = 0;
+
+        } else {
+
+                all_connections.min = ~((jack_nframes_t) 0);
+                all_connections.max = 0;
+                
+                /* iterate over all "from" ports and determine the latency range for all of their
+                   connections to the "outside" (outside of this Route).
+                */
+                
+                for (vector<Port*>::const_iterator p = from.begin(); p != from.end(); ++p) {
+                        
+                        jack_latency_range_t range;
+                        
+                        (*p)->get_connected_latency_range (range, playback);
+                        
+                        // cerr << "***** for " << (*p)->name() << " CLR = " << range.min << " - " << range.max << endl;
+                        
+                        all_connections.min = min (all_connections.min, range.min);
+                        all_connections.max = max (all_connections.max, range.max);
+                }
+        }
 
        /* set the "from" port latencies to the max/min range of all their connections */