Index: third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc |
index d2039403e9760492990c9356225c5573a652fb15..b80d413901ac132d0800084a0dc1f720a85d4662 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc |
+++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc |
@@ -79,10 +79,11 @@ 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()); |
const FieldDescriptor* key = KeyField(descriptor); |
@@ -123,8 +124,6 @@ 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)["default_entry"] = (*variables)["capitalized_name"] + |
"DefaultEntryHolder.defaultEntry"; |
@@ -142,7 +141,7 @@ ImmutableMapFieldLiteGenerator(const FieldDescriptor* descriptor, |
: descriptor_(descriptor), name_resolver_(context->GetNameResolver()) { |
SetMessageVariables(descriptor, messageBitIndex, builderBitIndex, |
context->GetFieldGeneratorInfo(descriptor), |
- name_resolver_, &variables_); |
+ context, &variables_); |
} |
ImmutableMapFieldLiteGenerator:: |
@@ -375,10 +374,10 @@ GenerateInitializationCode(io::Printer* printer) const { |
} |
void ImmutableMapFieldLiteGenerator:: |
-GenerateMergingCode(io::Printer* printer) const { |
+GenerateVisitCode(io::Printer* printer) const { |
printer->Print( |
variables_, |
- "internalGetMutable$capitalized_name$().mergeFrom(\n" |
+ "$name$_ = visitor.visitMap(internalGetMutable$capitalized_name$(),\n" |
" other.internalGet$capitalized_name$());\n"); |
} |
@@ -404,7 +403,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" |
" super.mergeLengthDelimitedField($number$, bytes);\n" |
"} else {\n" |
" $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n" |