Message ID | 20210413002731.25653-3-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | 1ad214dd1b353e79923ec6d6dfd4246759e99407 |
Headers | show |
Series |
|
Related | show |
Hi Laurent, On 13/04/2021 01:27, Laurent Pinchart wrote: > std::reverse_iterator<iterator> is constructed from an instance of > iterator, and automatically subtract 1 when dereferencing. rbegin() and s/subtract/subtracts/ > rend() should thus be constructed from end() and begin() respectively. > I guess this is why the previous patch talks about testing rend() and crend(). But this one sounds ok to me. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > include/libcamera/span.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/include/libcamera/span.h b/include/libcamera/span.h > index 91e9f974cc58..7a35806b1710 100644 > --- a/include/libcamera/span.h > +++ b/include/libcamera/span.h > @@ -194,9 +194,9 @@ public: > constexpr const_iterator cbegin() const { return begin(); } > constexpr iterator end() const { return data() + size(); } > constexpr const_iterator cend() const { return end(); } > - constexpr reverse_iterator rbegin() const { return reverse_iterator(data() + size() - 1); } > + constexpr reverse_iterator rbegin() const { return reverse_iterator(end()); } > constexpr const_reverse_iterator crbegin() const { return rbegin(); } > - constexpr reverse_iterator rend() const { return reverse_iterator(data() - 1); } > + constexpr reverse_iterator rend() const { return reverse_iterator(begin()); } > constexpr const_reverse_iterator crend() const { return rend(); } > > constexpr reference front() const { return *data(); } > @@ -360,9 +360,9 @@ public: > constexpr const_iterator cbegin() const { return begin(); } > constexpr iterator end() const { return data() + size(); } > constexpr const_iterator cend() const { return end(); } > - constexpr reverse_iterator rbegin() const { return reverse_iterator(data() + size() - 1); } > + constexpr reverse_iterator rbegin() const { return reverse_iterator(end()); } > constexpr const_reverse_iterator crbegin() const { return rbegin(); } > - constexpr reverse_iterator rend() const { return reverse_iterator(data() - 1); } > + constexpr reverse_iterator rend() const { return reverse_iterator(begin()); } > constexpr const_reverse_iterator crend() const { return rend(); } > > constexpr reference front() const { return *data(); } >
diff --git a/include/libcamera/span.h b/include/libcamera/span.h index 91e9f974cc58..7a35806b1710 100644 --- a/include/libcamera/span.h +++ b/include/libcamera/span.h @@ -194,9 +194,9 @@ public: constexpr const_iterator cbegin() const { return begin(); } constexpr iterator end() const { return data() + size(); } constexpr const_iterator cend() const { return end(); } - constexpr reverse_iterator rbegin() const { return reverse_iterator(data() + size() - 1); } + constexpr reverse_iterator rbegin() const { return reverse_iterator(end()); } constexpr const_reverse_iterator crbegin() const { return rbegin(); } - constexpr reverse_iterator rend() const { return reverse_iterator(data() - 1); } + constexpr reverse_iterator rend() const { return reverse_iterator(begin()); } constexpr const_reverse_iterator crend() const { return rend(); } constexpr reference front() const { return *data(); } @@ -360,9 +360,9 @@ public: constexpr const_iterator cbegin() const { return begin(); } constexpr iterator end() const { return data() + size(); } constexpr const_iterator cend() const { return end(); } - constexpr reverse_iterator rbegin() const { return reverse_iterator(data() + size() - 1); } + constexpr reverse_iterator rbegin() const { return reverse_iterator(end()); } constexpr const_reverse_iterator crbegin() const { return rbegin(); } - constexpr reverse_iterator rend() const { return reverse_iterator(data() - 1); } + constexpr reverse_iterator rend() const { return reverse_iterator(begin()); } constexpr const_reverse_iterator crend() const { return rend(); } constexpr reference front() const { return *data(); }
std::reverse_iterator<iterator> is constructed from an instance of iterator, and automatically subtract 1 when dereferencing. rbegin() and rend() should thus be constructed from end() and begin() respectively. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- include/libcamera/span.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)