aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/javanano/javanano_field.cc
diff options
context:
space:
mode:
authorGravatar Max Cai <maxtroy@google.com>2013-11-13 18:21:28 +0000
committerGravatar Max Cai <maxtroy@google.com>2013-11-18 11:47:25 +0000
commitadf2449a6d64f6f2ab2ba2e07f3dded44185da38 (patch)
treee1fc15ea67d2053ec16049c53d034242e869fe7f /src/google/protobuf/compiler/javanano/javanano_field.cc
parent190edd7ef6fc98d49f7556271fc9c0b4d8160456 (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.cc10
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 &params)
: descriptor_(descriptor),
field_generators_(