diff options
author | Josh Blum | 2013-02-19 04:02:56 -0600 |
---|---|---|
committer | Josh Blum | 2013-02-19 02:04:10 -0800 |
commit | a8a7b3141e3d027d299ebeb0efcaa776758723c2 (patch) | |
tree | 53cc6d32bef5812183a7981b344a1cd97c08c5e8 /lib | |
parent | 54b349885289913a212cf2fa88729cb327d0c84a (diff) | |
download | sandhi-a8a7b3141e3d027d299ebeb0efcaa776758723c2.tar.gz sandhi-a8a7b3141e3d027d299ebeb0efcaa776758723c2.tar.bz2 sandhi-a8a7b3141e3d027d299ebeb0efcaa776758723c2.zip |
gras: fix flush_all input queues so config is saved
Diffstat (limited to 'lib')
-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( |