| Index: third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc b/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc
|
| index bf272596cb2409e824530e2c6c13dba5af82dbe8..4c6e1b55626ada38dcbb1d0ab98a2c6e90b0d576 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc
|
| @@ -246,6 +246,22 @@ void MessageGenerator::DetermineForwardDeclarations(set<string>* fwd_decls) {
|
| }
|
| }
|
|
|
| +bool MessageGenerator::IncludesOneOfDefinition() const {
|
| + if (!oneof_generators_.empty()) {
|
| + return true;
|
| + }
|
| +
|
| + for (vector<MessageGenerator*>::const_iterator iter =
|
| + nested_message_generators_.begin();
|
| + iter != nested_message_generators_.end(); ++iter) {
|
| + if ((*iter)->IncludesOneOfDefinition()) {
|
| + return true;
|
| + }
|
| + }
|
| +
|
| + return false;
|
| +}
|
| +
|
| void MessageGenerator::GenerateEnumHeader(io::Printer* printer) {
|
| for (vector<EnumGenerator*>::iterator iter = enum_generators_.begin();
|
| iter != enum_generators_.end(); ++iter) {
|
| @@ -315,7 +331,7 @@ void MessageGenerator::GenerateMessageHeader(io::Printer* printer) {
|
| string message_comments;
|
| SourceLocation location;
|
| if (descriptor_->GetSourceLocation(&location)) {
|
| - message_comments = BuildCommentsString(location);
|
| + message_comments = BuildCommentsString(location, false);
|
| } else {
|
| message_comments = "";
|
| }
|
| @@ -505,7 +521,8 @@ void MessageGenerator::GenerateSource(io::Printer* printer) {
|
| if (descriptor_->options().message_set_wire_format()) {
|
| init_flags.push_back("GPBDescriptorInitializationFlag_WireFormat");
|
| }
|
| - vars["init_flags"] = BuildFlagsString(init_flags);
|
| + vars["init_flags"] = BuildFlagsString(FLAGTYPE_DESCRIPTOR_INITIALIZATION,
|
| + init_flags);
|
|
|
| printer->Print(
|
| vars,
|
| @@ -563,6 +580,19 @@ void MessageGenerator::GenerateSource(io::Printer* printer) {
|
| " [localDescriptor setupExtensionRanges:ranges\n"
|
| " count:(uint32_t)(sizeof(ranges) / sizeof(GPBExtensionRange))];\n");
|
| }
|
| + if (descriptor_->containing_type() != NULL) {
|
| + string parent_class_name = ClassName(descriptor_->containing_type());
|
| + printer->Print(
|
| + " [localDescriptor setupContainingMessageClassName:GPBStringifySymbol($parent_name$)];\n",
|
| + "parent_name", parent_class_name);
|
| + }
|
| + string suffix_added;
|
| + ClassName(descriptor_, &suffix_added);
|
| + if (suffix_added.size() > 0) {
|
| + printer->Print(
|
| + " [localDescriptor setupMessageClassNameSuffix:@\"$suffix$\"];\n",
|
| + "suffix", suffix_added);
|
| + }
|
| printer->Print(
|
| " NSAssert(descriptor == nil, @\"Startup recursed!\");\n"
|
| " descriptor = localDescriptor;\n"
|
|
|