summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-09-02 04:02:43 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-09-07 19:17:37 +0300
commitf9c1a40e21bff9739c9910436d59b25a69538cdf (patch)
treedb1cca4a0edb271d49b5f4fa500fd5c553e4cdb7
parent06e53199c2563105030bda4c72752b853da7edc8 (diff)
libcamera: base: utils: Use size_t for index in utils::enumerate()
The index generated by utils::enumerate() is an iteration counter, which should thus be positive. Use std::size_t instead of the difference_type of the container. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
-rw-r--r--include/libcamera/base/utils.h4
-rw-r--r--test/utils.cpp10
2 files changed, 7 insertions, 7 deletions
diff --git a/include/libcamera/base/utils.h b/include/libcamera/base/utils.h
index 52301254..2b761436 100644
--- a/include/libcamera/base/utils.h
+++ b/include/libcamera/base/utils.h
@@ -246,7 +246,7 @@ private:
public:
using difference_type = typename std::iterator_traits<Base>::difference_type;
- using value_type = std::pair<const difference_type, base_reference>;
+ using value_type = std::pair<const std::size_t, base_reference>;
using pointer = value_type *;
using reference = value_type &;
using iterator_category = std::input_iterator_tag;
@@ -275,7 +275,7 @@ public:
private:
Base current_;
- difference_type pos_;
+ std::size_t pos_;
};
template<typename Base>
diff --git a/test/utils.cpp b/test/utils.cpp
index d7f810e9..d65467b5 100644
--- a/test/utils.cpp
+++ b/test/utils.cpp
@@ -77,8 +77,8 @@ protected:
int testEnumerate()
{
- std::vector<int> integers{ 1, 2, 3, 4, 5 };
- int i = 0;
+ std::vector<unsigned int> integers{ 1, 2, 3, 4, 5 };
+ unsigned int i = 0;
for (auto [index, value] : utils::enumerate(integers)) {
if (index != i || value != i + 1) {
@@ -93,12 +93,12 @@ protected:
++i;
}
- if (integers != std::vector<int>{ 0, 1, 2, 3, 4 }) {
+ if (integers != std::vector<unsigned int>{ 0, 1, 2, 3, 4 }) {
cerr << "Failed to modify container in enumerated range loop" << endl;
return TestFail;
}
- Span<const int> span{ integers };
+ Span<const unsigned int> span{ integers };
i = 0;
for (auto [index, value] : utils::enumerate(span)) {
@@ -112,7 +112,7 @@ protected:
++i;
}
- const int array[] = { 0, 2, 4, 6, 8 };
+ const unsigned int array[] = { 0, 2, 4, 6, 8 };
i = 0;
for (auto [index, value] : utils::enumerate(array)) {