aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/javanano/javanano_map_field.cc
diff options
context:
space:
mode:
authorGravatar Jisi Liu <jisi.liu@gmail.com>2015-02-05 14:52:17 -0800
committerGravatar Jisi Liu <jisi.liu@gmail.com>2015-02-05 14:52:17 -0800
commitbd3573cb096cb8f0ec4bf29f0e11744a06a9e5a6 (patch)
tree8114227aef1743eb20cdf6022fb1cebb9992c9d6 /src/google/protobuf/compiler/javanano/javanano_map_field.cc
parentca35a8030339d85cb4efb928b1aae8e38584d214 (diff)
Fix the behavior when merging conflicting keys, the new value always
override the existing one even for message types.
Diffstat (limited to 'src/google/protobuf/compiler/javanano/javanano_map_field.cc')
-rw-r--r--src/google/protobuf/compiler/javanano/javanano_map_field.cc6
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");
}