Skip to content

Commit f60dc49

Browse files
internal changes
PiperOrigin-RevId: 823611454
1 parent fd3f5f3 commit f60dc49

File tree

2 files changed

+43
-44
lines changed

2 files changed

+43
-44
lines changed

src/google/protobuf/compiler/java/field_common.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ void SetCommonOneofVariables(
101101
absl::StrCat(info->name, "Case_ = 0");
102102
(*variables)["has_oneof_case_message"] =
103103
absl::StrCat(info->name, "Case_ == ", descriptor->number());
104+
(*variables)["negated_has_oneof_case_message"] =
105+
absl::StrCat(info->name, "Case_ != ", descriptor->number());
104106
}
105107

106108
void PrintExtraFieldInfo(

src/google/protobuf/compiler/java/full/string_field.cc

Lines changed: 41 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,9 @@ void ImmutableStringFieldGenerator::GenerateMembers(
217217
" java.lang.String s = bs.toStringUtf8();\n");
218218
printer->Annotate("{", "}", descriptor_);
219219
if (CheckUtf8(descriptor_)) {
220+
220221
printer->Print(variables_, " $name$_ = s;\n");
222+
221223
} else {
222224
printer->Print(variables_,
223225
" if (bs.isValidUtf8()) {\n"
@@ -408,7 +410,8 @@ void ImmutableStringFieldGenerator::GenerateBuilderParsingCode(
408410
io::Printer* printer) const {
409411
if (CheckUtf8(descriptor_)) {
410412
printer->Print(variables_,
411-
"$name$_ = input.readStringRequireUtf8();\n"
413+
"$name$_ = "
414+
"input.readStringRequireUtf8();\n"
412415
"$set_has_field_bit_builder$\n");
413416
} else {
414417
printer->Print(variables_,
@@ -483,10 +486,10 @@ void ImmutableStringOneofFieldGenerator::GenerateMembers(
483486
printer->Print(
484487
variables_,
485488
"$deprecation$public java.lang.String ${$get$capitalized_name$$}$() {\n"
486-
" java.lang.Object ref $default_init$;\n"
487-
" if ($has_oneof_case_message$) {\n"
488-
" ref = $oneof_name$_;\n"
489+
" if ($negated_has_oneof_case_message$) {\n"
490+
" return $default$;\n"
489491
" }\n"
492+
" java.lang.Object ref = $oneof_name$_;\n"
490493
" if (ref instanceof java.lang.String) {\n"
491494
" return (java.lang.String) ref;\n"
492495
" } else {\n"
@@ -495,13 +498,10 @@ void ImmutableStringOneofFieldGenerator::GenerateMembers(
495498
" java.lang.String s = bs.toStringUtf8();\n");
496499
printer->Annotate("{", "}", descriptor_);
497500
if (CheckUtf8(descriptor_)) {
498-
printer->Print(variables_,
499-
" if ($has_oneof_case_message$) {\n"
500-
" $oneof_name$_ = s;\n"
501-
" }\n");
501+
printer->Print(variables_, " $oneof_name$_ = s;\n");
502502
} else {
503503
printer->Print(variables_,
504-
" if (bs.isValidUtf8() && ($has_oneof_case_message$)) {\n"
504+
" if (bs.isValidUtf8()) {\n"
505505
" $oneof_name$_ = s;\n"
506506
" }\n");
507507
}
@@ -512,25 +512,24 @@ void ImmutableStringOneofFieldGenerator::GenerateMembers(
512512
WriteFieldStringBytesAccessorDocComment(printer, descriptor_, GETTER,
513513
context_->options());
514514

515-
printer->Print(variables_,
516-
"$deprecation$public com.google.protobuf.ByteString\n"
517-
" ${$get$capitalized_name$Bytes$}$() {\n"
518-
" java.lang.Object ref $default_init$;\n"
519-
" if ($has_oneof_case_message$) {\n"
520-
" ref = $oneof_name$_;\n"
521-
" }\n"
522-
" if (ref instanceof java.lang.String) {\n"
523-
" com.google.protobuf.ByteString b = \n"
524-
" com.google.protobuf.ByteString.copyFromUtf8(\n"
525-
" (java.lang.String) ref);\n"
526-
" if ($has_oneof_case_message$) {\n"
527-
" $oneof_name$_ = b;\n"
528-
" }\n"
529-
" return b;\n"
530-
" } else {\n"
531-
" return (com.google.protobuf.ByteString) ref;\n"
532-
" }\n"
533-
"}\n");
515+
printer->Print(
516+
variables_,
517+
"$deprecation$public com.google.protobuf.ByteString\n"
518+
" ${$get$capitalized_name$Bytes$}$() {\n"
519+
" if ($negated_has_oneof_case_message$) {\n"
520+
" return com.google.protobuf.ByteString.copyFromUtf8($default$);\n"
521+
" }\n"
522+
" java.lang.Object ref = $oneof_name$_;\n"
523+
" if (ref instanceof java.lang.String) {\n"
524+
" com.google.protobuf.ByteString b = \n"
525+
" com.google.protobuf.ByteString.copyFromUtf8(\n"
526+
" (java.lang.String) ref);\n"
527+
" $oneof_name$_ = b;\n"
528+
" return b;\n"
529+
" } else {\n"
530+
" return (com.google.protobuf.ByteString) ref;\n"
531+
" }\n"
532+
"}\n");
534533
printer->Annotate("{", "}", descriptor_);
535534
}
536535

@@ -552,15 +551,14 @@ void ImmutableStringOneofFieldGenerator::GenerateBuilderMembers(
552551
variables_,
553552
"@java.lang.Override\n"
554553
"$deprecation$public java.lang.String ${$get$capitalized_name$$}$() {\n"
555-
" java.lang.Object ref $default_init$;\n"
556-
" if ($has_oneof_case_message$) {\n"
557-
" ref = $oneof_name$_;\n"
554+
" if ($negated_has_oneof_case_message$) {\n"
555+
" return $default$;\n"
558556
" }\n"
557+
" java.lang.Object ref = $oneof_name$_;\n"
559558
" if (!(ref instanceof java.lang.String)) {\n"
560559
" com.google.protobuf.ByteString bs =\n"
561560
" (com.google.protobuf.ByteString) ref;\n"
562-
" java.lang.String s = bs.toStringUtf8();\n"
563-
" if ($has_oneof_case_message$) {\n");
561+
" java.lang.String s = bs.toStringUtf8();\n");
564562
printer->Annotate("{", "}", descriptor_);
565563
if (CheckUtf8(descriptor_)) {
566564
printer->Print(variables_, " $oneof_name$_ = s;\n");
@@ -571,7 +569,6 @@ void ImmutableStringOneofFieldGenerator::GenerateBuilderMembers(
571569
" }\n");
572570
}
573571
printer->Print(variables_,
574-
" }\n"
575572
" return s;\n"
576573
" } else {\n"
577574
" return (java.lang.String) ref;\n"
@@ -584,17 +581,16 @@ void ImmutableStringOneofFieldGenerator::GenerateBuilderMembers(
584581
"@java.lang.Override\n"
585582
"$deprecation$public com.google.protobuf.ByteString\n"
586583
" ${$get$capitalized_name$Bytes$}$() {\n"
587-
" java.lang.Object ref $default_init$;\n"
588-
" if ($has_oneof_case_message$) {\n"
589-
" ref = $oneof_name$_;\n"
584+
" if ($negated_has_oneof_case_message$) {\n"
585+
" return com.google.protobuf.ByteString.copyFromUtf8("
586+
" $default$);\n"
590587
" }\n"
588+
" java.lang.Object ref = $oneof_name$_;\n"
591589
" if (ref instanceof String) {\n"
592590
" com.google.protobuf.ByteString b = \n"
593591
" com.google.protobuf.ByteString.copyFromUtf8(\n"
594592
" (java.lang.String) ref);\n"
595-
" if ($has_oneof_case_message$) {\n"
596-
" $oneof_name$_ = b;\n"
597-
" }\n"
593+
" $oneof_name$_ = b;\n"
598594
" return b;\n"
599595
" } else {\n"
600596
" return (com.google.protobuf.ByteString) ref;\n"
@@ -674,9 +670,10 @@ void ImmutableStringOneofFieldGenerator::GenerateBuilderParsingCode(
674670
io::Printer* printer) const {
675671
if (CheckUtf8(descriptor_)) {
676672
printer->Print(variables_,
677-
"java.lang.String s = input.readStringRequireUtf8();\n"
678673
"$set_oneof_case_message$;\n"
679-
"$oneof_name$_ = s;\n");
674+
"$oneof_name$_ = "
675+
"input.readStringRequireUtf8();\n"
676+
);
680677
} else {
681678
printer->Print(variables_,
682679
"com.google.protobuf.ByteString bs = input.readBytes();\n"
@@ -983,9 +980,9 @@ void RepeatedImmutableStringFieldGenerator::GenerateBuilderParsingCode(
983980
io::Printer* printer) const {
984981
if (CheckUtf8(descriptor_)) {
985982
printer->Print(variables_,
986-
"java.lang.String s = input.readStringRequireUtf8();\n"
987983
"ensure$capitalized_name$IsMutable();\n"
988-
"$name$_.add(s);\n");
984+
"$name$_.add(input.readStringRequireUtf8());\n"
985+
);
989986
} else {
990987
printer->Print(variables_,
991988
"com.google.protobuf.ByteString bs = input.readBytes();\n"

0 commit comments

Comments
 (0)