libcamera: span: Fix reverse iterators
std::reverse_iterator<iterator> is constructed from an instance of iterator, and automatically subtracts 1 when dereferencing. rbegin() and rend() should thus be constructed from end() and begin() respectively. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
@@ -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(); }
|
||||
|
||||
Reference in New Issue
Block a user