diff options
Diffstat (limited to 'lib/gras_impl')
-rw-r--r-- | lib/gras_impl/input_buffer_queues.hpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/gras_impl/input_buffer_queues.hpp b/lib/gras_impl/input_buffer_queues.hpp index d15e472..d192a2e 100644 --- a/lib/gras_impl/input_buffer_queues.hpp +++ b/lib/gras_impl/input_buffer_queues.hpp @@ -49,6 +49,7 @@ struct InputBufferQueues GRAS_FORCE_INLINE const SBuffer &front(const size_t i) { ASSERT(this->ready(i)); + ASSERT(_items_sizes[i] != 0); //special case when the null buffer is possible if (_queues[i].empty()) return get_null_buff(); @@ -153,14 +154,17 @@ struct InputBufferQueues GRAS_FORCE_INLINE void InputBufferQueues::resize(const size_t size) { _bitset.resize(size); - _items_sizes.resize(size, 0); _enqueued_bytes.resize(size, 0); - _reserve_bytes.resize(size, 1); - _maximum_bytes.resize(size, MAX_AUX_BUFF_BYTES); _queues.resize(size, boost::circular_buffer<SBuffer>(1)); - _preload_bytes.resize(size, 0); _aux_queues.resize(size); + if (size != 0) //keep config info when flushing + { + _items_sizes.resize(size, 0); + _preload_bytes.resize(size, 0); + _reserve_bytes.resize(size, 1); + _maximum_bytes.resize(size, MAX_AUX_BUFF_BYTES); + } } inline void InputBufferQueues::update_config( |