summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rondeau <tom@trondeau.com>2014-09-25 10:02:47 -0400
committerTom Rondeau <tom@trondeau.com>2014-09-25 10:02:47 -0400
commit33f0601d27ad6ca1e9dc55ecce259f7eb9231385 (patch)
tree5ee2ec99d82a17f4f95fb28bbc3fe0708156ed37
parente98373d0d79b3f231248d939101ddfdc650c49d2 (diff)
blocks: convert asserts to throwing runtime errors in keep_m_in_n ctor.
-rw-r--r--gr-blocks/lib/keep_m_in_n_impl.cc31
1 files changed, 23 insertions, 8 deletions
diff --git a/gr-blocks/lib/keep_m_in_n_impl.cc b/gr-blocks/lib/keep_m_in_n_impl.cc
index e987b52265..878531dba3 100644
--- a/gr-blocks/lib/keep_m_in_n_impl.cc
+++ b/gr-blocks/lib/keep_m_in_n_impl.cc
@@ -30,25 +30,40 @@
namespace gr {
namespace blocks {
- keep_m_in_n::sptr keep_m_in_n::make(size_t itemsize, int m, int n, int offset)
+ keep_m_in_n::sptr
+ keep_m_in_n::make(size_t itemsize, int m, int n, int offset)
{
- return gnuradio::get_initial_sptr(new keep_m_in_n_impl(itemsize, m, n, offset));
+ return gnuradio::get_initial_sptr
+ (new keep_m_in_n_impl(itemsize, m, n, offset));
}
keep_m_in_n_impl::keep_m_in_n_impl(size_t itemsize, int m, int n, int offset)
: block("keep_m_in_n",
- io_signature::make (1, 1, itemsize),
- io_signature::make (1, 1, itemsize)),
+ io_signature::make (1, 1, itemsize),
+ io_signature::make (1, 1, itemsize)),
d_m(m),
d_n(n),
d_offset(offset),
d_itemsize(itemsize)
{
// sanity checking
- assert(d_m > 0);
- assert(d_n > 0);
- assert(d_m <= d_n);
- assert(d_offset <= (d_n-d_m));
+ if(d_m <= 0) {
+ std::string s = boost::str(boost::format("keep_m_in_n: m=%1% but must be > 0") % d_m);
+ throw std::runtime_error(s);
+ }
+ if(d_n <= 0) {
+ std::string s = boost::str(boost::format("keep_m_in_n: n=%1% but must be > 0") % d_n);
+ throw std::runtime_error(s);
+ }
+ if(d_m > d_n) {
+ std::string s = boost::str(boost::format("keep_m_in_n: m (%1%) <= n %2%") % d_m % d_n);
+ throw std::runtime_error(s);
+ }
+ if(d_offset < (d_n - d_m)) {
+ std::string s = boost::str(boost::format("keep_m_in_n: offset (%1%) <= n (%2%) - m (%3%)") \
+ % d_offset % d_n % d_m);
+ throw std::runtime_error(s);
+ }
set_output_multiple(m);
}