diff options
Diffstat (limited to 'src/google/protobuf/compiler/javanano/javanano_enum_field.cc')
-rw-r--r-- | src/google/protobuf/compiler/javanano/javanano_enum_field.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_enum_field.cc b/src/google/protobuf/compiler/javanano/javanano_enum_field.cc index 6a18834..8a59d32 100644 --- a/src/google/protobuf/compiler/javanano/javanano_enum_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_enum_field.cc @@ -59,6 +59,7 @@ void SetEnumVariables(const Params& params, RenameJavaKeywords(UnderscoresToCapitalizedCamelCase(descriptor)); (*variables)["number"] = SimpleItoa(descriptor->number()); if (params.use_reference_types_for_primitives() + && !params.reftypes_primitive_enums() && !descriptor->is_repeated()) { (*variables)["type"] = "java.lang.Integer"; (*variables)["default"] = "null"; @@ -197,7 +198,8 @@ GenerateSerializedSizeCode(io::Printer* printer) const { } void EnumFieldGenerator::GenerateEqualsCode(io::Printer* printer) const { - if (params_.use_reference_types_for_primitives()) { + if (params_.use_reference_types_for_primitives() + && !params_.reftypes_primitive_enums()) { printer->Print(variables_, "if (this.$name$ == null) {\n" " if (other.$name$ != null) {\n" @@ -228,7 +230,8 @@ void EnumFieldGenerator::GenerateEqualsCode(io::Printer* printer) const { void EnumFieldGenerator::GenerateHashCodeCode(io::Printer* printer) const { printer->Print( "result = 31 * result + "); - if (params_.use_reference_types_for_primitives()) { + if (params_.use_reference_types_for_primitives() + && !params_.reftypes_primitive_enums()) { printer->Print(variables_, "(this.$name$ == null ? 0 : this.$name$)"); } else { |