summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Blum2012-11-21 20:15:06 -0800
committerJosh Blum2012-11-21 20:15:06 -0800
commit6d4c752aa0aaf41d7e764dbd81708f343a38c650 (patch)
tree0f631463320fa6e0780e4b06f1731d886e760975
parentfc2d9cf48d9d09ee42d817ab14ec0146474630c7 (diff)
downloadsandhi-6d4c752aa0aaf41d7e764dbd81708f343a38c650.tar.gz
sandhi-6d4c752aa0aaf41d7e764dbd81708f343a38c650.tar.bz2
sandhi-6d4c752aa0aaf41d7e764dbd81708f343a38c650.zip
guard against empty consumes
-rw-r--r--lib/block_task.cpp1
-rw-r--r--lib/gras_impl/input_buffer_queues.hpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/lib/block_task.cpp b/lib/block_task.cpp
index 1a6c447..a0d4ba8 100644
--- a/lib/block_task.cpp
+++ b/lib/block_task.cpp
@@ -229,6 +229,7 @@ void BlockActor::handle_task(void)
void BlockActor::consume(const size_t i, const size_t items)
{
+ if (items == 0) return;
this->items_consumed[i] += items;
const size_t bytes = items*this->input_items_sizes[i];
this->input_queues.consume(i, bytes);
diff --git a/lib/gras_impl/input_buffer_queues.hpp b/lib/gras_impl/input_buffer_queues.hpp
index f2738ee..5ae8951 100644
--- a/lib/gras_impl/input_buffer_queues.hpp
+++ b/lib/gras_impl/input_buffer_queues.hpp
@@ -225,6 +225,7 @@ GRAS_FORCE_INLINE void InputBufferQueues::accumulate(const size_t i, const size_
GRAS_FORCE_INLINE void InputBufferQueues::consume(const size_t i, const size_t bytes_consumed)
{
+ ASSERT(not _queues[i].empty());
SBuffer &front = _queues[i].front();
//assert that we dont consume past the bounds of the buffer