diff options
author | Max Cai <maxtroy@google.com> | 2013-11-13 18:21:28 +0000 |
---|---|---|
committer | Max Cai <maxtroy@google.com> | 2013-11-18 11:47:25 +0000 |
commit | adf2449a6d64f6f2ab2ba2e07f3dded44185da38 (patch) | |
tree | e1fc15ea67d2053ec16049c53d034242e869fe7f /src/google/protobuf/compiler/javanano/javanano_field.cc | |
parent | 190edd7ef6fc98d49f7556271fc9c0b4d8160456 (diff) |
Align with main: two ways of parsing repeated packable fields.
It is a requirement for parsing code to handle packed and unpacked
forms on the wire for repeated packable fields. This change aligns
the javanano's behavior with the java's.
Bonus: optimize array length calculation when parsing repeated
fixed-size-element-type fields.
Bonus 2: lose "xMemoizedSerializedSize" for repeated enum fields,
and make the serialized size calculation match that for repeated
int32 fields.
Change-Id: I8a06103d9290234adb46b0971b5ed155544fe86a
Diffstat (limited to 'src/google/protobuf/compiler/javanano/javanano_field.cc')
-rw-r--r-- | src/google/protobuf/compiler/javanano/javanano_field.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_field.cc b/src/google/protobuf/compiler/javanano/javanano_field.cc index 6629f965..62e133e7 100644 --- a/src/google/protobuf/compiler/javanano/javanano_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_field.cc @@ -46,6 +46,16 @@ namespace javanano { FieldGenerator::~FieldGenerator() {} +void FieldGenerator::GenerateMergingCodeFromPacked(io::Printer* printer) const { + // Reaching here indicates a bug. Cases are: + // - This FieldGenerator should support packing, but this method should be + // overridden. + // - This FieldGenerator doesn't support packing, and this method should + // never have been called. + GOOGLE_LOG(FATAL) << "GenerateParsingCodeFromPacked() " + << "called on field generator that does not support packing."; +} + FieldGeneratorMap::FieldGeneratorMap(const Descriptor* descriptor, const Params ¶ms) : descriptor_(descriptor), field_generators_( |