diff options
Diffstat (limited to 'src/google/protobuf/message.cc')
-rw-r--r-- | src/google/protobuf/message.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/google/protobuf/message.cc b/src/google/protobuf/message.cc index aab00fdf..afe95461 100644 --- a/src/google/protobuf/message.cc +++ b/src/google/protobuf/message.cc @@ -430,7 +430,11 @@ const internal::RepeatedFieldAccessor* Reflection::RepeatedFieldAccessor( } break; case FieldDescriptor::CPPTYPE_MESSAGE: - return internal::Singleton<internal::RepeatedPtrFieldMessageAccessor>::get(); + if (field->is_map()) { + return internal::Singleton<internal::MapFieldAccessor>::get(); + } else { + return internal::Singleton<internal::RepeatedPtrFieldMessageAccessor>::get(); + } } GOOGLE_LOG(FATAL) << "Should not reach here."; return NULL; |