Fix missing return in non-void TransformArrayRef::end
TransformArrayRef::end() is not void but it does not return any value.
This CL fixes this.
Test: transform_array_ref_test
Test: run-gtests.sh
Change-Id: I0bed31cae9fc3eb83f9a254393f6700471793d2a
diff --git a/libartbase/base/transform_array_ref.h b/libartbase/base/transform_array_ref.h
index ef29573..2f56e9b 100644
--- a/libartbase/base/transform_array_ref.h
+++ b/libartbase/base/transform_array_ref.h
@@ -93,7 +93,7 @@
const_iterator begin() const { return MakeIterator(base().cbegin()); }
const_iterator cbegin() const { return MakeIterator(base().cbegin()); }
iterator end() { return MakeIterator(base().end()); }
- const_iterator end() const { MakeIterator(base().cend()); }
+ const_iterator end() const { return MakeIterator(base().cend()); }
const_iterator cend() const { return MakeIterator(base().cend()); }
reverse_iterator rbegin() { return reverse_iterator(end()); }
const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
diff --git a/libartbase/base/transform_array_ref_test.cc b/libartbase/base/transform_array_ref_test.cc
index fc73d56..896209b 100644
--- a/libartbase/base/transform_array_ref_test.cc
+++ b/libartbase/base/transform_array_ref_test.cc
@@ -174,18 +174,34 @@
ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
output.clear();
+ std::copy(std::begin(ctaref), std::end(ctaref), std::back_inserter(output));
+ ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
+ output.clear();
+
std::copy(ctaref.cbegin(), ctaref.cend(), std::back_inserter(output));
ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
output.clear();
+ std::copy(std::cbegin(ctaref), std::cend(ctaref), std::back_inserter(output));
+ ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
+ output.clear();
+
std::copy(ctaref.rbegin(), ctaref.rend(), std::back_inserter(output));
ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
output.clear();
+ std::copy(std::rbegin(ctaref), std::rend(ctaref), std::back_inserter(output));
+ ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
+ output.clear();
+
std::copy(ctaref.crbegin(), ctaref.crend(), std::back_inserter(output));
ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
output.clear();
+ std::copy(std::crbegin(ctaref), std::crend(ctaref), std::back_inserter(output));
+ ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
+ output.clear();
+
ASSERT_EQ(cinput.size(), ctaref.size());
ASSERT_EQ(cinput.empty(), ctaref.empty());
ASSERT_EQ(cinput.front().value, ctaref.front());