summaryrefslogtreecommitdiff
path: root/lib/block_task.cpp
diff options
context:
space:
mode:
authorJosh Blum2012-09-05 01:02:31 -0700
committerJosh Blum2012-09-05 01:02:31 -0700
commitc3809c21067f985a0a88cff4bef544fba9415e30 (patch)
tree53f2003820da03160277897270e36569223f3866 /lib/block_task.cpp
parent9ae32c46be162ade1d403d50334d48820ae21690 (diff)
downloadsandhi-c3809c21067f985a0a88cff4bef544fba9415e30.tar.gz
sandhi-c3809c21067f985a0a88cff4bef544fba9415e30.tar.bz2
sandhi-c3809c21067f985a0a88cff4bef544fba9415e30.zip
qa_fft_filter no segfaults, still not passing though
Diffstat (limited to 'lib/block_task.cpp')
-rw-r--r--lib/block_task.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/block_task.cpp b/lib/block_task.cpp
index 269e6e9..a5dccbe 100644
--- a/lib/block_task.cpp
+++ b/lib/block_task.cpp
@@ -18,6 +18,8 @@
#include <boost/foreach.hpp>
#include <algorithm>
+#define REALLY_BIG size_t(1 << 30)
+
using namespace gnuradio;
void ElementImpl::mark_done(const tsbe::TaskInterface &task_iface)
@@ -103,7 +105,7 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface)
//------------------------------------------------------------------
//-- initialize input buffers before work
//------------------------------------------------------------------
- size_t num_input_items = (num_inputs)? ~0 : 0; //so big that it must std::min
+ size_t num_input_items = REALLY_BIG; //so big that it must std::min
size_t input_tokens_count = 0;
for (size_t i = 0; i < num_inputs; i++)
{
@@ -124,7 +126,7 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface)
//------------------------------------------------------------------
//-- initialize output buffers before work
//------------------------------------------------------------------
- size_t num_output_items = (num_outputs)? ~0 : 0; //so big that it must std::min
+ size_t num_output_items = REALLY_BIG; //so big that it must std::min
size_t output_tokens_count = 0;
for (size_t i = 0; i < num_outputs; i++)
{
@@ -163,7 +165,7 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface)
//------------------------------------------------------------------
//-- the work
//------------------------------------------------------------------
- work_noutput_items = (num_inputs)? myulround((num_input_items)*this->relative_rate) : num_output_items;
+ work_noutput_items = std::min(num_output_items, myulround((num_input_items)*this->relative_rate));
const int ret = block_ptr->Work(this->input_items, this->output_items);
const size_t noutput_items = size_t(ret);