diff --git a/include/boost/buffers/flat_buffer.hpp b/include/boost/buffers/flat_buffer.hpp index 46099e6..b7b00df 100644 --- a/include/boost/buffers/flat_buffer.hpp +++ b/include/boost/buffers/flat_buffer.hpp @@ -96,7 +96,7 @@ class flat_buffer std::size_t capacity() const noexcept { - return cap_ - in_pos_; + return cap_ - (in_pos_ + in_size_); } const_buffers_type @@ -111,7 +111,7 @@ class flat_buffer prepare(std::size_t n) { // n exceeds available space - if(n > cap_ - in_size_) + if( n > capacity() ) detail::throw_invalid_argument(); out_size_ = n;