]> git.gag.com Git - debian/gnuradio/commitdiff
Error out when hierarchical block inputs and outputs aren't wired internally. Fixes...
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 19 Mar 2009 22:32:30 +0000 (22:32 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 19 Mar 2009 22:32:30 +0000 (22:32 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10655 221aa14e-8319-0410-a670-987f0aec2ac5

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

index a026851d20117f4802e1b1fe072f9c3b0fd2fcef..e5336d483bfda30877593c980233140b575c7a8a 100644 (file)
@@ -267,6 +267,12 @@ gr_hier_block2_detail::resolve_port(int port, bool is_input)
       throw std::runtime_error(msg.str());
     }
 
+    if (d_inputs[port] == gr_endpoint()) {
+      msg << "hierarchical block '" << d_owner->name() << "' input " << port
+         << " is not connected internally";
+      throw std::runtime_error(msg.str());
+    }
+
     result = resolve_endpoint(d_inputs[port], true);
   }
   else {
@@ -275,6 +281,12 @@ gr_hier_block2_detail::resolve_port(int port, bool is_input)
       throw std::runtime_error(msg.str());
     }
 
+    if (d_outputs[port] == gr_endpoint()) {
+      msg << "hierarchical block '" << d_owner->name() << "' output " << port
+         << " is not connected internally";
+      throw std::runtime_error(msg.str());
+    }
+
     result = resolve_endpoint(d_outputs[port], false);
   }