diff options
author | Max Cai <maxtroy@google.com> | 2014-07-15 15:15:28 +0100 |
---|---|---|
committer | Max Cai <maxtroy@google.com> | 2014-07-15 15:38:04 +0100 |
commit | 11f883e185a2ea6fd6d0b19520e9f0f004e90e5c (patch) | |
tree | 75205c505646c352b6cd21a73869d8f1d0dc3572 /src/google/protobuf/compiler/javanano/javanano_message.cc | |
parent | daf638399bd42122306786e8062f392ddace4363 (diff) | |
download | external_protobuf-11f883e185a2ea6fd6d0b19520e9f0f004e90e5c.zip external_protobuf-11f883e185a2ea6fd6d0b19520e9f0f004e90e5c.tar.gz external_protobuf-11f883e185a2ea6fd6d0b19520e9f0f004e90e5c.tar.bz2 |
Fix access around unknownFieldData.
Instead of publishing its class I chose to encapsulate the troublesome
references in equals()/hashCode() in the generated code into superclass
methods in ExtendableMessageNano.
Changed a couple of java packages in the test suite to catch this issue
easier in the future.
Change-Id: I43f88411f63bb6f3ffc8d63361f2f77bebf6220a
Diffstat (limited to 'src/google/protobuf/compiler/javanano/javanano_message.cc')
-rw-r--r-- | src/google/protobuf/compiler/javanano/javanano_message.cc | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_message.cc b/src/google/protobuf/compiler/javanano/javanano_message.cc index 0cf9f97..7a2b4a0 100644 --- a/src/google/protobuf/compiler/javanano/javanano_message.cc +++ b/src/google/protobuf/compiler/javanano/javanano_message.cc @@ -501,11 +501,7 @@ void MessageGenerator::GenerateEquals(io::Printer* printer) { if (params_.store_unknown_fields()) { printer->Print( - "if (unknownFieldData == null || unknownFieldData.isEmpty()) {\n" - " return other.unknownFieldData == null || other.unknownFieldData.isEmpty();" - "} else {\n" - " return unknownFieldData.equals(other.unknownFieldData);\n" - "}\n"); + "return unknownFieldDataEquals(other);\n"); } else { printer->Print( "return true;\n"); @@ -534,8 +530,7 @@ void MessageGenerator::GenerateHashCode(io::Printer* printer) { if (params_.store_unknown_fields()) { printer->Print( - "result = 31 * result + (unknownFieldData == null || unknownFieldData.isEmpty()\n" - " ? 0 : unknownFieldData.hashCode());\n"); + "result = 31 * result + unknownFieldDataHashCode();\n"); } printer->Print("return result;\n"); |