diff --git a/src/google/protobuf/descriptor.cc b/src/google/protobuf/descriptor.cc index 09c5d34f0a..36e05b49f3 100644 --- a/src/google/protobuf/descriptor.cc +++ b/src/google/protobuf/descriptor.cc @@ -6311,9 +6311,12 @@ void DescriptorBuilder::BuildEnum(const EnumDescriptorProto& proto, } // Copy options. - result->options_ = - AllocateOptions(proto, result, EnumDescriptorProto::kOptionsFieldNumber, - "google.protobuf.EnumOptions", alloc); + { + EnumOptions* options = + AllocateOptions(proto, result, EnumDescriptorProto::kOptionsFieldNumber, + "google.protobuf.EnumOptions", alloc); + result->options_ = options; + } AddSymbol(result->full_name(), parent, result->name(), proto, Symbol(result)); @@ -6389,9 +6392,12 @@ void DescriptorBuilder::BuildEnumValue(const EnumValueDescriptorProto& proto, ValidateSymbolName(proto.name(), result->full_name(), proto); // Copy options. - result->options_ = AllocateOptions( - proto, result, EnumValueDescriptorProto::kOptionsFieldNumber, - "google.protobuf.EnumValueOptions", alloc); + { + EnumValueOptions* options = AllocateOptions( + proto, result, EnumValueDescriptorProto::kOptionsFieldNumber, + "google.protobuf.EnumValueOptions", alloc); + result->options_ = options; + } // Again, enum values are weird because we makes them appear as siblings // of the enum type instead of children of it. So, we use diff --git a/src/google/protobuf/descriptor.h b/src/google/protobuf/descriptor.h index 034db6dce8..3a7d44ae3f 100644 --- a/src/google/protobuf/descriptor.h +++ b/src/google/protobuf/descriptor.h @@ -1184,6 +1184,7 @@ class PROTOBUF_EXPORT EnumDescriptor : private internal::SymbolBase { // extensions of that message. const EnumOptions& options() const; + // See Descriptor::CopyTo(). void CopyTo(EnumDescriptorProto* proto) const; @@ -1368,6 +1369,7 @@ class PROTOBUF_EXPORT EnumValueDescriptor : private internal::SymbolBaseN<0>, // available extensions of that message. const EnumValueOptions& options() const; + // See Descriptor::CopyTo(). void CopyTo(EnumValueDescriptorProto* proto) const;