forked from boostorg/beast
Fix buffers_prefix iterator decrement
This commit is contained in:
1 parent
bd3079f5b4
commit
2c5ed4595a
3 files changed
+8
-1
No files matched your search
@@ -39,6 +39,7 @@ class buffers_prefix_view
|
||||
|
||||
BufferSequence bs_;
|
||||
std::size_t size_;
|
||||
std::size_t remain_;
|
||||
iter_type end_;
|
||||
|
||||
template<class Deduced>
|
||||
@@ -46,6 +47,7 @@ class buffers_prefix_view
|
||||
Deduced&& other, std::size_t dist)
|
||||
: bs_(std::forward<Deduced>(other).bs_)
|
||||
, size_(other.size_)
|
||||
, remain_(other.remain_)
|
||||
, end_(std::next(bs_.begin(), dist))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ private:
|
||||
const_iterator(buffers_prefix_view const& b,
|
||||
std::true_type)
|
||||
: b_(&b)
|
||||
, remain_(0)
|
||||
, remain_(b.remain_)
|
||||
, it_(b_->end_)
|
||||
{
|
||||
}
|
||||
@@ -145,6 +145,7 @@ buffers_prefix_view<BufferSequence>::
|
||||
setup(std::size_t size)
|
||||
{
|
||||
size_ = 0;
|
||||
remain_ = 0;
|
||||
end_ = boost::asio::buffer_sequence_begin(bs_);
|
||||
auto const last = bs_.end();
|
||||
while(end_ != last)
|
||||
@@ -154,6 +155,7 @@ setup(std::size_t size)
|
||||
if(len >= size)
|
||||
{
|
||||
size_ += size;
|
||||
remain_ = size - len;
|
||||
break;
|
||||
}
|
||||
size -= len;
|
||||
@@ -192,6 +194,7 @@ operator=(buffers_prefix_view&& other) ->
|
||||
other.end_);
|
||||
bs_ = std::move(other.bs_);
|
||||
size_ = other.size_;
|
||||
remain_ = other.remain_;
|
||||
end_ = std::next(
|
||||
boost::asio::buffer_sequence_begin(bs_),
|
||||
dist);
|
||||
@@ -209,6 +212,7 @@ operator=(buffers_prefix_view const& other) ->
|
||||
other.end_);
|
||||
bs_ = other.bs_;
|
||||
size_ = other.size_;
|
||||
remain_ = other.remain_;
|
||||
end_ = std::next(
|
||||
boost::asio::buffer_sequence_begin(bs_),
|
||||
dist);
|
||||
|
||||
Reference in new issue
Block a user