diff options
author | Jisi Liu <jisi.liu@gmail.com> | 2015-02-05 14:52:17 -0800 |
---|---|---|
committer | Jisi Liu <jisi.liu@gmail.com> | 2015-02-05 14:52:17 -0800 |
commit | bd3573cb096cb8f0ec4bf29f0e11744a06a9e5a6 (patch) | |
tree | 8114227aef1743eb20cdf6022fb1cebb9992c9d6 /src | |
parent | ca35a8030339d85cb4efb928b1aae8e38584d214 (diff) | |
download | protobuf-bd3573cb096cb8f0ec4bf29f0e11744a06a9e5a6.tar.gz protobuf-bd3573cb096cb8f0ec4bf29f0e11744a06a9e5a6.tar.bz2 protobuf-bd3573cb096cb8f0ec4bf29f0e11744a06a9e5a6.zip |
Fix the behavior when merging conflicting keys, the new value always
override the existing one even for message types.
Diffstat (limited to 'src')
-rw-r--r-- | src/google/protobuf/compiler/javanano/javanano_map_field.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_map_field.cc b/src/google/protobuf/compiler/javanano/javanano_map_field.cc index 7b14db5d..082573dd 100644 --- a/src/google/protobuf/compiler/javanano/javanano_map_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_map_field.cc @@ -102,9 +102,9 @@ void SetMapVariables(const Params& params, (*variables)["value_tag"] = SimpleItoa(internal::WireFormat::MakeTag(value)); (*variables)["type_parameters"] = (*variables)["boxed_key_type"] + ", " + (*variables)["boxed_value_type"]; - (*variables)["value_class"] = + (*variables)["value_default"] = value->type() == FieldDescriptor::TYPE_MESSAGE - ? (*variables)["value_type"] + ".class" + ? "new " + (*variables)["value_type"] + "()" : "null"; } } // namespace @@ -137,7 +137,7 @@ GenerateMergingCode(io::Printer* printer) const { " input, this.$name$,\n" " com.google.protobuf.nano.InternalNano.$key_desc_type$,\n" " com.google.protobuf.nano.InternalNano.$value_desc_type$,\n" - " $value_class$,\n" + " $value_default$,\n" " $key_tag$, $value_tag$);\n" "\n"); } |