| Index: third_party/protobuf/src/google/protobuf/reflection.h
 | 
| diff --git a/third_party/protobuf/src/google/protobuf/reflection.h b/third_party/protobuf/src/google/protobuf/reflection.h
 | 
| index d5a6653cb9f82cf5ea18c0b92699e5e4710b56b5..671aafdc4e276e6e30752fda3c6dded6e6f0bbfd 100755
 | 
| --- a/third_party/protobuf/src/google/protobuf/reflection.h
 | 
| +++ b/third_party/protobuf/src/google/protobuf/reflection.h
 | 
| @@ -80,12 +80,6 @@ class RepeatedFieldRef<
 | 
|  
 | 
|    typedef IteratorType iterator;
 | 
|    typedef IteratorType const_iterator;
 | 
| -  typedef T value_type;
 | 
| -  typedef T& reference;
 | 
| -  typedef const T& const_reference;
 | 
| -  typedef int size_type;
 | 
| -  typedef ptrdiff_t difference_type;
 | 
| -
 | 
|    iterator begin() const {
 | 
|      return iterator(data_, accessor_, true);
 | 
|    }
 | 
| @@ -208,18 +202,11 @@ class RepeatedFieldRef<
 | 
|  
 | 
|    typedef IteratorType iterator;
 | 
|    typedef IteratorType const_iterator;
 | 
| -  typedef T value_type;
 | 
| -  typedef T& reference;
 | 
| -  typedef const T& const_reference;
 | 
| -  typedef int size_type;
 | 
| -  typedef ptrdiff_t difference_type;
 | 
| -
 | 
|    iterator begin() const {
 | 
|      return iterator(data_, accessor_, true, NewMessage());
 | 
|    }
 | 
|    iterator end() const {
 | 
| -    // The end iterator must not be dereferenced, no need for scratch space.
 | 
| -    return iterator(data_, accessor_, false, NULL);
 | 
| +    return iterator(data_, accessor_, false, NewMessage());
 | 
|    }
 | 
|  
 | 
|   private:
 | 
| @@ -369,7 +356,7 @@ class LIBPROTOBUF_EXPORT RepeatedFieldAccessor {
 | 
|    virtual void Swap(Field* data, const RepeatedFieldAccessor* other_mutator,
 | 
|                      Field* other_data) const = 0;
 | 
|  
 | 
| -  // Create an iterator that points at the beginning of the repeated field.
 | 
| +  // Create an iterator that points at the begining of the repeated field.
 | 
|    virtual Iterator* BeginIterator(const Field* data) const = 0;
 | 
|    // Create an iterator that points at the end of the repeated field.
 | 
|    virtual Iterator* EndIterator(const Field* data) const = 0;
 | 
| @@ -441,13 +428,13 @@ class RepeatedFieldRefIterator
 | 
|   public:
 | 
|    // Constructor for non-message fields.
 | 
|    RepeatedFieldRefIterator(const void* data,
 | 
| -                           const RepeatedFieldAccessor* accessor, bool begin)
 | 
| -      : data_(data),
 | 
| -        accessor_(accessor),
 | 
| -        iterator_(begin ? accessor->BeginIterator(data)
 | 
| -                        : accessor->EndIterator(data)),
 | 
| -        // The end iterator must not be dereferenced, no need for scratch space.
 | 
| -        scratch_space_(begin ? new AccessorValueType : NULL) {}
 | 
| +                           const RepeatedFieldAccessor* accessor,
 | 
| +                           bool begin)
 | 
| +      : data_(data), accessor_(accessor),
 | 
| +        iterator_(begin ? accessor->BeginIterator(data) :
 | 
| +                          accessor->EndIterator(data)),
 | 
| +        scratch_space_(new AccessorValueType) {
 | 
| +  }
 | 
|    // Constructor for message fields.
 | 
|    RepeatedFieldRefIterator(const void* data,
 | 
|                             const RepeatedFieldAccessor* accessor,
 | 
| 
 |