mirror of
https://github.com/boostorg/beast.git
synced 2025-07-31 21:34:46 +02:00
Fix buffers_prefix iterator decrement
This commit is contained in:
@@ -3,6 +3,7 @@ Version 173:
|
|||||||
* Remove Autobahn testsuite doc note
|
* Remove Autobahn testsuite doc note
|
||||||
* Fix buffers_adapter iterator value type
|
* Fix buffers_adapter iterator value type
|
||||||
* Fix buffers_adapter max_size
|
* Fix buffers_adapter max_size
|
||||||
|
* Fix buffers_prefix iterator decrement
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -39,6 +39,7 @@ class buffers_prefix_view
|
|||||||
|
|
||||||
BufferSequence bs_;
|
BufferSequence bs_;
|
||||||
std::size_t size_;
|
std::size_t size_;
|
||||||
|
std::size_t remain_;
|
||||||
iter_type end_;
|
iter_type end_;
|
||||||
|
|
||||||
template<class Deduced>
|
template<class Deduced>
|
||||||
@@ -46,6 +47,7 @@ class buffers_prefix_view
|
|||||||
Deduced&& other, std::size_t dist)
|
Deduced&& other, std::size_t dist)
|
||||||
: bs_(std::forward<Deduced>(other).bs_)
|
: bs_(std::forward<Deduced>(other).bs_)
|
||||||
, size_(other.size_)
|
, size_(other.size_)
|
||||||
|
, remain_(other.remain_)
|
||||||
, end_(std::next(bs_.begin(), dist))
|
, end_(std::next(bs_.begin(), dist))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@@ -125,7 +125,7 @@ private:
|
|||||||
const_iterator(buffers_prefix_view const& b,
|
const_iterator(buffers_prefix_view const& b,
|
||||||
std::true_type)
|
std::true_type)
|
||||||
: b_(&b)
|
: b_(&b)
|
||||||
, remain_(0)
|
, remain_(b.remain_)
|
||||||
, it_(b_->end_)
|
, it_(b_->end_)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -145,6 +145,7 @@ buffers_prefix_view<BufferSequence>::
|
|||||||
setup(std::size_t size)
|
setup(std::size_t size)
|
||||||
{
|
{
|
||||||
size_ = 0;
|
size_ = 0;
|
||||||
|
remain_ = 0;
|
||||||
end_ = boost::asio::buffer_sequence_begin(bs_);
|
end_ = boost::asio::buffer_sequence_begin(bs_);
|
||||||
auto const last = bs_.end();
|
auto const last = bs_.end();
|
||||||
while(end_ != last)
|
while(end_ != last)
|
||||||
@@ -154,6 +155,7 @@ setup(std::size_t size)
|
|||||||
if(len >= size)
|
if(len >= size)
|
||||||
{
|
{
|
||||||
size_ += size;
|
size_ += size;
|
||||||
|
remain_ = size - len;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
size -= len;
|
size -= len;
|
||||||
@@ -192,6 +194,7 @@ operator=(buffers_prefix_view&& other) ->
|
|||||||
other.end_);
|
other.end_);
|
||||||
bs_ = std::move(other.bs_);
|
bs_ = std::move(other.bs_);
|
||||||
size_ = other.size_;
|
size_ = other.size_;
|
||||||
|
remain_ = other.remain_;
|
||||||
end_ = std::next(
|
end_ = std::next(
|
||||||
boost::asio::buffer_sequence_begin(bs_),
|
boost::asio::buffer_sequence_begin(bs_),
|
||||||
dist);
|
dist);
|
||||||
@@ -209,6 +212,7 @@ operator=(buffers_prefix_view const& other) ->
|
|||||||
other.end_);
|
other.end_);
|
||||||
bs_ = other.bs_;
|
bs_ = other.bs_;
|
||||||
size_ = other.size_;
|
size_ = other.size_;
|
||||||
|
remain_ = other.remain_;
|
||||||
end_ = std::next(
|
end_ = std::next(
|
||||||
boost::asio::buffer_sequence_begin(bs_),
|
boost::asio::buffer_sequence_begin(bs_),
|
||||||
dist);
|
dist);
|
||||||
|
Reference in New Issue
Block a user