]> git.gag.com Git - debian/gnuradio/commitdiff
Fix topology checking code in gr_flowgraph. Thanks to Dan Halperin.
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Sun, 24 Feb 2008 01:54:50 +0000 (01:54 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Sun, 24 Feb 2008 01:54:50 +0000 (01:54 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@7802 221aa14e-8319-0410-a670-987f0aec2ac5

gnuradio-core/src/lib/runtime/gr_flowgraph.cc

index f4879f085f685200b3cb6ca3fa6947bc3b6534fd..359570347850f7fedc5127d6da37875da0b6c82a 100644 (file)
@@ -124,7 +124,7 @@ gr_flowgraph::check_valid_port(gr_io_signature_sptr sig, int port)
   }
 
   int max = sig->max_streams();
-  if (max >= 0 && port >= max) {
+  if (max != gr_io_signature::IO_INFINITE && port >= max) {
     msg << "port number " << port << " exceeds max of ";
     if (max == 0)
       msg << "(none)";
@@ -230,16 +230,23 @@ gr_flowgraph::check_contiguity(gr_basic_block_sptr block,
 
   int nports = used_ports.size();
   int min_ports = sig->min_streams();
+  int max_ports = sig->max_streams();
 
-  if (nports == 0) {
-    if (min_ports == 0)
-      return;
-    else {
-      msg << block << ": insufficient connected " 
-         << (check_inputs ? "input ports " : "output ports ") 
-         << "(" << min_ports+1 << " needed, " << nports+1 << " connected)";
-      throw std::runtime_error(msg.str());
-    }
+  if (nports == 0 && min_ports == 0)
+    return;
+
+  if (nports < min_ports) {
+    msg << block << ": insufficient connected "
+       << (check_inputs ? "input ports " : "output ports ")
+       << "(" << min_ports << " needed, " << nports << " connected)";
+    throw std::runtime_error(msg.str());
+  }
+
+  if (nports > max_ports && max_ports != gr_io_signature::IO_INFINITE) {
+    msg << block << ": too many connected "
+       << (check_inputs ? "input ports " : "output ports ")
+       << "(" << max_ports << " allowed, " << nports << " connected)";
+    throw std::runtime_error(msg.str());
   }
 
   if (used_ports[nports-1]+1 != nports) {