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:
Laurent Pinchart
2021-04-13 02:40:40 +03:00
parent c244d07286
commit 1ad214dd1b

View File

@@ -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(); }