| Index: mojo/public/cpp/bindings/lib/array_serialization.h
|
| diff --git a/mojo/public/cpp/bindings/lib/array_serialization.h b/mojo/public/cpp/bindings/lib/array_serialization.h
|
| index 5db27a5502a5a238ec1a6765d8f2854248a36e36..a5a6c52344d178665589b78de751f39b0c1cd1bc 100644
|
| --- a/mojo/public/cpp/bindings/lib/array_serialization.h
|
| +++ b/mojo/public/cpp/bindings/lib/array_serialization.h
|
| @@ -34,6 +34,7 @@ class ArrayIterator {};
|
| template <typename Traits, typename MaybeConstUserType>
|
| class ArrayIterator<Traits, MaybeConstUserType, true> {
|
| public:
|
| + using UserType = typename std::remove_const<MaybeConstUserType>::type;
|
| using IteratorType = decltype(
|
| CallGetBeginIfExists<Traits>(std::declval<MaybeConstUserType&>()));
|
|
|
| @@ -44,10 +45,11 @@ class ArrayIterator<Traits, MaybeConstUserType, true> {
|
| size_t GetSize() const { return Traits::GetSize(input_); }
|
|
|
| using GetNextResult =
|
| - decltype(Traits::GetValue(std::declval<IteratorType&>()));
|
| + decltype(Traits::GetValue(std::declval<MaybeConstUserType&>(),
|
| + std::declval<IteratorType&>()));
|
| GetNextResult GetNext() {
|
| - auto& value = Traits::GetValue(iter_);
|
| - Traits::AdvanceIterator(iter_);
|
| + auto& value = Traits::GetValue(input_, iter_);
|
| + Traits::AdvanceIterator(input_, iter_);
|
| return value;
|
| }
|
|
|
|
|