@@ -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