summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjcorgan2009-03-19 22:32:30 +0000
committerjcorgan2009-03-19 22:32:30 +0000
commit88304ce16a97945d13510b5fdaefcc0f62462d9d (patch)
tree5a790d3dd6b19ae99a03478c420464ffbfbee5cb
parent8cbe88292ba457fe1dca5931bf037d88a3650bc3 (diff)
downloadgnuradio-88304ce16a97945d13510b5fdaefcc0f62462d9d.tar.gz
gnuradio-88304ce16a97945d13510b5fdaefcc0f62462d9d.tar.bz2
gnuradio-88304ce16a97945d13510b5fdaefcc0f62462d9d.zip
Error out when hierarchical block inputs and outputs aren't wired internally. Fixes ticket:237
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10655 221aa14e-8319-0410-a670-987f0aec2ac5
-rw-r--r--gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc b/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
index a026851d2..e5336d483 100644
--- a/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
+++ b/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
@@ -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);
}