diff options
author | Tom Rondeau <tom@trondeau.com> | 2014-09-25 10:02:47 -0400 |
---|---|---|
committer | Tom Rondeau <tom@trondeau.com> | 2014-09-25 10:02:47 -0400 |
commit | 33f0601d27ad6ca1e9dc55ecce259f7eb9231385 (patch) | |
tree | 5ee2ec99d82a17f4f95fb28bbc3fe0708156ed37 | |
parent | e98373d0d79b3f231248d939101ddfdc650c49d2 (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.cc | 31 |
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); } |