Index: third_party/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc |
index 49070ba0e1284d5c06890151001dadb804faa0e6..62f39302e80b4867c87500a89fc8d4787555cb39 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc |
+++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc |
@@ -59,28 +59,19 @@ ImmutableLazyMessageFieldLiteGenerator:: |
void ImmutableLazyMessageFieldLiteGenerator:: |
GenerateMembers(io::Printer* printer) const { |
printer->Print(variables_, |
- "private com.google.protobuf.LazyFieldLite $name$_;"); |
+ "private com.google.protobuf.LazyFieldLite $name$_ =\n" |
+ " new com.google.protobuf.LazyFieldLite();\n"); |
PrintExtraFieldInfo(variables_, printer); |
WriteFieldDocComment(printer, descriptor_); |
- if (SupportFieldPresence(descriptor_->file())) { |
- printer->Print(variables_, |
- "$deprecation$public boolean has$capitalized_name$() {\n" |
- " return $get_has_field_bit_message$;\n" |
- "}\n"); |
- } else { |
- printer->Print(variables_, |
- "$deprecation$public boolean has$capitalized_name$() {\n" |
- " return $name$_ != null;\n" |
- "}\n"); |
- } |
+ printer->Print(variables_, |
+ "$deprecation$public boolean has$capitalized_name$() {\n" |
+ " return $get_has_field_bit_message$;\n" |
+ "}\n"); |
WriteFieldDocComment(printer, descriptor_); |
printer->Print(variables_, |
"$deprecation$public $type$ get$capitalized_name$() {\n" |
- " if ($name$_ == null) {\n" |
- " return $type$.getDefaultInstance();\n" |
- " }\n" |
" return ($type$) $name$_.getValue($type$.getDefaultInstance());\n" |
"}\n"); |
@@ -91,11 +82,8 @@ GenerateMembers(io::Printer* printer) const { |
" if (value == null) {\n" |
" throw new NullPointerException();\n" |
" }\n" |
- " if ($name$_ == null) {\n" |
- " $name$_ = new com.google.protobuf.LazyFieldLite();\n" |
- " }\n" |
" $name$_.setValue(value);\n" |
- " $set_has_field_bit_message$\n" |
+ " $set_has_field_bit_message$;\n" |
"}\n"); |
// Field.Builder setField(Field.Builder builderForValue) |
@@ -103,36 +91,30 @@ GenerateMembers(io::Printer* printer) const { |
printer->Print(variables_, |
"private void set$capitalized_name$(\n" |
" $type$.Builder builderForValue) {\n" |
- " if ($name$_ == null) {\n" |
- " $name$_ = new com.google.protobuf.LazyFieldLite();\n" |
- " }\n" |
" $name$_.setValue(builderForValue.build());\n" |
- " $set_has_field_bit_message$\n" |
+ " $set_has_field_bit_message$;\n" |
"}\n"); |
// Field.Builder mergeField(Field value) |
WriteFieldDocComment(printer, descriptor_); |
printer->Print(variables_, |
"private void merge$capitalized_name$($type$ value) {\n" |
- " if (has$capitalized_name$() &&\n" |
+ " if ($get_has_field_bit_message$ &&\n" |
" !$name$_.containsDefaultInstance()) {\n" |
" $name$_.setValue(\n" |
" $type$.newBuilder(\n" |
" get$capitalized_name$()).mergeFrom(value).buildPartial());\n" |
" } else {\n" |
- " if ($name$_ == null) {\n" |
- " $name$_ = new com.google.protobuf.LazyFieldLite();\n" |
- " }\n" |
" $name$_.setValue(value);\n" |
- " $set_has_field_bit_message$\n" |
" }\n" |
+ " $set_has_field_bit_message$;\n" |
"}\n"); |
// Field.Builder clearField() |
WriteFieldDocComment(printer, descriptor_); |
printer->Print(variables_, |
"private void clear$capitalized_name$() {\n" |
- " $name$_ = null;\n" |
+ " $name$_.clear();\n" |
" $clear_has_field_bit_message$;\n" |
"}\n"); |
} |
@@ -195,30 +177,31 @@ GenerateBuilderMembers(io::Printer* printer) const { |
void ImmutableLazyMessageFieldLiteGenerator:: |
-GenerateInitializationCode(io::Printer* printer) const {} |
+GenerateInitializationCode(io::Printer* printer) const { |
+ printer->Print(variables_, "$name$_.clear();\n"); |
+} |
void ImmutableLazyMessageFieldLiteGenerator:: |
GenerateVisitCode(io::Printer* printer) const { |
printer->Print(variables_, |
- "$name$_ = visitor.visitLazyMessage($name$_, other.$name$_);\n"); |
+ "$name$_ = visitor.visitLazyMessage(\n" |
+ " has$capitalized_name$(), $name$_,\n" |
+ " other.has$capitalized_name$(), other.$name$_);\n"); |
} |
void ImmutableLazyMessageFieldLiteGenerator:: |
GenerateParsingCode(io::Printer* printer) const { |
printer->Print(variables_, |
- "if ($name$_ == null) {\n" |
- " $name$_ = new com.google.protobuf.LazyFieldLite();\n" |
- "}\n" |
"$name$_.mergeFrom(input, extensionRegistry);\n"); |
printer->Print(variables_, |
- "$set_has_field_bit_message$\n"); |
+ "$set_has_field_bit_message$;\n"); |
} |
void ImmutableLazyMessageFieldLiteGenerator:: |
GenerateSerializationCode(io::Printer* printer) const { |
// Do not de-serialize lazy fields. |
printer->Print(variables_, |
- "if (has$capitalized_name$()) {\n" |
+ "if ($get_has_field_bit_message$) {\n" |
" output.writeBytes($number$, $name$_.toByteString());\n" |
"}\n"); |
} |
@@ -226,7 +209,7 @@ GenerateSerializationCode(io::Printer* printer) const { |
void ImmutableLazyMessageFieldLiteGenerator:: |
GenerateSerializedSizeCode(io::Printer* printer) const { |
printer->Print(variables_, |
- "if (has$capitalized_name$()) {\n" |
+ "if ($get_has_field_bit_message$) {\n" |
" size += com.google.protobuf.CodedOutputStream\n" |
" .computeLazyFieldSize($number$, $name$_);\n" |
"}\n"); |
@@ -446,7 +429,8 @@ GenerateMembers(io::Printer* printer) const { |
" for (com.google.protobuf.LazyFieldLite lf : $name$_) {\n" |
" list.add(($type$) lf.getValue($type$.getDefaultInstance()));\n" |
" }\n" |
- " return java.util.Collections.unmodifiableList(list);\n" |
+ // TODO(dweis): Make this list immutable? |
+ " return list;\n" |
"}\n"); |
WriteFieldDocComment(printer, descriptor_); |
printer->Print(variables_, |