Index: third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc |
index 3e035c89b9123e89d1c9aa235df5ecc42937924f..2a551ca47eb8300a7b8ea8db5e1212441de50369 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc |
+++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc |
@@ -79,9 +79,10 @@ void SetMessageVariables(const FieldDescriptor* descriptor, |
int messageBitIndex, |
int builderBitIndex, |
const FieldGeneratorInfo* info, |
- ClassNameResolver* name_resolver, |
+ Context* context, |
map<string, string>* variables) { |
SetCommonFieldVariables(descriptor, info, variables); |
+ ClassNameResolver* name_resolver = context->GetNameResolver(); |
(*variables)["type"] = |
name_resolver->GetImmutableClassName(descriptor->message_type()); |
@@ -123,8 +124,7 @@ void SetMessageVariables(const FieldDescriptor* descriptor, |
// by the proto compiler |
(*variables)["deprecation"] = descriptor->options().deprecated() |
? "@java.lang.Deprecated " : ""; |
- (*variables)["on_changed"] = |
- HasDescriptorMethods(descriptor->containing_type()) ? "onChanged();" : ""; |
+ (*variables)["on_changed"] = "onChanged();"; |
// For repeated fields, one bit is used for whether the array is immutable |
// in the parsing constructor. |
@@ -135,18 +135,12 @@ void SetMessageVariables(const FieldDescriptor* descriptor, |
(*variables)["default_entry"] = (*variables)["capitalized_name"] + |
"DefaultEntryHolder.defaultEntry"; |
- if (HasDescriptorMethods(descriptor->file())) { |
- (*variables)["lite"] = ""; |
- (*variables)["map_field_parameter"] = (*variables)["default_entry"]; |
- (*variables)["descriptor"] = |
- name_resolver->GetImmutableClassName(descriptor->file()) + |
- ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) + |
- "_descriptor, "; |
- } else { |
- (*variables)["lite"] = "Lite"; |
- (*variables)["map_field_parameter"] = ""; |
- (*variables)["descriptor"] = ""; |
- } |
+ (*variables)["lite"] = ""; |
+ (*variables)["map_field_parameter"] = (*variables)["default_entry"]; |
+ (*variables)["descriptor"] = |
+ name_resolver->GetImmutableClassName(descriptor->file()) + |
+ ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) + |
+ "_descriptor, "; |
} |
} // namespace |
@@ -159,7 +153,7 @@ ImmutableMapFieldGenerator(const FieldDescriptor* descriptor, |
: descriptor_(descriptor), name_resolver_(context->GetNameResolver()) { |
SetMessageVariables(descriptor, messageBitIndex, builderBitIndex, |
context->GetFieldGeneratorInfo(descriptor), |
- name_resolver_, &variables_); |
+ context, &variables_); |
} |
ImmutableMapFieldGenerator:: |
@@ -221,7 +215,7 @@ GenerateMembers(io::Printer* printer) const { |
" if ($name$_ == null) {\n" |
" return com.google.protobuf.MapField$lite$.emptyMapField(\n" |
" $map_field_parameter$);\n" |
- " }\n" |
+ " }\n" |
" return $name$_;\n" |
"}\n"); |
if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { |
@@ -276,7 +270,7 @@ GenerateBuilderMembers(io::Printer* printer) const { |
" if ($name$_ == null) {\n" |
" return com.google.protobuf.MapField$lite$.emptyMapField(\n" |
" $map_field_parameter$);\n" |
- " }\n" |
+ " }\n" |
" return $name$_;\n" |
"}\n" |
"private com.google.protobuf.MapField$lite$<$type_parameters$>\n" |
@@ -424,7 +418,7 @@ GenerateParsingCode(io::Printer* printer) const { |
"$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n"); |
printer->Print( |
variables_, |
- "if ($value_enum_type$.valueOf($name$.getValue()) == null) {\n" |
+ "if ($value_enum_type$.forNumber($name$.getValue()) == null) {\n" |
" unknownFields.mergeLengthDelimitedField($number$, bytes);\n" |
"} else {\n" |
" $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n" |