| Index: third_party/protobuf/patches/02_unknown_fields_in_protobuf_lite.patch
|
| diff --git a/third_party/protobuf/patches/02_unknown_fields_in_protobuf_lite.patch b/third_party/protobuf/patches/02_unknown_fields_in_protobuf_lite.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..966e564c5f66b1610a31e1e7df66e3169ec94f44
|
| --- /dev/null
|
| +++ b/third_party/protobuf/patches/02_unknown_fields_in_protobuf_lite.patch
|
| @@ -0,0 +1,3408 @@
|
| +diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn
|
| +index 1c2c85e..aaeae89 100644
|
| +--- a/third_party/protobuf/BUILD.gn
|
| ++++ b/third_party/protobuf/BUILD.gn
|
| +@@ -104,6 +104,7 @@ protobuf_lite_sources = [
|
| + "src/google/protobuf/stubs/time.h",
|
| + "src/google/protobuf/stubs/type_traits.h",
|
| + "src/google/protobuf/testing/googletest.h",
|
| ++ "src/google/protobuf/unknown_field_set.cc",
|
| + "src/google/protobuf/unknown_field_set.h",
|
| + "src/google/protobuf/wire_format_lite.cc",
|
| + "src/google/protobuf/wire_format_lite.h",
|
| +@@ -220,7 +221,6 @@ source_set("protobuf_full") {
|
| + "src/google/protobuf/timestamp.pb.h",
|
| + "src/google/protobuf/type.pb.cc",
|
| + "src/google/protobuf/type.pb.h",
|
| +- "src/google/protobuf/unknown_field_set.cc",
|
| + "src/google/protobuf/util/field_comparator.cc",
|
| + "src/google/protobuf/util/field_comparator.h",
|
| + "src/google/protobuf/util/internal/constants.h",
|
| +diff --git a/third_party/protobuf/README.chromium b/third_party/protobuf/README.chromium
|
| +index da9f26f..aa428ad 100644
|
| +--- a/third_party/protobuf/README.chromium
|
| ++++ b/third_party/protobuf/README.chromium
|
| +@@ -22,6 +22,12 @@ Steps used to create the current version:
|
| + 01: Miscellaneous build fixes to make the upstream sources compile. At this
|
| + point you should be able to build the protobuf_* and protoc targets (but
|
| + not necessarily anything depending on them).
|
| ++ 02: Add unknown field retention to protobuf_lite. This is a large and complex
|
| ++ patch which will likely require reworking to apply correctly. Changes to
|
| ++ .pb.* files can likely be autogenerated once you apply the rest of the
|
| ++ patch and rebuild protoc; look at step (3) below and the
|
| ++ generate_descriptor_proto.sh script in the protobuf root directory for a
|
| ++ guide. Based on http://crrev.com/62331 and http://crrev.com/173228 .
|
| + (3) Generate descriptor_pb2.py using something like the following steps. Make
|
| + sure you've regenerated your buildfiles and will build protoc from the
|
| + newly-modified sources above.
|
| +diff --git a/third_party/protobuf/protobuf.gyp b/third_party/protobuf/protobuf.gyp
|
| +index e839ad7..9fba350 100644
|
| +--- a/third_party/protobuf/protobuf.gyp
|
| ++++ b/third_party/protobuf/protobuf.gyp
|
| +@@ -178,7 +178,6 @@
|
| + 'src/google/protobuf/timestamp.pb.h',
|
| + 'src/google/protobuf/type.pb.cc',
|
| + 'src/google/protobuf/type.pb.h',
|
| +- 'src/google/protobuf/unknown_field_set.cc',
|
| + 'src/google/protobuf/util/field_comparator.cc',
|
| + 'src/google/protobuf/util/field_comparator.h',
|
| + 'src/google/protobuf/util/internal/constants.h',
|
| +diff --git a/third_party/protobuf/protobuf_lite.gypi b/third_party/protobuf/protobuf_lite.gypi
|
| +index 90fe65b..6415ab2 100644
|
| +--- a/third_party/protobuf/protobuf_lite.gypi
|
| ++++ b/third_party/protobuf/protobuf_lite.gypi
|
| +@@ -80,6 +80,7 @@
|
| + 'src/google/protobuf/stubs/time.h',
|
| + 'src/google/protobuf/stubs/type_traits.h',
|
| + 'src/google/protobuf/testing/googletest.h',
|
| ++ 'src/google/protobuf/unknown_field_set.cc',
|
| + 'src/google/protobuf/unknown_field_set.h',
|
| + 'src/google/protobuf/wire_format_lite.cc',
|
| + 'src/google/protobuf/wire_format_lite.h',
|
| +diff --git a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
|
| +index 965327b..8c21ed2 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
|
| +@@ -365,7 +365,7 @@ GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const {
|
| + " this->mutable_$name$())));\n");
|
| + } else if (UseUnknownFieldSet(descriptor_->file())) {
|
| + printer->Print(variables_,
|
| +- "DO_((::google::protobuf::internal::WireFormat::ReadPackedEnumPreserveUnknowns(\n"
|
| ++ "DO_((::google::protobuf::internal::WireFormatLite::ReadPackedEnumPreserveUnknowns(\n"
|
| + " input,\n"
|
| + " $number$,\n"
|
| + " $type$_IsValid,\n"
|
| +diff --git a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h
|
| +index 4bbf830..5029954 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h
|
| ++++ b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h
|
| +@@ -166,7 +166,8 @@ inline bool PreserveUnknownFields(const Descriptor* message) {
|
| + // If PreserveUnknownFields() is false, this method will not be
|
| + // used.
|
| + inline bool UseUnknownFieldSet(const FileDescriptor* file) {
|
| +- return file->options().optimize_for() != FileOptions::LITE_RUNTIME;
|
| ++ return file->options().optimize_for() != FileOptions::LITE_RUNTIME ||
|
| ++ file->options().retain_unknown_fields();
|
| + }
|
| +
|
| +
|
| +diff --git a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc
|
| +index b0e3875..4909d0f 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc
|
| +@@ -3116,7 +3116,7 @@ GenerateMergeFromCodedStream(io::Printer* printer) {
|
| + if (PreserveUnknownFields(descriptor_)) {
|
| + if (UseUnknownFieldSet(descriptor_->file())) {
|
| + printer->Print(
|
| +- "DO_(::google::protobuf::internal::WireFormat::SkipField(\n"
|
| ++ "DO_(::google::protobuf::internal::WireFormatLite::SkipField(\n"
|
| + " input, tag, mutable_unknown_fields()));\n");
|
| + } else {
|
| + printer->Print(
|
| +@@ -3209,7 +3209,7 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) {
|
| + "classname", classname_);
|
| + GOOGLE_CHECK(UseUnknownFieldSet(descriptor_->file()));
|
| + printer->Print(
|
| +- " ::google::protobuf::internal::WireFormat::SerializeUnknownMessageSetItems(\n"
|
| ++ " ::google::protobuf::internal::WireFormatLite::SerializeUnknownMessageSetItems(\n"
|
| + " unknown_fields(), output);\n");
|
| + printer->Print(
|
| + "}\n");
|
| +@@ -3249,7 +3249,7 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) {
|
| + "classname", classname_);
|
| + GOOGLE_CHECK(UseUnknownFieldSet(descriptor_->file()));
|
| + printer->Print(
|
| +- " target = ::google::protobuf::internal::WireFormat::\n"
|
| ++ " target = ::google::protobuf::internal::WireFormatLite::\n"
|
| + " SerializeUnknownMessageSetItemsToArray(\n"
|
| + " unknown_fields(), target);\n");
|
| + printer->Print(
|
| +@@ -3319,11 +3319,11 @@ GenerateSerializeWithCachedSizesBody(io::Printer* printer, bool to_array) {
|
| + if (to_array) {
|
| + printer->Print(
|
| + "target = "
|
| +- "::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(\n"
|
| ++ "::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(\n"
|
| + " unknown_fields(), target);\n");
|
| + } else {
|
| + printer->Print(
|
| +- "::google::protobuf::internal::WireFormat::SerializeUnknownFields(\n"
|
| ++ "::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(\n"
|
| + " unknown_fields(), output);\n");
|
| + }
|
| + printer->Outdent();
|
| +@@ -3386,7 +3386,7 @@ GenerateByteSize(io::Printer* printer) {
|
| + GOOGLE_CHECK(UseUnknownFieldSet(descriptor_->file()));
|
| + printer->Print(
|
| + "if (_internal_metadata_.have_unknown_fields()) {\n"
|
| +- " total_size += ::google::protobuf::internal::WireFormat::\n"
|
| ++ " total_size += ::google::protobuf::internal::WireFormatLite::\n"
|
| + " ComputeUnknownMessageSetItemsSize(unknown_fields());\n"
|
| + "}\n");
|
| + printer->Print(
|
| +@@ -3607,7 +3607,7 @@ GenerateByteSize(io::Printer* printer) {
|
| + printer->Print(
|
| + "if (_internal_metadata_.have_unknown_fields()) {\n"
|
| + " total_size +=\n"
|
| +- " ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(\n"
|
| ++ " ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(\n"
|
| + " unknown_fields());\n"
|
| + "}\n");
|
| + } else {
|
| +diff --git a/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc b/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc
|
| +index e7890fa..29e3590 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc
|
| +@@ -320,7 +320,7 @@ bool CodeGeneratorRequest::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -365,7 +365,7 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.compiler.CodeGeneratorRequest)
|
| +@@ -403,7 +403,7 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.compiler.CodeGeneratorRequest)
|
| +@@ -437,7 +437,7 @@ int CodeGeneratorRequest::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -811,7 +811,7 @@ bool CodeGeneratorResponse_File::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -860,7 +860,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.compiler.CodeGeneratorResponse.File)
|
| +@@ -903,7 +903,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.compiler.CodeGeneratorResponse.File)
|
| +@@ -938,7 +938,7 @@ int CodeGeneratorResponse_File::ByteSize() const {
|
| + }
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -1147,7 +1147,7 @@ bool CodeGeneratorResponse::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -1182,7 +1182,7 @@ void CodeGeneratorResponse::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.compiler.CodeGeneratorResponse)
|
| +@@ -1210,7 +1210,7 @@ void CodeGeneratorResponse::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.compiler.CodeGeneratorResponse)
|
| +@@ -1237,7 +1237,7 @@ int CodeGeneratorResponse::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +diff --git a/third_party/protobuf/src/google/protobuf/descriptor.cc b/third_party/protobuf/src/google/protobuf/descriptor.cc
|
| +index 2855c37..36e42a6 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/descriptor.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/descriptor.cc
|
| +@@ -5600,7 +5600,7 @@ bool DescriptorBuilder::OptionInterpreter::InterpretSingleOption(
|
| + io::StringOutputStream outstr(
|
| + parent_unknown_fields->AddLengthDelimited((*iter)->number()));
|
| + io::CodedOutputStream out(&outstr);
|
| +- internal::WireFormat::SerializeUnknownFields(*unknown_fields, &out);
|
| ++ internal::WireFormatLite::SerializeUnknownFields(*unknown_fields, &out);
|
| + GOOGLE_CHECK(!out.HadError())
|
| + << "Unexpected failure while serializing option submessage "
|
| + << debug_msg_name << "\".";
|
| +diff --git a/third_party/protobuf/src/google/protobuf/descriptor.pb.cc b/third_party/protobuf/src/google/protobuf/descriptor.pb.cc
|
| +index 5e7eeaa..f53e604 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/descriptor.pb.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/descriptor.pb.cc
|
| +@@ -311,10 +311,11 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, _internal_metadata_),
|
| + -1);
|
| + FileOptions_descriptor_ = file->message_type(9);
|
| +- static const int FileOptions_offsets_[16] = {
|
| ++ static const int FileOptions_offsets_[17] = {
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_package_),
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_outer_classname_),
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_multiple_files_),
|
| ++ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, retain_unknown_fields_),
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_generate_equals_and_hash_),
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_string_check_utf8_),
|
| + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, optimize_for_),
|
| +@@ -696,68 +697,69 @@ void protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto() {
|
| + "_type\030\002 \001(\t\022\023\n\013output_type\030\003 \001(\t\022/\n\007opti"
|
| + "ons\030\004 \001(\0132\036.google.protobuf.MethodOption"
|
| + "s\022\037\n\020client_streaming\030\005 \001(\010:\005false\022\037\n\020se"
|
| +- "rver_streaming\030\006 \001(\010:\005false\"\252\005\n\013FileOpti"
|
| ++ "rver_streaming\030\006 \001(\010:\005false\"\320\005\n\013FileOpti"
|
| + "ons\022\024\n\014java_package\030\001 \001(\t\022\034\n\024java_outer_"
|
| + "classname\030\010 \001(\t\022\"\n\023java_multiple_files\030\n"
|
| +- " \001(\010:\005false\022,\n\035java_generate_equals_and_"
|
| +- "hash\030\024 \001(\010:\005false\022%\n\026java_string_check_u"
|
| +- "tf8\030\033 \001(\010:\005false\022F\n\014optimize_for\030\t \001(\0162)"
|
| +- ".google.protobuf.FileOptions.OptimizeMod"
|
| +- "e:\005SPEED\022\022\n\ngo_package\030\013 \001(\t\022\"\n\023cc_gener"
|
| +- "ic_services\030\020 \001(\010:\005false\022$\n\025java_generic"
|
| +- "_services\030\021 \001(\010:\005false\022\"\n\023py_generic_ser"
|
| +- "vices\030\022 \001(\010:\005false\022\031\n\ndeprecated\030\027 \001(\010:\005"
|
| +- "false\022\037\n\020cc_enable_arenas\030\037 \001(\010:\005false\022\031"
|
| +- "\n\021objc_class_prefix\030$ \001(\t\022\030\n\020csharp_name"
|
| +- "space\030% \001(\t\022\'\n\037javanano_use_deprecated_p"
|
| +- "ackage\030& \001(\010\022C\n\024uninterpreted_option\030\347\007 "
|
| +- "\003(\0132$.google.protobuf.UninterpretedOptio"
|
| +- "n\":\n\014OptimizeMode\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZ"
|
| +- "E\020\002\022\020\n\014LITE_RUNTIME\020\003*\t\010\350\007\020\200\200\200\200\002\"\346\001\n\016Mes"
|
| +- "sageOptions\022&\n\027message_set_wire_format\030\001"
|
| +- " \001(\010:\005false\022.\n\037no_standard_descriptor_ac"
|
| +- "cessor\030\002 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:"
|
| +- "\005false\022\021\n\tmap_entry\030\007 \001(\010\022C\n\024uninterpret"
|
| ++ " \001(\010:\005false\022$\n\025retain_unknown_fields\030\014 \001"
|
| ++ "(\010:\005false\022,\n\035java_generate_equals_and_ha"
|
| ++ "sh\030\024 \001(\010:\005false\022%\n\026java_string_check_utf"
|
| ++ "8\030\033 \001(\010:\005false\022F\n\014optimize_for\030\t \001(\0162).g"
|
| ++ "oogle.protobuf.FileOptions.OptimizeMode:"
|
| ++ "\005SPEED\022\022\n\ngo_package\030\013 \001(\t\022\"\n\023cc_generic"
|
| ++ "_services\030\020 \001(\010:\005false\022$\n\025java_generic_s"
|
| ++ "ervices\030\021 \001(\010:\005false\022\"\n\023py_generic_servi"
|
| ++ "ces\030\022 \001(\010:\005false\022\031\n\ndeprecated\030\027 \001(\010:\005fa"
|
| ++ "lse\022\037\n\020cc_enable_arenas\030\037 \001(\010:\005false\022\031\n\021"
|
| ++ "objc_class_prefix\030$ \001(\t\022\030\n\020csharp_namesp"
|
| ++ "ace\030% \001(\t\022\'\n\037javanano_use_deprecated_pac"
|
| ++ "kage\030& \001(\010\022C\n\024uninterpreted_option\030\347\007 \003("
|
| ++ "\0132$.google.protobuf.UninterpretedOption\""
|
| ++ ":\n\014OptimizeMode\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020"
|
| ++ "\002\022\020\n\014LITE_RUNTIME\020\003*\t\010\350\007\020\200\200\200\200\002\"\346\001\n\016Messa"
|
| ++ "geOptions\022&\n\027message_set_wire_format\030\001 \001"
|
| ++ "(\010:\005false\022.\n\037no_standard_descriptor_acce"
|
| ++ "ssor\030\002 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005f"
|
| ++ "alse\022\021\n\tmap_entry\030\007 \001(\010\022C\n\024uninterpreted"
|
| ++ "_option\030\347\007 \003(\0132$.google.protobuf.Uninter"
|
| ++ "pretedOption*\t\010\350\007\020\200\200\200\200\002\"\230\003\n\014FieldOptions"
|
| ++ "\022:\n\005ctype\030\001 \001(\0162#.google.protobuf.FieldO"
|
| ++ "ptions.CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\?\n\006"
|
| ++ "jstype\030\006 \001(\0162$.google.protobuf.FieldOpti"
|
| ++ "ons.JSType:\tJS_NORMAL\022\023\n\004lazy\030\005 \001(\010:\005fal"
|
| ++ "se\022\031\n\ndeprecated\030\003 \001(\010:\005false\022\023\n\004weak\030\n "
|
| ++ "\001(\010:\005false\022C\n\024uninterpreted_option\030\347\007 \003("
|
| ++ "\0132$.google.protobuf.UninterpretedOption\""
|
| ++ "/\n\005CType\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRING"
|
| ++ "_PIECE\020\002\"5\n\006JSType\022\r\n\tJS_NORMAL\020\000\022\r\n\tJS_"
|
| ++ "STRING\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020\200\200\200\200\002\"\215\001\n\013E"
|
| ++ "numOptions\022\023\n\013allow_alias\030\002 \001(\010\022\031\n\ndepre"
|
| ++ "cated\030\003 \001(\010:\005false\022C\n\024uninterpreted_opti"
|
| ++ "on\030\347\007 \003(\0132$.google.protobuf.Uninterprete"
|
| ++ "dOption*\t\010\350\007\020\200\200\200\200\002\"}\n\020EnumValueOptions\022\031"
|
| ++ "\n\ndeprecated\030\001 \001(\010:\005false\022C\n\024uninterpret"
|
| + "ed_option\030\347\007 \003(\0132$.google.protobuf.Unint"
|
| +- "erpretedOption*\t\010\350\007\020\200\200\200\200\002\"\230\003\n\014FieldOptio"
|
| +- "ns\022:\n\005ctype\030\001 \001(\0162#.google.protobuf.Fiel"
|
| +- "dOptions.CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\?"
|
| +- "\n\006jstype\030\006 \001(\0162$.google.protobuf.FieldOp"
|
| +- "tions.JSType:\tJS_NORMAL\022\023\n\004lazy\030\005 \001(\010:\005f"
|
| +- "alse\022\031\n\ndeprecated\030\003 \001(\010:\005false\022\023\n\004weak\030"
|
| +- "\n \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007 "
|
| +- "\003(\0132$.google.protobuf.UninterpretedOptio"
|
| +- "n\"/\n\005CType\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRI"
|
| +- "NG_PIECE\020\002\"5\n\006JSType\022\r\n\tJS_NORMAL\020\000\022\r\n\tJ"
|
| +- "S_STRING\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020\200\200\200\200\002\"\215\001\n"
|
| +- "\013EnumOptions\022\023\n\013allow_alias\030\002 \001(\010\022\031\n\ndep"
|
| +- "recated\030\003 \001(\010:\005false\022C\n\024uninterpreted_op"
|
| +- "tion\030\347\007 \003(\0132$.google.protobuf.Uninterpre"
|
| +- "tedOption*\t\010\350\007\020\200\200\200\200\002\"}\n\020EnumValueOptions"
|
| +- "\022\031\n\ndeprecated\030\001 \001(\010:\005false\022C\n\024uninterpr"
|
| +- "eted_option\030\347\007 \003(\0132$.google.protobuf.Uni"
|
| +- "nterpretedOption*\t\010\350\007\020\200\200\200\200\002\"{\n\016ServiceOp"
|
| +- "tions\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024unin"
|
| +- "terpreted_option\030\347\007 \003(\0132$.google.protobu"
|
| +- "f.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"z\n\rMeth"
|
| +- "odOptions\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024"
|
| +- "uninterpreted_option\030\347\007 \003(\0132$.google.pro"
|
| +- "tobuf.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"\236\002\n"
|
| +- "\023UninterpretedOption\022;\n\004name\030\002 \003(\0132-.goo"
|
| +- "gle.protobuf.UninterpretedOption.NamePar"
|
| +- "t\022\030\n\020identifier_value\030\003 \001(\t\022\032\n\022positive_"
|
| +- "int_value\030\004 \001(\004\022\032\n\022negative_int_value\030\005 "
|
| +- "\001(\003\022\024\n\014double_value\030\006 \001(\001\022\024\n\014string_valu"
|
| +- "e\030\007 \001(\014\022\027\n\017aggregate_value\030\010 \001(\t\0323\n\010Name"
|
| +- "Part\022\021\n\tname_part\030\001 \002(\t\022\024\n\014is_extension\030"
|
| +- "\002 \002(\010\"\325\001\n\016SourceCodeInfo\022:\n\010location\030\001 \003"
|
| +- "(\0132(.google.protobuf.SourceCodeInfo.Loca"
|
| +- "tion\032\206\001\n\010Location\022\020\n\004path\030\001 \003(\005B\002\020\001\022\020\n\004s"
|
| +- "pan\030\002 \003(\005B\002\020\001\022\030\n\020leading_comments\030\003 \001(\t\022"
|
| +- "\031\n\021trailing_comments\030\004 \001(\t\022!\n\031leading_de"
|
| +- "tached_comments\030\006 \003(\tB[\n\023com.google.prot"
|
| +- "obufB\020DescriptorProtosH\001Z\ndescriptor\242\002\003G"
|
| +- "PB\252\002\032Google.Protobuf.Reflection\260\002\001", 4994);
|
| ++ "erpretedOption*\t\010\350\007\020\200\200\200\200\002\"{\n\016ServiceOpti"
|
| ++ "ons\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024uninte"
|
| ++ "rpreted_option\030\347\007 \003(\0132$.google.protobuf."
|
| ++ "UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"z\n\rMethod"
|
| ++ "Options\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024un"
|
| ++ "interpreted_option\030\347\007 \003(\0132$.google.proto"
|
| ++ "buf.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"\236\002\n\023U"
|
| ++ "ninterpretedOption\022;\n\004name\030\002 \003(\0132-.googl"
|
| ++ "e.protobuf.UninterpretedOption.NamePart\022"
|
| ++ "\030\n\020identifier_value\030\003 \001(\t\022\032\n\022positive_in"
|
| ++ "t_value\030\004 \001(\004\022\032\n\022negative_int_value\030\005 \001("
|
| ++ "\003\022\024\n\014double_value\030\006 \001(\001\022\024\n\014string_value\030"
|
| ++ "\007 \001(\014\022\027\n\017aggregate_value\030\010 \001(\t\0323\n\010NamePa"
|
| ++ "rt\022\021\n\tname_part\030\001 \002(\t\022\024\n\014is_extension\030\002 "
|
| ++ "\002(\010\"\325\001\n\016SourceCodeInfo\022:\n\010location\030\001 \003(\013"
|
| ++ "2(.google.protobuf.SourceCodeInfo.Locati"
|
| ++ "on\032\206\001\n\010Location\022\020\n\004path\030\001 \003(\005B\002\020\001\022\020\n\004spa"
|
| ++ "n\030\002 \003(\005B\002\020\001\022\030\n\020leading_comments\030\003 \001(\t\022\031\n"
|
| ++ "\021trailing_comments\030\004 \001(\t\022!\n\031leading_deta"
|
| ++ "ched_comments\030\006 \003(\tB[\n\023com.google.protob"
|
| ++ "ufB\020DescriptorProtosH\001Z\ndescriptor\242\002\003GPB"
|
| ++ "\252\002\032Google.Protobuf.Reflection\260\002\001", 5032);
|
| + ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
|
| + "google/protobuf/descriptor.proto", &protobuf_RegisterTypes);
|
| + FileDescriptorSet::default_instance_ = new FileDescriptorSet();
|
| +@@ -928,7 +930,7 @@ bool FileDescriptorSet::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -953,7 +955,7 @@ void FileDescriptorSet::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.FileDescriptorSet)
|
| +@@ -970,7 +972,7 @@ void FileDescriptorSet::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FileDescriptorSet)
|
| +@@ -990,7 +992,7 @@ int FileDescriptorSet::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -1426,7 +1428,7 @@ bool FileDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -1533,7 +1535,7 @@ void FileDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.FileDescriptorProto)
|
| +@@ -1640,7 +1642,7 @@ void FileDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FileDescriptorProto)
|
| +@@ -1750,7 +1752,7 @@ int FileDescriptorProto::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -2477,7 +2479,7 @@ bool DescriptorProto_ExtensionRange::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -2506,7 +2508,7 @@ void DescriptorProto_ExtensionRange::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.DescriptorProto.ExtensionRange)
|
| +@@ -2526,7 +2528,7 @@ void DescriptorProto_ExtensionRange::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.DescriptorProto.ExtensionRange)
|
| +@@ -2554,7 +2556,7 @@ int DescriptorProto_ExtensionRange::ByteSize() const {
|
| + }
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -2760,7 +2762,7 @@ bool DescriptorProto_ReservedRange::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -2789,7 +2791,7 @@ void DescriptorProto_ReservedRange::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.DescriptorProto.ReservedRange)
|
| +@@ -2809,7 +2811,7 @@ void DescriptorProto_ReservedRange::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.DescriptorProto.ReservedRange)
|
| +@@ -2837,7 +2839,7 @@ int DescriptorProto_ReservedRange::ByteSize() const {
|
| + }
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -3191,7 +3193,7 @@ bool DescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -3278,7 +3280,7 @@ void DescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.DescriptorProto)
|
| +@@ -3365,7 +3367,7 @@ void DescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.DescriptorProto)
|
| +@@ -3456,7 +3458,7 @@ int DescriptorProto::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -4380,7 +4382,7 @@ bool FieldDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -4467,7 +4469,7 @@ void FieldDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.FieldDescriptorProto)
|
| +@@ -4550,7 +4552,7 @@ void FieldDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FieldDescriptorProto)
|
| +@@ -4625,7 +4627,7 @@ int FieldDescriptorProto::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -5202,7 +5204,7 @@ bool OneofDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -5231,7 +5233,7 @@ void OneofDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.OneofDescriptorProto)
|
| +@@ -5252,7 +5254,7 @@ void OneofDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.OneofDescriptorProto)
|
| +@@ -5271,7 +5273,7 @@ int OneofDescriptorProto::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -5549,7 +5551,7 @@ bool EnumDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -5590,7 +5592,7 @@ void EnumDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.EnumDescriptorProto)
|
| +@@ -5625,7 +5627,7 @@ void EnumDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.EnumDescriptorProto)
|
| +@@ -5661,7 +5663,7 @@ int EnumDescriptorProto::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -6021,7 +6023,7 @@ bool EnumValueDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -6061,7 +6063,7 @@ void EnumValueDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.EnumValueDescriptorProto)
|
| +@@ -6094,7 +6096,7 @@ void EnumValueDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.EnumValueDescriptorProto)
|
| +@@ -6129,7 +6131,7 @@ int EnumValueDescriptorProto::ByteSize() const {
|
| + }
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -6485,7 +6487,7 @@ bool ServiceDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -6526,7 +6528,7 @@ void ServiceDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.ServiceDescriptorProto)
|
| +@@ -6561,7 +6563,7 @@ void ServiceDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.ServiceDescriptorProto)
|
| +@@ -6597,7 +6599,7 @@ int ServiceDescriptorProto::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -7032,7 +7034,7 @@ bool MethodDescriptorProto::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -7097,7 +7099,7 @@ void MethodDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.MethodDescriptorProto)
|
| +@@ -7157,7 +7159,7 @@ void MethodDescriptorProto::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.MethodDescriptorProto)
|
| +@@ -7209,7 +7211,7 @@ int MethodDescriptorProto::ByteSize() const {
|
| + }
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -7588,6 +7590,7 @@ const int FileOptions::OptimizeMode_ARRAYSIZE;
|
| + const int FileOptions::kJavaPackageFieldNumber;
|
| + const int FileOptions::kJavaOuterClassnameFieldNumber;
|
| + const int FileOptions::kJavaMultipleFilesFieldNumber;
|
| ++const int FileOptions::kRetainUnknownFieldsFieldNumber;
|
| + const int FileOptions::kJavaGenerateEqualsAndHashFieldNumber;
|
| + const int FileOptions::kJavaStringCheckUtf8FieldNumber;
|
| + const int FileOptions::kOptimizeForFieldNumber;
|
| +@@ -7626,6 +7629,7 @@ void FileOptions::SharedCtor() {
|
| + java_package_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| + java_outer_classname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| + java_multiple_files_ = false;
|
| ++ retain_unknown_fields_ = false;
|
| + java_generate_equals_and_hash_ = false;
|
| + java_string_check_utf8_ = false;
|
| + optimize_for_ = 1;
|
| +@@ -7692,7 +7696,7 @@ void FileOptions::Clear() {
|
| + } while (0)
|
| +
|
| + if (_has_bits_[0 / 32] & 255u) {
|
| +- ZR_(java_multiple_files_, cc_generic_services_);
|
| ++ ZR_(java_multiple_files_, java_string_check_utf8_);
|
| + if (has_java_package()) {
|
| + java_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| + }
|
| +@@ -7704,8 +7708,8 @@ void FileOptions::Clear() {
|
| + go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| + }
|
| + }
|
| +- if (_has_bits_[8 / 32] & 32512u) {
|
| +- ZR_(java_generic_services_, javanano_use_deprecated_package_);
|
| ++ if (_has_bits_[8 / 32] & 65280u) {
|
| ++ ZR_(cc_generic_services_, javanano_use_deprecated_package_);
|
| + if (has_objc_class_prefix()) {
|
| + objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| + }
|
| +@@ -7815,6 +7819,21 @@ bool FileOptions::MergePartialFromCodedStream(
|
| + } else {
|
| + goto handle_unusual;
|
| + }
|
| ++ if (input->ExpectTag(96)) goto parse_retain_unknown_fields;
|
| ++ break;
|
| ++ }
|
| ++
|
| ++ // optional bool retain_unknown_fields = 12 [default = false];
|
| ++ case 12: {
|
| ++ if (tag == 96) {
|
| ++ parse_retain_unknown_fields:
|
| ++ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
|
| ++ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
|
| ++ input, &retain_unknown_fields_)));
|
| ++ set_has_retain_unknown_fields();
|
| ++ } else {
|
| ++ goto handle_unusual;
|
| ++ }
|
| + if (input->ExpectTag(128)) goto parse_cc_generic_services;
|
| + break;
|
| + }
|
| +@@ -8002,7 +8021,7 @@ bool FileOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -8061,6 +8080,11 @@ void FileOptions::SerializeWithCachedSizes(
|
| + 11, this->go_package(), output);
|
| + }
|
| +
|
| ++ // optional bool retain_unknown_fields = 12 [default = false];
|
| ++ if (has_retain_unknown_fields()) {
|
| ++ ::google::protobuf::internal::WireFormatLite::WriteBool(12, this->retain_unknown_fields(), output);
|
| ++ }
|
| ++
|
| + // optional bool cc_generic_services = 16 [default = false];
|
| + if (has_cc_generic_services()) {
|
| + ::google::protobuf::internal::WireFormatLite::WriteBool(16, this->cc_generic_services(), output);
|
| +@@ -8132,7 +8156,7 @@ void FileOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.FileOptions)
|
| +@@ -8185,6 +8209,11 @@ void FileOptions::SerializeWithCachedSizes(
|
| + 11, this->go_package(), target);
|
| + }
|
| +
|
| ++ // optional bool retain_unknown_fields = 12 [default = false];
|
| ++ if (has_retain_unknown_fields()) {
|
| ++ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(12, this->retain_unknown_fields(), target);
|
| ++ }
|
| ++
|
| + // optional bool cc_generic_services = 16 [default = false];
|
| + if (has_cc_generic_services()) {
|
| + target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(16, this->cc_generic_services(), target);
|
| +@@ -8259,7 +8288,7 @@ void FileOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FileOptions)
|
| +@@ -8289,6 +8318,11 @@ int FileOptions::ByteSize() const {
|
| + total_size += 1 + 1;
|
| + }
|
| +
|
| ++ // optional bool retain_unknown_fields = 12 [default = false];
|
| ++ if (has_retain_unknown_fields()) {
|
| ++ total_size += 1 + 1;
|
| ++ }
|
| ++
|
| + // optional bool java_generate_equals_and_hash = 20 [default = false];
|
| + if (has_java_generate_equals_and_hash()) {
|
| + total_size += 2 + 1;
|
| +@@ -8312,13 +8346,13 @@ int FileOptions::ByteSize() const {
|
| + this->go_package());
|
| + }
|
| +
|
| ++ }
|
| ++ if (_has_bits_[8 / 32] & 65280u) {
|
| + // optional bool cc_generic_services = 16 [default = false];
|
| + if (has_cc_generic_services()) {
|
| + total_size += 2 + 1;
|
| + }
|
| +
|
| +- }
|
| +- if (_has_bits_[8 / 32] & 32512u) {
|
| + // optional bool java_generic_services = 17 [default = false];
|
| + if (has_java_generic_services()) {
|
| + total_size += 2 + 1;
|
| +@@ -8371,7 +8405,7 @@ int FileOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -8407,6 +8441,9 @@ void FileOptions::MergeFrom(const FileOptions& from) {
|
| + if (from.has_java_multiple_files()) {
|
| + set_java_multiple_files(from.java_multiple_files());
|
| + }
|
| ++ if (from.has_retain_unknown_fields()) {
|
| ++ set_retain_unknown_fields(from.retain_unknown_fields());
|
| ++ }
|
| + if (from.has_java_generate_equals_and_hash()) {
|
| + set_java_generate_equals_and_hash(from.java_generate_equals_and_hash());
|
| + }
|
| +@@ -8420,11 +8457,11 @@ void FileOptions::MergeFrom(const FileOptions& from) {
|
| + set_has_go_package();
|
| + go_package_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.go_package_);
|
| + }
|
| ++ }
|
| ++ if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
|
| + if (from.has_cc_generic_services()) {
|
| + set_cc_generic_services(from.cc_generic_services());
|
| + }
|
| +- }
|
| +- if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
|
| + if (from.has_java_generic_services()) {
|
| + set_java_generic_services(from.java_generic_services());
|
| + }
|
| +@@ -8482,6 +8519,7 @@ void FileOptions::InternalSwap(FileOptions* other) {
|
| + java_package_.Swap(&other->java_package_);
|
| + java_outer_classname_.Swap(&other->java_outer_classname_);
|
| + std::swap(java_multiple_files_, other->java_multiple_files_);
|
| ++ std::swap(retain_unknown_fields_, other->retain_unknown_fields_);
|
| + std::swap(java_generate_equals_and_hash_, other->java_generate_equals_and_hash_);
|
| + std::swap(java_string_check_utf8_, other->java_string_check_utf8_);
|
| + std::swap(optimize_for_, other->optimize_for_);
|
| +@@ -8642,15 +8680,39 @@ void FileOptions::clear_java_multiple_files() {
|
| + // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.java_multiple_files)
|
| + }
|
| +
|
| ++// optional bool retain_unknown_fields = 12 [default = false];
|
| ++bool FileOptions::has_retain_unknown_fields() const {
|
| ++ return (_has_bits_[0] & 0x00000008u) != 0;
|
| ++}
|
| ++void FileOptions::set_has_retain_unknown_fields() {
|
| ++ _has_bits_[0] |= 0x00000008u;
|
| ++}
|
| ++void FileOptions::clear_has_retain_unknown_fields() {
|
| ++ _has_bits_[0] &= ~0x00000008u;
|
| ++}
|
| ++void FileOptions::clear_retain_unknown_fields() {
|
| ++ retain_unknown_fields_ = false;
|
| ++ clear_has_retain_unknown_fields();
|
| ++}
|
| ++ bool FileOptions::retain_unknown_fields() const {
|
| ++ // @@protoc_insertion_point(field_get:google.protobuf.FileOptions.retain_unknown_fields)
|
| ++ return retain_unknown_fields_;
|
| ++}
|
| ++ void FileOptions::set_retain_unknown_fields(bool value) {
|
| ++ set_has_retain_unknown_fields();
|
| ++ retain_unknown_fields_ = value;
|
| ++ // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.retain_unknown_fields)
|
| ++}
|
| ++
|
| + // optional bool java_generate_equals_and_hash = 20 [default = false];
|
| + bool FileOptions::has_java_generate_equals_and_hash() const {
|
| +- return (_has_bits_[0] & 0x00000008u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000010u) != 0;
|
| + }
|
| + void FileOptions::set_has_java_generate_equals_and_hash() {
|
| +- _has_bits_[0] |= 0x00000008u;
|
| ++ _has_bits_[0] |= 0x00000010u;
|
| + }
|
| + void FileOptions::clear_has_java_generate_equals_and_hash() {
|
| +- _has_bits_[0] &= ~0x00000008u;
|
| ++ _has_bits_[0] &= ~0x00000010u;
|
| + }
|
| + void FileOptions::clear_java_generate_equals_and_hash() {
|
| + java_generate_equals_and_hash_ = false;
|
| +@@ -8668,13 +8730,13 @@ void FileOptions::clear_java_generate_equals_and_hash() {
|
| +
|
| + // optional bool java_string_check_utf8 = 27 [default = false];
|
| + bool FileOptions::has_java_string_check_utf8() const {
|
| +- return (_has_bits_[0] & 0x00000010u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000020u) != 0;
|
| + }
|
| + void FileOptions::set_has_java_string_check_utf8() {
|
| +- _has_bits_[0] |= 0x00000010u;
|
| ++ _has_bits_[0] |= 0x00000020u;
|
| + }
|
| + void FileOptions::clear_has_java_string_check_utf8() {
|
| +- _has_bits_[0] &= ~0x00000010u;
|
| ++ _has_bits_[0] &= ~0x00000020u;
|
| + }
|
| + void FileOptions::clear_java_string_check_utf8() {
|
| + java_string_check_utf8_ = false;
|
| +@@ -8692,13 +8754,13 @@ void FileOptions::clear_java_string_check_utf8() {
|
| +
|
| + // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
|
| + bool FileOptions::has_optimize_for() const {
|
| +- return (_has_bits_[0] & 0x00000020u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000040u) != 0;
|
| + }
|
| + void FileOptions::set_has_optimize_for() {
|
| +- _has_bits_[0] |= 0x00000020u;
|
| ++ _has_bits_[0] |= 0x00000040u;
|
| + }
|
| + void FileOptions::clear_has_optimize_for() {
|
| +- _has_bits_[0] &= ~0x00000020u;
|
| ++ _has_bits_[0] &= ~0x00000040u;
|
| + }
|
| + void FileOptions::clear_optimize_for() {
|
| + optimize_for_ = 1;
|
| +@@ -8717,13 +8779,13 @@ void FileOptions::clear_optimize_for() {
|
| +
|
| + // optional string go_package = 11;
|
| + bool FileOptions::has_go_package() const {
|
| +- return (_has_bits_[0] & 0x00000040u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000080u) != 0;
|
| + }
|
| + void FileOptions::set_has_go_package() {
|
| +- _has_bits_[0] |= 0x00000040u;
|
| ++ _has_bits_[0] |= 0x00000080u;
|
| + }
|
| + void FileOptions::clear_has_go_package() {
|
| +- _has_bits_[0] &= ~0x00000040u;
|
| ++ _has_bits_[0] &= ~0x00000080u;
|
| + }
|
| + void FileOptions::clear_go_package() {
|
| + go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| +@@ -8770,13 +8832,13 @@ void FileOptions::clear_go_package() {
|
| +
|
| + // optional bool cc_generic_services = 16 [default = false];
|
| + bool FileOptions::has_cc_generic_services() const {
|
| +- return (_has_bits_[0] & 0x00000080u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000100u) != 0;
|
| + }
|
| + void FileOptions::set_has_cc_generic_services() {
|
| +- _has_bits_[0] |= 0x00000080u;
|
| ++ _has_bits_[0] |= 0x00000100u;
|
| + }
|
| + void FileOptions::clear_has_cc_generic_services() {
|
| +- _has_bits_[0] &= ~0x00000080u;
|
| ++ _has_bits_[0] &= ~0x00000100u;
|
| + }
|
| + void FileOptions::clear_cc_generic_services() {
|
| + cc_generic_services_ = false;
|
| +@@ -8794,13 +8856,13 @@ void FileOptions::clear_cc_generic_services() {
|
| +
|
| + // optional bool java_generic_services = 17 [default = false];
|
| + bool FileOptions::has_java_generic_services() const {
|
| +- return (_has_bits_[0] & 0x00000100u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000200u) != 0;
|
| + }
|
| + void FileOptions::set_has_java_generic_services() {
|
| +- _has_bits_[0] |= 0x00000100u;
|
| ++ _has_bits_[0] |= 0x00000200u;
|
| + }
|
| + void FileOptions::clear_has_java_generic_services() {
|
| +- _has_bits_[0] &= ~0x00000100u;
|
| ++ _has_bits_[0] &= ~0x00000200u;
|
| + }
|
| + void FileOptions::clear_java_generic_services() {
|
| + java_generic_services_ = false;
|
| +@@ -8818,13 +8880,13 @@ void FileOptions::clear_java_generic_services() {
|
| +
|
| + // optional bool py_generic_services = 18 [default = false];
|
| + bool FileOptions::has_py_generic_services() const {
|
| +- return (_has_bits_[0] & 0x00000200u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000400u) != 0;
|
| + }
|
| + void FileOptions::set_has_py_generic_services() {
|
| +- _has_bits_[0] |= 0x00000200u;
|
| ++ _has_bits_[0] |= 0x00000400u;
|
| + }
|
| + void FileOptions::clear_has_py_generic_services() {
|
| +- _has_bits_[0] &= ~0x00000200u;
|
| ++ _has_bits_[0] &= ~0x00000400u;
|
| + }
|
| + void FileOptions::clear_py_generic_services() {
|
| + py_generic_services_ = false;
|
| +@@ -8842,13 +8904,13 @@ void FileOptions::clear_py_generic_services() {
|
| +
|
| + // optional bool deprecated = 23 [default = false];
|
| + bool FileOptions::has_deprecated() const {
|
| +- return (_has_bits_[0] & 0x00000400u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000800u) != 0;
|
| + }
|
| + void FileOptions::set_has_deprecated() {
|
| +- _has_bits_[0] |= 0x00000400u;
|
| ++ _has_bits_[0] |= 0x00000800u;
|
| + }
|
| + void FileOptions::clear_has_deprecated() {
|
| +- _has_bits_[0] &= ~0x00000400u;
|
| ++ _has_bits_[0] &= ~0x00000800u;
|
| + }
|
| + void FileOptions::clear_deprecated() {
|
| + deprecated_ = false;
|
| +@@ -8866,13 +8928,13 @@ void FileOptions::clear_deprecated() {
|
| +
|
| + // optional bool cc_enable_arenas = 31 [default = false];
|
| + bool FileOptions::has_cc_enable_arenas() const {
|
| +- return (_has_bits_[0] & 0x00000800u) != 0;
|
| ++ return (_has_bits_[0] & 0x00001000u) != 0;
|
| + }
|
| + void FileOptions::set_has_cc_enable_arenas() {
|
| +- _has_bits_[0] |= 0x00000800u;
|
| ++ _has_bits_[0] |= 0x00001000u;
|
| + }
|
| + void FileOptions::clear_has_cc_enable_arenas() {
|
| +- _has_bits_[0] &= ~0x00000800u;
|
| ++ _has_bits_[0] &= ~0x00001000u;
|
| + }
|
| + void FileOptions::clear_cc_enable_arenas() {
|
| + cc_enable_arenas_ = false;
|
| +@@ -8890,13 +8952,13 @@ void FileOptions::clear_cc_enable_arenas() {
|
| +
|
| + // optional string objc_class_prefix = 36;
|
| + bool FileOptions::has_objc_class_prefix() const {
|
| +- return (_has_bits_[0] & 0x00001000u) != 0;
|
| ++ return (_has_bits_[0] & 0x00002000u) != 0;
|
| + }
|
| + void FileOptions::set_has_objc_class_prefix() {
|
| +- _has_bits_[0] |= 0x00001000u;
|
| ++ _has_bits_[0] |= 0x00002000u;
|
| + }
|
| + void FileOptions::clear_has_objc_class_prefix() {
|
| +- _has_bits_[0] &= ~0x00001000u;
|
| ++ _has_bits_[0] &= ~0x00002000u;
|
| + }
|
| + void FileOptions::clear_objc_class_prefix() {
|
| + objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| +@@ -8943,13 +9005,13 @@ void FileOptions::clear_objc_class_prefix() {
|
| +
|
| + // optional string csharp_namespace = 37;
|
| + bool FileOptions::has_csharp_namespace() const {
|
| +- return (_has_bits_[0] & 0x00002000u) != 0;
|
| ++ return (_has_bits_[0] & 0x00004000u) != 0;
|
| + }
|
| + void FileOptions::set_has_csharp_namespace() {
|
| +- _has_bits_[0] |= 0x00002000u;
|
| ++ _has_bits_[0] |= 0x00004000u;
|
| + }
|
| + void FileOptions::clear_has_csharp_namespace() {
|
| +- _has_bits_[0] &= ~0x00002000u;
|
| ++ _has_bits_[0] &= ~0x00004000u;
|
| + }
|
| + void FileOptions::clear_csharp_namespace() {
|
| + csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| +@@ -8996,13 +9058,13 @@ void FileOptions::clear_csharp_namespace() {
|
| +
|
| + // optional bool javanano_use_deprecated_package = 38;
|
| + bool FileOptions::has_javanano_use_deprecated_package() const {
|
| +- return (_has_bits_[0] & 0x00004000u) != 0;
|
| ++ return (_has_bits_[0] & 0x00008000u) != 0;
|
| + }
|
| + void FileOptions::set_has_javanano_use_deprecated_package() {
|
| +- _has_bits_[0] |= 0x00004000u;
|
| ++ _has_bits_[0] |= 0x00008000u;
|
| + }
|
| + void FileOptions::clear_has_javanano_use_deprecated_package() {
|
| +- _has_bits_[0] &= ~0x00004000u;
|
| ++ _has_bits_[0] &= ~0x00008000u;
|
| + }
|
| + void FileOptions::clear_javanano_use_deprecated_package() {
|
| + javanano_use_deprecated_package_ = false;
|
| +@@ -9241,7 +9303,7 @@ bool MessageOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -9290,7 +9352,7 @@ void MessageOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.MessageOptions)
|
| +@@ -9331,7 +9393,7 @@ void MessageOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.MessageOptions)
|
| +@@ -9375,7 +9437,7 @@ int MessageOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -9877,7 +9939,7 @@ bool FieldOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -9938,7 +10000,7 @@ void FieldOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.FieldOptions)
|
| +@@ -9991,7 +10053,7 @@ void FieldOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FieldOptions)
|
| +@@ -10047,7 +10109,7 @@ int FieldOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -10480,7 +10542,7 @@ bool EnumOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -10519,7 +10581,7 @@ void EnumOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.EnumOptions)
|
| +@@ -10550,7 +10612,7 @@ void EnumOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.EnumOptions)
|
| +@@ -10584,7 +10646,7 @@ int EnumOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -10874,7 +10936,7 @@ bool EnumValueOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -10908,7 +10970,7 @@ void EnumValueOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.EnumValueOptions)
|
| +@@ -10934,7 +10996,7 @@ void EnumValueOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.EnumValueOptions)
|
| +@@ -10961,7 +11023,7 @@ int EnumValueOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -11223,7 +11285,7 @@ bool ServiceOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -11257,7 +11319,7 @@ void ServiceOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.ServiceOptions)
|
| +@@ -11283,7 +11345,7 @@ void ServiceOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.ServiceOptions)
|
| +@@ -11310,7 +11372,7 @@ int ServiceOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -11572,7 +11634,7 @@ bool MethodOptions::MergePartialFromCodedStream(
|
| + mutable_unknown_fields()));
|
| + continue;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -11606,7 +11668,7 @@ void MethodOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, output);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.MethodOptions)
|
| +@@ -11632,7 +11694,7 @@ void MethodOptions::SerializeWithCachedSizes(
|
| + 1000, 536870912, target);
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.MethodOptions)
|
| +@@ -11659,7 +11721,7 @@ int MethodOptions::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -11922,7 +11984,7 @@ bool UninterpretedOption_NamePart::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -11956,7 +12018,7 @@ void UninterpretedOption_NamePart::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.UninterpretedOption.NamePart)
|
| +@@ -11982,7 +12044,7 @@ void UninterpretedOption_NamePart::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.UninterpretedOption.NamePart)
|
| +@@ -12023,7 +12085,7 @@ int UninterpretedOption_NamePart::ByteSize() const {
|
| + }
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -12335,7 +12397,7 @@ bool UninterpretedOption::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -12401,7 +12463,7 @@ void UninterpretedOption::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.UninterpretedOption)
|
| +@@ -12462,7 +12524,7 @@ void UninterpretedOption::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.UninterpretedOption)
|
| +@@ -12524,7 +12586,7 @@ int UninterpretedOption::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -13161,7 +13223,7 @@ bool SourceCodeInfo_Location::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -13230,7 +13292,7 @@ void SourceCodeInfo_Location::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.SourceCodeInfo.Location)
|
| +@@ -13300,7 +13362,7 @@ void SourceCodeInfo_Location::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.SourceCodeInfo.Location)
|
| +@@ -13369,7 +13431,7 @@ int SourceCodeInfo_Location::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +@@ -13555,7 +13617,7 @@ bool SourceCodeInfo::MergePartialFromCodedStream(
|
| + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
| + goto success;
|
| + }
|
| +- DO_(::google::protobuf::internal::WireFormat::SkipField(
|
| ++ DO_(::google::protobuf::internal::WireFormatLite::SkipField(
|
| + input, tag, mutable_unknown_fields()));
|
| + break;
|
| + }
|
| +@@ -13580,7 +13642,7 @@ void SourceCodeInfo::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
|
| ++ ::google::protobuf::internal::WireFormatLite::SerializeUnknownFields(
|
| + unknown_fields(), output);
|
| + }
|
| + // @@protoc_insertion_point(serialize_end:google.protobuf.SourceCodeInfo)
|
| +@@ -13597,7 +13659,7 @@ void SourceCodeInfo::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| +- target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
|
| ++ target = ::google::protobuf::internal::WireFormatLite::SerializeUnknownFieldsToArray(
|
| + unknown_fields(), target);
|
| + }
|
| + // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.SourceCodeInfo)
|
| +@@ -13617,7 +13679,7 @@ int SourceCodeInfo::ByteSize() const {
|
| +
|
| + if (_internal_metadata_.have_unknown_fields()) {
|
| + total_size +=
|
| +- ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
|
| ++ ::google::protobuf::internal::WireFormatLite::ComputeUnknownFieldsSize(
|
| + unknown_fields());
|
| + }
|
| + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
| +diff --git a/third_party/protobuf/src/google/protobuf/descriptor.pb.h b/third_party/protobuf/src/google/protobuf/descriptor.pb.h
|
| +index 2aa076a..bbf9cbc 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/descriptor.pb.h
|
| ++++ b/third_party/protobuf/src/google/protobuf/descriptor.pb.h
|
| +@@ -1908,6 +1908,13 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
|
| + bool java_multiple_files() const;
|
| + void set_java_multiple_files(bool value);
|
| +
|
| ++ // optional bool retain_unknown_fields = 12 [default = false];
|
| ++ bool has_retain_unknown_fields() const;
|
| ++ void clear_retain_unknown_fields();
|
| ++ static const int kRetainUnknownFieldsFieldNumber = 12;
|
| ++ bool retain_unknown_fields() const;
|
| ++ void set_retain_unknown_fields(bool value);
|
| ++
|
| + // optional bool java_generate_equals_and_hash = 20 [default = false];
|
| + bool has_java_generate_equals_and_hash() const;
|
| + void clear_java_generate_equals_and_hash();
|
| +@@ -2028,6 +2035,8 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
|
| + inline void clear_has_java_outer_classname();
|
| + inline void set_has_java_multiple_files();
|
| + inline void clear_has_java_multiple_files();
|
| ++ inline void set_has_retain_unknown_fields();
|
| ++ inline void clear_has_retain_unknown_fields();
|
| + inline void set_has_java_generate_equals_and_hash();
|
| + inline void clear_has_java_generate_equals_and_hash();
|
| + inline void set_has_java_string_check_utf8();
|
| +@@ -2061,11 +2070,12 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
|
| + ::google::protobuf::internal::ArenaStringPtr java_package_;
|
| + ::google::protobuf::internal::ArenaStringPtr java_outer_classname_;
|
| + bool java_multiple_files_;
|
| ++ bool retain_unknown_fields_;
|
| + bool java_generate_equals_and_hash_;
|
| + bool java_string_check_utf8_;
|
| +- bool cc_generic_services_;
|
| + int optimize_for_;
|
| + ::google::protobuf::internal::ArenaStringPtr go_package_;
|
| ++ bool cc_generic_services_;
|
| + bool java_generic_services_;
|
| + bool py_generic_services_;
|
| + bool deprecated_;
|
| +@@ -5550,15 +5560,39 @@ inline void FileOptions::set_java_multiple_files(bool value) {
|
| + // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.java_multiple_files)
|
| + }
|
| +
|
| ++// optional bool retain_unknown_fields = 12 [default = false];
|
| ++inline bool FileOptions::has_retain_unknown_fields() const {
|
| ++ return (_has_bits_[0] & 0x00000008u) != 0;
|
| ++}
|
| ++inline void FileOptions::set_has_retain_unknown_fields() {
|
| ++ _has_bits_[0] |= 0x00000008u;
|
| ++}
|
| ++inline void FileOptions::clear_has_retain_unknown_fields() {
|
| ++ _has_bits_[0] &= ~0x00000008u;
|
| ++}
|
| ++inline void FileOptions::clear_retain_unknown_fields() {
|
| ++ retain_unknown_fields_ = false;
|
| ++ clear_has_retain_unknown_fields();
|
| ++}
|
| ++inline bool FileOptions::retain_unknown_fields() const {
|
| ++ // @@protoc_insertion_point(field_get:google.protobuf.FileOptions.retain_unknown_fields)
|
| ++ return retain_unknown_fields_;
|
| ++}
|
| ++inline void FileOptions::set_retain_unknown_fields(bool value) {
|
| ++ set_has_retain_unknown_fields();
|
| ++ retain_unknown_fields_ = value;
|
| ++ // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.retain_unknown_fields)
|
| ++}
|
| ++
|
| + // optional bool java_generate_equals_and_hash = 20 [default = false];
|
| + inline bool FileOptions::has_java_generate_equals_and_hash() const {
|
| +- return (_has_bits_[0] & 0x00000008u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000010u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_java_generate_equals_and_hash() {
|
| +- _has_bits_[0] |= 0x00000008u;
|
| ++ _has_bits_[0] |= 0x00000010u;
|
| + }
|
| + inline void FileOptions::clear_has_java_generate_equals_and_hash() {
|
| +- _has_bits_[0] &= ~0x00000008u;
|
| ++ _has_bits_[0] &= ~0x00000010u;
|
| + }
|
| + inline void FileOptions::clear_java_generate_equals_and_hash() {
|
| + java_generate_equals_and_hash_ = false;
|
| +@@ -5576,13 +5610,13 @@ inline void FileOptions::set_java_generate_equals_and_hash(bool value) {
|
| +
|
| + // optional bool java_string_check_utf8 = 27 [default = false];
|
| + inline bool FileOptions::has_java_string_check_utf8() const {
|
| +- return (_has_bits_[0] & 0x00000010u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000020u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_java_string_check_utf8() {
|
| +- _has_bits_[0] |= 0x00000010u;
|
| ++ _has_bits_[0] |= 0x00000020u;
|
| + }
|
| + inline void FileOptions::clear_has_java_string_check_utf8() {
|
| +- _has_bits_[0] &= ~0x00000010u;
|
| ++ _has_bits_[0] &= ~0x00000020u;
|
| + }
|
| + inline void FileOptions::clear_java_string_check_utf8() {
|
| + java_string_check_utf8_ = false;
|
| +@@ -5600,13 +5634,13 @@ inline void FileOptions::set_java_string_check_utf8(bool value) {
|
| +
|
| + // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
|
| + inline bool FileOptions::has_optimize_for() const {
|
| +- return (_has_bits_[0] & 0x00000020u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000040u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_optimize_for() {
|
| +- _has_bits_[0] |= 0x00000020u;
|
| ++ _has_bits_[0] |= 0x00000040u;
|
| + }
|
| + inline void FileOptions::clear_has_optimize_for() {
|
| +- _has_bits_[0] &= ~0x00000020u;
|
| ++ _has_bits_[0] &= ~0x00000040u;
|
| + }
|
| + inline void FileOptions::clear_optimize_for() {
|
| + optimize_for_ = 1;
|
| +@@ -5625,13 +5659,13 @@ inline void FileOptions::set_optimize_for(::google::protobuf::FileOptions_Optimi
|
| +
|
| + // optional string go_package = 11;
|
| + inline bool FileOptions::has_go_package() const {
|
| +- return (_has_bits_[0] & 0x00000040u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000080u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_go_package() {
|
| +- _has_bits_[0] |= 0x00000040u;
|
| ++ _has_bits_[0] |= 0x00000080u;
|
| + }
|
| + inline void FileOptions::clear_has_go_package() {
|
| +- _has_bits_[0] &= ~0x00000040u;
|
| ++ _has_bits_[0] &= ~0x00000080u;
|
| + }
|
| + inline void FileOptions::clear_go_package() {
|
| + go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| +@@ -5678,13 +5712,13 @@ inline void FileOptions::set_allocated_go_package(::std::string* go_package) {
|
| +
|
| + // optional bool cc_generic_services = 16 [default = false];
|
| + inline bool FileOptions::has_cc_generic_services() const {
|
| +- return (_has_bits_[0] & 0x00000080u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000100u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_cc_generic_services() {
|
| +- _has_bits_[0] |= 0x00000080u;
|
| ++ _has_bits_[0] |= 0x00000100u;
|
| + }
|
| + inline void FileOptions::clear_has_cc_generic_services() {
|
| +- _has_bits_[0] &= ~0x00000080u;
|
| ++ _has_bits_[0] &= ~0x00000100u;
|
| + }
|
| + inline void FileOptions::clear_cc_generic_services() {
|
| + cc_generic_services_ = false;
|
| +@@ -5702,13 +5736,13 @@ inline void FileOptions::set_cc_generic_services(bool value) {
|
| +
|
| + // optional bool java_generic_services = 17 [default = false];
|
| + inline bool FileOptions::has_java_generic_services() const {
|
| +- return (_has_bits_[0] & 0x00000100u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000200u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_java_generic_services() {
|
| +- _has_bits_[0] |= 0x00000100u;
|
| ++ _has_bits_[0] |= 0x00000200u;
|
| + }
|
| + inline void FileOptions::clear_has_java_generic_services() {
|
| +- _has_bits_[0] &= ~0x00000100u;
|
| ++ _has_bits_[0] &= ~0x00000200u;
|
| + }
|
| + inline void FileOptions::clear_java_generic_services() {
|
| + java_generic_services_ = false;
|
| +@@ -5726,13 +5760,13 @@ inline void FileOptions::set_java_generic_services(bool value) {
|
| +
|
| + // optional bool py_generic_services = 18 [default = false];
|
| + inline bool FileOptions::has_py_generic_services() const {
|
| +- return (_has_bits_[0] & 0x00000200u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000400u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_py_generic_services() {
|
| +- _has_bits_[0] |= 0x00000200u;
|
| ++ _has_bits_[0] |= 0x00000400u;
|
| + }
|
| + inline void FileOptions::clear_has_py_generic_services() {
|
| +- _has_bits_[0] &= ~0x00000200u;
|
| ++ _has_bits_[0] &= ~0x00000400u;
|
| + }
|
| + inline void FileOptions::clear_py_generic_services() {
|
| + py_generic_services_ = false;
|
| +@@ -5750,13 +5784,13 @@ inline void FileOptions::set_py_generic_services(bool value) {
|
| +
|
| + // optional bool deprecated = 23 [default = false];
|
| + inline bool FileOptions::has_deprecated() const {
|
| +- return (_has_bits_[0] & 0x00000400u) != 0;
|
| ++ return (_has_bits_[0] & 0x00000800u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_deprecated() {
|
| +- _has_bits_[0] |= 0x00000400u;
|
| ++ _has_bits_[0] |= 0x00000800u;
|
| + }
|
| + inline void FileOptions::clear_has_deprecated() {
|
| +- _has_bits_[0] &= ~0x00000400u;
|
| ++ _has_bits_[0] &= ~0x00000800u;
|
| + }
|
| + inline void FileOptions::clear_deprecated() {
|
| + deprecated_ = false;
|
| +@@ -5774,13 +5808,13 @@ inline void FileOptions::set_deprecated(bool value) {
|
| +
|
| + // optional bool cc_enable_arenas = 31 [default = false];
|
| + inline bool FileOptions::has_cc_enable_arenas() const {
|
| +- return (_has_bits_[0] & 0x00000800u) != 0;
|
| ++ return (_has_bits_[0] & 0x00001000u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_cc_enable_arenas() {
|
| +- _has_bits_[0] |= 0x00000800u;
|
| ++ _has_bits_[0] |= 0x00001000u;
|
| + }
|
| + inline void FileOptions::clear_has_cc_enable_arenas() {
|
| +- _has_bits_[0] &= ~0x00000800u;
|
| ++ _has_bits_[0] &= ~0x00001000u;
|
| + }
|
| + inline void FileOptions::clear_cc_enable_arenas() {
|
| + cc_enable_arenas_ = false;
|
| +@@ -5798,13 +5832,13 @@ inline void FileOptions::set_cc_enable_arenas(bool value) {
|
| +
|
| + // optional string objc_class_prefix = 36;
|
| + inline bool FileOptions::has_objc_class_prefix() const {
|
| +- return (_has_bits_[0] & 0x00001000u) != 0;
|
| ++ return (_has_bits_[0] & 0x00002000u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_objc_class_prefix() {
|
| +- _has_bits_[0] |= 0x00001000u;
|
| ++ _has_bits_[0] |= 0x00002000u;
|
| + }
|
| + inline void FileOptions::clear_has_objc_class_prefix() {
|
| +- _has_bits_[0] &= ~0x00001000u;
|
| ++ _has_bits_[0] &= ~0x00002000u;
|
| + }
|
| + inline void FileOptions::clear_objc_class_prefix() {
|
| + objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| +@@ -5851,13 +5885,13 @@ inline void FileOptions::set_allocated_objc_class_prefix(::std::string* objc_cla
|
| +
|
| + // optional string csharp_namespace = 37;
|
| + inline bool FileOptions::has_csharp_namespace() const {
|
| +- return (_has_bits_[0] & 0x00002000u) != 0;
|
| ++ return (_has_bits_[0] & 0x00004000u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_csharp_namespace() {
|
| +- _has_bits_[0] |= 0x00002000u;
|
| ++ _has_bits_[0] |= 0x00004000u;
|
| + }
|
| + inline void FileOptions::clear_has_csharp_namespace() {
|
| +- _has_bits_[0] &= ~0x00002000u;
|
| ++ _has_bits_[0] &= ~0x00004000u;
|
| + }
|
| + inline void FileOptions::clear_csharp_namespace() {
|
| + csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
| +@@ -5904,13 +5938,13 @@ inline void FileOptions::set_allocated_csharp_namespace(::std::string* csharp_na
|
| +
|
| + // optional bool javanano_use_deprecated_package = 38;
|
| + inline bool FileOptions::has_javanano_use_deprecated_package() const {
|
| +- return (_has_bits_[0] & 0x00004000u) != 0;
|
| ++ return (_has_bits_[0] & 0x00008000u) != 0;
|
| + }
|
| + inline void FileOptions::set_has_javanano_use_deprecated_package() {
|
| +- _has_bits_[0] |= 0x00004000u;
|
| ++ _has_bits_[0] |= 0x00008000u;
|
| + }
|
| + inline void FileOptions::clear_has_javanano_use_deprecated_package() {
|
| +- _has_bits_[0] &= ~0x00004000u;
|
| ++ _has_bits_[0] &= ~0x00008000u;
|
| + }
|
| + inline void FileOptions::clear_javanano_use_deprecated_package() {
|
| + javanano_use_deprecated_package_ = false;
|
| +diff --git a/third_party/protobuf/src/google/protobuf/descriptor.proto b/third_party/protobuf/src/google/protobuf/descriptor.proto
|
| +index 9d3dd8f..4e38337 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/descriptor.proto
|
| ++++ b/third_party/protobuf/src/google/protobuf/descriptor.proto
|
| +@@ -299,6 +299,12 @@ message FileOptions {
|
| + // top-level extensions defined in the file.
|
| + optional bool java_multiple_files = 10 [default=false];
|
| +
|
| ++ // If set true, then code generators will store unknown fields so that
|
| ++ // reserializing a message will retain them. This is the default behaviour
|
| ++ // unless LITE_RUNTIME is specified. Therefore, this option only makes sense
|
| ++ // when LITE_RUNTIME is in use.
|
| ++ optional bool retain_unknown_fields = 12 [default=false];
|
| ++
|
| + // If set true, then the Java code generator will generate equals() and
|
| + // hashCode() methods for all messages defined in the .proto file.
|
| + // - In the full runtime, this is purely a speed optimization, as the
|
| +diff --git a/third_party/protobuf/src/google/protobuf/extension_set.cc b/third_party/protobuf/src/google/protobuf/extension_set.cc
|
| +index 649ae18..c315eca 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/extension_set.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/extension_set.cc
|
| +@@ -38,6 +38,7 @@
|
| + #include <google/protobuf/extension_set.h>
|
| + #include <google/protobuf/message_lite.h>
|
| + #include <google/protobuf/io/coded_stream.h>
|
| ++#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
|
| + #include <google/protobuf/wire_format_lite_inl.h>
|
| + #include <google/protobuf/repeated_field.h>
|
| + #include <google/protobuf/stubs/map_util.h>
|
| +@@ -1318,7 +1319,14 @@ bool ExtensionSet::ParseFieldWithExtensionInfo(
|
| +
|
| + bool ExtensionSet::ParseField(uint32 tag, io::CodedInputStream* input,
|
| + const MessageLite* containing_type) {
|
| +- FieldSkipper skipper;
|
| ++ return ParseField(tag, input, containing_type,
|
| ++ static_cast<UnknownFieldSet*>(NULL));
|
| ++}
|
| ++
|
| ++bool ExtensionSet::ParseField(uint32 tag, io::CodedInputStream* input,
|
| ++ const MessageLite* containing_type,
|
| ++ UnknownFieldSet* unknown_fields) {
|
| ++ FieldSkipper skipper(unknown_fields);
|
| + GeneratedExtensionFinder finder(containing_type);
|
| + return ParseField(tag, input, &finder, &skipper);
|
| + }
|
| +@@ -1332,14 +1340,137 @@ bool ExtensionSet::ParseField(uint32 tag, io::CodedInputStream* input,
|
| + }
|
| +
|
| + // Defined in extension_set_heavy.cc.
|
| +-// bool ExtensionSet::ParseField(uint32 tag, io::CodedInputStream* input,
|
| +-// const MessageLite* containing_type,
|
| +-// UnknownFieldSet* unknown_fields)
|
| ++// bool ExtensionSet::ParseFieldHeavy(uint32 tag, io::CodedInputStream* input,
|
| ++// const Message* containing_type,
|
| ++// UnknownFieldSet* unknown_fields)
|
| ++
|
| ++bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| ++ ExtensionFinder* extension_finder,
|
| ++ FieldSkipper* field_skipper) {
|
| ++ while (true) {
|
| ++ const uint32 tag = input->ReadTag();
|
| ++ switch (tag) {
|
| ++ case 0:
|
| ++ return true;
|
| ++ case WireFormatLite::kMessageSetItemStartTag:
|
| ++ if (!ParseMessageSetItem(input, extension_finder, field_skipper)) {
|
| ++ return false;
|
| ++ }
|
| ++ break;
|
| ++ default:
|
| ++ if (!ParseField(tag, input, extension_finder, field_skipper)) {
|
| ++ return false;
|
| ++ }
|
| ++ break;
|
| ++ }
|
| ++ }
|
| ++}
|
| ++
|
| ++bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| ++ const MessageLite* containing_type) {
|
| ++ return ParseMessageSet(input, containing_type,
|
| ++ static_cast<UnknownFieldSet*>(NULL));
|
| ++}
|
| ++
|
| ++bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| ++ const MessageLite* containing_type,
|
| ++ UnknownFieldSet* unknown_fields) {
|
| ++ FieldSkipper skipper(unknown_fields);
|
| ++ GeneratedExtensionFinder finder(containing_type);
|
| ++ return ParseMessageSet(input, &finder, &skipper);
|
| ++}
|
| +
|
| + // Defined in extension_set_heavy.cc.
|
| +-// bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| +-// const MessageLite* containing_type,
|
| +-// UnknownFieldSet* unknown_fields);
|
| ++// bool ExtensionSet::ParseMessageSetHeavy(io::CodedInputStream* input,
|
| ++// const Message* containing_type,
|
| ++// UnknownFieldSet* unknown_fields);
|
| ++
|
| ++bool ExtensionSet::ParseFieldMaybeLazily(
|
| ++ int wire_type, int field_number, io::CodedInputStream* input,
|
| ++ ExtensionFinder* extension_finder,
|
| ++ FieldSkipper* field_skipper) {
|
| ++ return ParseField(WireFormatLite::MakeTag(
|
| ++ field_number, static_cast<WireFormatLite::WireType>(wire_type)),
|
| ++ input, extension_finder, field_skipper);
|
| ++}
|
| ++
|
| ++bool ExtensionSet::ParseMessageSetItem(io::CodedInputStream* input,
|
| ++ ExtensionFinder* extension_finder,
|
| ++ FieldSkipper* field_skipper) {
|
| ++ // TODO(kenton): It would be nice to share code between this and
|
| ++ // WireFormatLite::ParseAndMergeMessageSetItem(), but I think the
|
| ++ // differences would be hard to factor out.
|
| ++
|
| ++ // This method parses a group which should contain two fields:
|
| ++ // required int32 type_id = 2;
|
| ++ // required data message = 3;
|
| ++
|
| ++ uint32 last_type_id = 0;
|
| ++
|
| ++ // If we see message data before the type_id, we'll append it to this so
|
| ++ // we can parse it later.
|
| ++ string message_data;
|
| ++
|
| ++ while (true) {
|
| ++ const uint32 tag = input->ReadTag();
|
| ++ if (tag == 0) return false;
|
| ++
|
| ++ switch (tag) {
|
| ++ case WireFormatLite::kMessageSetTypeIdTag: {
|
| ++ uint32 type_id;
|
| ++ if (!input->ReadVarint32(&type_id)) return false;
|
| ++ last_type_id = type_id;
|
| ++
|
| ++ if (!message_data.empty()) {
|
| ++ // We saw some message data before the type_id. Have to parse it
|
| ++ // now.
|
| ++ io::CodedInputStream sub_input(
|
| ++ reinterpret_cast<const uint8*>(message_data.data()),
|
| ++ message_data.size());
|
| ++ if (!ParseFieldMaybeLazily(WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
|
| ++ last_type_id, &sub_input,
|
| ++ extension_finder, field_skipper)) {
|
| ++ return false;
|
| ++ }
|
| ++ message_data.clear();
|
| ++ }
|
| ++
|
| ++ break;
|
| ++ }
|
| ++
|
| ++ case WireFormatLite::kMessageSetMessageTag: {
|
| ++ if (last_type_id == 0) {
|
| ++ // We haven't seen a type_id yet. Append this data to message_data.
|
| ++ string temp;
|
| ++ uint32 length;
|
| ++ if (!input->ReadVarint32(&length)) return false;
|
| ++ if (!input->ReadString(&temp, length)) return false;
|
| ++ io::StringOutputStream output_stream(&message_data);
|
| ++ io::CodedOutputStream coded_output(&output_stream);
|
| ++ coded_output.WriteVarint32(length);
|
| ++ coded_output.WriteString(temp);
|
| ++ } else {
|
| ++ // Already saw type_id, so we can parse this directly.
|
| ++ if (!ParseFieldMaybeLazily(WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
|
| ++ last_type_id, input,
|
| ++ extension_finder, field_skipper)) {
|
| ++ return false;
|
| ++ }
|
| ++ }
|
| ++
|
| ++ break;
|
| ++ }
|
| ++
|
| ++ case WireFormatLite::kMessageSetItemEndTag: {
|
| ++ return true;
|
| ++ }
|
| ++
|
| ++ default: {
|
| ++ if (!field_skipper->SkipField(input, tag)) return false;
|
| ++ }
|
| ++ }
|
| ++ }
|
| ++}
|
| +
|
| + void ExtensionSet::SerializeWithCachedSizes(
|
| + int start_field_number, int end_field_number,
|
| +diff --git a/third_party/protobuf/src/google/protobuf/extension_set.h b/third_party/protobuf/src/google/protobuf/extension_set.h
|
| +index c371e01..25acee7 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/extension_set.h
|
| ++++ b/third_party/protobuf/src/google/protobuf/extension_set.h
|
| +@@ -138,9 +138,6 @@ class LIBPROTOBUF_EXPORT GeneratedExtensionFinder : public ExtensionFinder {
|
| + const MessageLite* containing_type_;
|
| + };
|
| +
|
| +-// A FieldSkipper used for parsing MessageSet.
|
| +-class MessageSetFieldSkipper;
|
| +-
|
| + // Note: extension_set_heavy.cc defines DescriptorPoolExtensionFinder for
|
| + // finding extensions from a DescriptorPool.
|
| +
|
| +@@ -366,25 +363,31 @@ class LIBPROTOBUF_EXPORT ExtensionSet {
|
| + bool ParseField(uint32 tag, io::CodedInputStream* input,
|
| + const MessageLite* containing_type);
|
| + bool ParseField(uint32 tag, io::CodedInputStream* input,
|
| +- const Message* containing_type,
|
| ++ const MessageLite* containing_type,
|
| + UnknownFieldSet* unknown_fields);
|
| + bool ParseField(uint32 tag, io::CodedInputStream* input,
|
| + const MessageLite* containing_type,
|
| + io::CodedOutputStream* unknown_fields);
|
| ++ bool ParseFieldHeavy(uint32 tag, io::CodedInputStream* input,
|
| ++ const Message* containing_type,
|
| ++ UnknownFieldSet* unknown_fields);
|
| +
|
| + // Parse an entire message in MessageSet format. Such messages have no
|
| + // fields, only extensions.
|
| + bool ParseMessageSet(io::CodedInputStream* input,
|
| + ExtensionFinder* extension_finder,
|
| +- MessageSetFieldSkipper* field_skipper);
|
| ++ FieldSkipper* field_skipper);
|
| +
|
| + // Specific versions for lite or full messages (constructs the appropriate
|
| + // FieldSkipper automatically).
|
| + bool ParseMessageSet(io::CodedInputStream* input,
|
| + const MessageLite* containing_type);
|
| + bool ParseMessageSet(io::CodedInputStream* input,
|
| +- const Message* containing_type,
|
| ++ const MessageLite* containing_type,
|
| + UnknownFieldSet* unknown_fields);
|
| ++ bool ParseMessageSetHeavy(io::CodedInputStream* input,
|
| ++ const Message* containing_type,
|
| ++ UnknownFieldSet* unknown_fields);
|
| +
|
| + // Write all extension fields with field numbers in the range
|
| + // [start_field_number, end_field_number)
|
| +@@ -571,7 +574,7 @@ class LIBPROTOBUF_EXPORT ExtensionSet {
|
| + bool ParseFieldMaybeLazily(int wire_type, int field_number,
|
| + io::CodedInputStream* input,
|
| + ExtensionFinder* extension_finder,
|
| +- MessageSetFieldSkipper* field_skipper);
|
| ++ FieldSkipper* field_skipper);
|
| +
|
| + // Gets the extension with the given number, creating it if it does not
|
| + // already exist. Returns true if the extension did not already exist.
|
| +@@ -582,7 +585,7 @@ class LIBPROTOBUF_EXPORT ExtensionSet {
|
| + // tag has been read.
|
| + bool ParseMessageSetItem(io::CodedInputStream* input,
|
| + ExtensionFinder* extension_finder,
|
| +- MessageSetFieldSkipper* field_skipper);
|
| ++ FieldSkipper* field_skipper);
|
| +
|
| + // Hack: RepeatedPtrFieldBase declares ExtensionSet as a friend. This
|
| + // friendship should automatically extend to ExtensionSet::Extension, but
|
| +diff --git a/third_party/protobuf/src/google/protobuf/extension_set_heavy.cc b/third_party/protobuf/src/google/protobuf/extension_set_heavy.cc
|
| +index 330bd82..58f742b 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/extension_set_heavy.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/extension_set_heavy.cc
|
| +@@ -48,30 +48,6 @@ namespace google {
|
| + namespace protobuf {
|
| + namespace internal {
|
| +
|
| +-// A FieldSkipper used to store unknown MessageSet fields into UnknownFieldSet.
|
| +-class MessageSetFieldSkipper
|
| +- : public UnknownFieldSetFieldSkipper {
|
| +- public:
|
| +- explicit MessageSetFieldSkipper(UnknownFieldSet* unknown_fields)
|
| +- : UnknownFieldSetFieldSkipper(unknown_fields) {}
|
| +- virtual ~MessageSetFieldSkipper() {}
|
| +-
|
| +- virtual bool SkipMessageSetField(io::CodedInputStream* input,
|
| +- int field_number);
|
| +-};
|
| +-bool MessageSetFieldSkipper::SkipMessageSetField(
|
| +- io::CodedInputStream* input, int field_number) {
|
| +- uint32 length;
|
| +- if (!input->ReadVarint32(&length)) return false;
|
| +- if (unknown_fields_ == NULL) {
|
| +- return input->Skip(length);
|
| +- } else {
|
| +- return input->ReadString(
|
| +- unknown_fields_->AddLengthDelimited(field_number), length);
|
| +- }
|
| +-}
|
| +-
|
| +-
|
| + // Implementation of ExtensionFinder which finds extensions in a given
|
| + // DescriptorPool, using the given MessageFactory to construct sub-objects.
|
| + // This class is implemented in extension_set_heavy.cc.
|
| +@@ -274,10 +250,10 @@ bool DescriptorPoolExtensionFinder::Find(int number, ExtensionInfo* output) {
|
| + }
|
| + }
|
| +
|
| +-bool ExtensionSet::ParseField(uint32 tag, io::CodedInputStream* input,
|
| +- const Message* containing_type,
|
| +- UnknownFieldSet* unknown_fields) {
|
| +- UnknownFieldSetFieldSkipper skipper(unknown_fields);
|
| ++bool ExtensionSet::ParseFieldHeavy(uint32 tag, io::CodedInputStream* input,
|
| ++ const Message* containing_type,
|
| ++ UnknownFieldSet* unknown_fields) {
|
| ++ FieldSkipper skipper(unknown_fields);
|
| + if (input->GetExtensionPool() == NULL) {
|
| + GeneratedExtensionFinder finder(containing_type);
|
| + return ParseField(tag, input, &finder, &skipper);
|
| +@@ -289,10 +265,10 @@ bool ExtensionSet::ParseField(uint32 tag, io::CodedInputStream* input,
|
| + }
|
| + }
|
| +
|
| +-bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| +- const Message* containing_type,
|
| +- UnknownFieldSet* unknown_fields) {
|
| +- MessageSetFieldSkipper skipper(unknown_fields);
|
| ++bool ExtensionSet::ParseMessageSetHeavy(io::CodedInputStream* input,
|
| ++ const Message* containing_type,
|
| ++ UnknownFieldSet* unknown_fields) {
|
| ++ FieldSkipper skipper(unknown_fields);
|
| + if (input->GetExtensionPool() == NULL) {
|
| + GeneratedExtensionFinder finder(containing_type);
|
| + return ParseMessageSet(input, &finder, &skipper);
|
| +@@ -541,122 +517,6 @@ uint8* ExtensionSet::Extension::SerializeMessageSetItemWithCachedSizesToArray(
|
| + }
|
| +
|
| +
|
| +-bool ExtensionSet::ParseFieldMaybeLazily(
|
| +- int wire_type, int field_number, io::CodedInputStream* input,
|
| +- ExtensionFinder* extension_finder,
|
| +- MessageSetFieldSkipper* field_skipper) {
|
| +- return ParseField(WireFormatLite::MakeTag(
|
| +- field_number, static_cast<WireFormatLite::WireType>(wire_type)),
|
| +- input, extension_finder, field_skipper);
|
| +-}
|
| +-
|
| +-bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| +- ExtensionFinder* extension_finder,
|
| +- MessageSetFieldSkipper* field_skipper) {
|
| +- while (true) {
|
| +- const uint32 tag = input->ReadTag();
|
| +- switch (tag) {
|
| +- case 0:
|
| +- return true;
|
| +- case WireFormatLite::kMessageSetItemStartTag:
|
| +- if (!ParseMessageSetItem(input, extension_finder, field_skipper)) {
|
| +- return false;
|
| +- }
|
| +- break;
|
| +- default:
|
| +- if (!ParseField(tag, input, extension_finder, field_skipper)) {
|
| +- return false;
|
| +- }
|
| +- break;
|
| +- }
|
| +- }
|
| +-}
|
| +-
|
| +-bool ExtensionSet::ParseMessageSet(io::CodedInputStream* input,
|
| +- const MessageLite* containing_type) {
|
| +- MessageSetFieldSkipper skipper(NULL);
|
| +- GeneratedExtensionFinder finder(containing_type);
|
| +- return ParseMessageSet(input, &finder, &skipper);
|
| +-}
|
| +-
|
| +-bool ExtensionSet::ParseMessageSetItem(io::CodedInputStream* input,
|
| +- ExtensionFinder* extension_finder,
|
| +- MessageSetFieldSkipper* field_skipper) {
|
| +- // TODO(kenton): It would be nice to share code between this and
|
| +- // WireFormatLite::ParseAndMergeMessageSetItem(), but I think the
|
| +- // differences would be hard to factor out.
|
| +-
|
| +- // This method parses a group which should contain two fields:
|
| +- // required int32 type_id = 2;
|
| +- // required data message = 3;
|
| +-
|
| +- uint32 last_type_id = 0;
|
| +-
|
| +- // If we see message data before the type_id, we'll append it to this so
|
| +- // we can parse it later.
|
| +- string message_data;
|
| +-
|
| +- while (true) {
|
| +- const uint32 tag = input->ReadTag();
|
| +- if (tag == 0) return false;
|
| +-
|
| +- switch (tag) {
|
| +- case WireFormatLite::kMessageSetTypeIdTag: {
|
| +- uint32 type_id;
|
| +- if (!input->ReadVarint32(&type_id)) return false;
|
| +- last_type_id = type_id;
|
| +-
|
| +- if (!message_data.empty()) {
|
| +- // We saw some message data before the type_id. Have to parse it
|
| +- // now.
|
| +- io::CodedInputStream sub_input(
|
| +- reinterpret_cast<const uint8*>(message_data.data()),
|
| +- message_data.size());
|
| +- if (!ParseFieldMaybeLazily(WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
|
| +- last_type_id, &sub_input,
|
| +- extension_finder, field_skipper)) {
|
| +- return false;
|
| +- }
|
| +- message_data.clear();
|
| +- }
|
| +-
|
| +- break;
|
| +- }
|
| +-
|
| +- case WireFormatLite::kMessageSetMessageTag: {
|
| +- if (last_type_id == 0) {
|
| +- // We haven't seen a type_id yet. Append this data to message_data.
|
| +- string temp;
|
| +- uint32 length;
|
| +- if (!input->ReadVarint32(&length)) return false;
|
| +- if (!input->ReadString(&temp, length)) return false;
|
| +- io::StringOutputStream output_stream(&message_data);
|
| +- io::CodedOutputStream coded_output(&output_stream);
|
| +- coded_output.WriteVarint32(length);
|
| +- coded_output.WriteString(temp);
|
| +- } else {
|
| +- // Already saw type_id, so we can parse this directly.
|
| +- if (!ParseFieldMaybeLazily(WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
|
| +- last_type_id, input,
|
| +- extension_finder, field_skipper)) {
|
| +- return false;
|
| +- }
|
| +- }
|
| +-
|
| +- break;
|
| +- }
|
| +-
|
| +- case WireFormatLite::kMessageSetItemEndTag: {
|
| +- return true;
|
| +- }
|
| +-
|
| +- default: {
|
| +- if (!field_skipper->SkipField(input, tag)) return false;
|
| +- }
|
| +- }
|
| +- }
|
| +-}
|
| +-
|
| + void ExtensionSet::Extension::SerializeMessageSetItemWithCachedSizes(
|
| + int number,
|
| + io::CodedOutputStream* output) const {
|
| +diff --git a/third_party/protobuf/src/google/protobuf/generated_message_reflection.cc b/third_party/protobuf/src/google/protobuf/generated_message_reflection.cc
|
| +index 412c48a..0b01e73 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/generated_message_reflection.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/generated_message_reflection.cc
|
| +@@ -57,18 +57,6 @@ bool IsMapFieldInApi(const FieldDescriptor* field) {
|
| + }
|
| + } // anonymous namespace
|
| +
|
| +-int StringSpaceUsedExcludingSelf(const string& str) {
|
| +- const void* start = &str;
|
| +- const void* end = &str + 1;
|
| +-
|
| +- if (start <= str.data() && str.data() < end) {
|
| +- // The string's data is stored inside the string object itself.
|
| +- return 0;
|
| +- } else {
|
| +- return str.capacity();
|
| +- }
|
| +-}
|
| +-
|
| + bool ParseNamedEnum(const EnumDescriptor* descriptor,
|
| + const string& name,
|
| + int* value) {
|
| +diff --git a/third_party/protobuf/src/google/protobuf/generated_message_util.cc b/third_party/protobuf/src/google/protobuf/generated_message_util.cc
|
| +index 53cae8b..e8fb398 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/generated_message_util.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/generated_message_util.cc
|
| +@@ -60,6 +60,17 @@ void InitEmptyString() {
|
| + OnShutdown(&DeleteEmptyString);
|
| + }
|
| +
|
| ++int StringSpaceUsedExcludingSelf(const string& str) {
|
| ++ const void* start = &str;
|
| ++ const void* end = &str + 1;
|
| ++
|
| ++ if (start <= str.data() && str.data() < end) {
|
| ++ // The string's data is stored inside the string object itself.
|
| ++ return 0;
|
| ++ } else {
|
| ++ return str.capacity();
|
| ++ }
|
| ++}
|
| +
|
| + } // namespace internal
|
| + } // namespace protobuf
|
| +diff --git a/third_party/protobuf/src/google/protobuf/unknown_field_set.cc b/third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| +index 93f0f20..7e04a0e 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| +@@ -35,10 +35,12 @@
|
| + #include <google/protobuf/unknown_field_set.h>
|
| +
|
| + #include <google/protobuf/stubs/common.h>
|
| ++#include <google/protobuf/stubs/once.h>
|
| + #include <google/protobuf/io/coded_stream.h>
|
| + #include <google/protobuf/io/zero_copy_stream.h>
|
| +-#include <google/protobuf/io/zero_copy_stream_impl.h>
|
| +-#include <google/protobuf/wire_format.h>
|
| ++#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
|
| ++#include <google/protobuf/generated_message_util.h>
|
| ++#include <google/protobuf/wire_format_lite.h>
|
| + #include <google/protobuf/stubs/stl_util.h>
|
| +
|
| + namespace google {
|
| +@@ -254,7 +256,7 @@ void UnknownFieldSet::DeleteByNumber(int number) {
|
| +
|
| + bool UnknownFieldSet::MergeFromCodedStream(io::CodedInputStream* input) {
|
| + UnknownFieldSet other;
|
| +- if (internal::WireFormat::SkipMessage(input, &other) &&
|
| ++ if (internal::WireFormatLite::SkipMessage(input, &other) &&
|
| + input->ConsumedEntireMessage()) {
|
| + MergeFromAndDestroy(&other);
|
| + return true;
|
| +diff --git a/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc b/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc
|
| +index 53a0e47..8e0897d 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc
|
| +@@ -162,7 +162,7 @@ Status ProtoStreamObjectSource::WriteMessage(const google::protobuf::Type& type,
|
| + if (field == NULL) {
|
| + // If we didn't find a field, skip this unknown tag.
|
| + // TODO(wpoon): Check return boolean value.
|
| +- WireFormat::SkipField(stream_, tag, NULL);
|
| ++ WireFormatLite::SkipField(stream_, tag);
|
| + tag = stream_->ReadTag();
|
| + continue;
|
| + }
|
| +@@ -239,7 +239,7 @@ Status ProtoStreamObjectSource::RenderMapEntry(
|
| + for (uint32 tag = stream_->ReadTag(); tag != 0; tag = stream_->ReadTag()) {
|
| + const google::protobuf::Field* field = FindAndVerifyField(*type, tag);
|
| + if (field == NULL) {
|
| +- WireFormat::SkipField(stream_, tag, NULL);
|
| ++ WireFormatLite::SkipField(stream_, tag);
|
| + continue;
|
| + }
|
| + // Map field numbers are key = 1 and value = 2
|
| +@@ -506,7 +506,7 @@ Status ProtoStreamObjectSource::RenderStructValue(
|
| + tag = os->stream_->ReadTag()) {
|
| + field = os->FindAndVerifyField(type, tag);
|
| + if (field == NULL) {
|
| +- WireFormat::SkipField(os->stream_, tag, NULL);
|
| ++ WireFormatLite::SkipField(os->stream_, tag);
|
| + continue;
|
| + }
|
| + RETURN_IF_ERROR(os->RenderField(field, field_name, ow));
|
| +@@ -530,7 +530,7 @@ Status ProtoStreamObjectSource::RenderStructListValue(
|
| + while (tag != 0) {
|
| + const google::protobuf::Field* field = os->FindAndVerifyField(type, tag);
|
| + if (field == NULL) {
|
| +- WireFormat::SkipField(os->stream_, tag, NULL);
|
| ++ WireFormatLite::SkipField(os->stream_, tag);
|
| + tag = os->stream_->ReadTag();
|
| + continue;
|
| + }
|
| +@@ -552,7 +552,7 @@ Status ProtoStreamObjectSource::RenderAny(const ProtoStreamObjectSource* os,
|
| + for (tag = os->stream_->ReadTag(); tag != 0; tag = os->stream_->ReadTag()) {
|
| + const google::protobuf::Field* field = os->FindAndVerifyField(type, tag);
|
| + if (field == NULL) {
|
| +- WireFormat::SkipField(os->stream_, tag, NULL);
|
| ++ WireFormatLite::SkipField(os->stream_, tag);
|
| + continue;
|
| + }
|
| + // 'type_url' has field number of 1 and 'value' has field number 2
|
| +@@ -982,7 +982,7 @@ std::pair<int64, int32> ProtoStreamObjectSource::ReadSecondsAndNanos(
|
| + for (tag = stream_->ReadTag(); tag != 0; tag = stream_->ReadTag()) {
|
| + const google::protobuf::Field* field = FindAndVerifyField(type, tag);
|
| + if (field == NULL) {
|
| +- WireFormat::SkipField(stream_, tag, NULL);
|
| ++ WireFormatLite::SkipField(stream_, tag);
|
| + continue;
|
| + }
|
| + // 'seconds' has field number of 1 and 'nanos' has field number 2
|
| +diff --git a/third_party/protobuf/src/google/protobuf/wire_format.cc b/third_party/protobuf/src/google/protobuf/wire_format.cc
|
| +index c5db963..7021f8e 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/wire_format.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/wire_format.cc
|
| +@@ -54,329 +54,6 @@ namespace google {
|
| + namespace protobuf {
|
| + namespace internal {
|
| +
|
| +-// ===================================================================
|
| +-
|
| +-bool UnknownFieldSetFieldSkipper::SkipField(
|
| +- io::CodedInputStream* input, uint32 tag) {
|
| +- return WireFormat::SkipField(input, tag, unknown_fields_);
|
| +-}
|
| +-
|
| +-bool UnknownFieldSetFieldSkipper::SkipMessage(io::CodedInputStream* input) {
|
| +- return WireFormat::SkipMessage(input, unknown_fields_);
|
| +-}
|
| +-
|
| +-void UnknownFieldSetFieldSkipper::SkipUnknownEnum(
|
| +- int field_number, int value) {
|
| +- unknown_fields_->AddVarint(field_number, value);
|
| +-}
|
| +-
|
| +-bool WireFormat::SkipField(io::CodedInputStream* input, uint32 tag,
|
| +- UnknownFieldSet* unknown_fields) {
|
| +- int number = WireFormatLite::GetTagFieldNumber(tag);
|
| +-
|
| +- switch (WireFormatLite::GetTagWireType(tag)) {
|
| +- case WireFormatLite::WIRETYPE_VARINT: {
|
| +- uint64 value;
|
| +- if (!input->ReadVarint64(&value)) return false;
|
| +- if (unknown_fields != NULL) unknown_fields->AddVarint(number, value);
|
| +- return true;
|
| +- }
|
| +- case WireFormatLite::WIRETYPE_FIXED64: {
|
| +- uint64 value;
|
| +- if (!input->ReadLittleEndian64(&value)) return false;
|
| +- if (unknown_fields != NULL) unknown_fields->AddFixed64(number, value);
|
| +- return true;
|
| +- }
|
| +- case WireFormatLite::WIRETYPE_LENGTH_DELIMITED: {
|
| +- uint32 length;
|
| +- if (!input->ReadVarint32(&length)) return false;
|
| +- if (unknown_fields == NULL) {
|
| +- if (!input->Skip(length)) return false;
|
| +- } else {
|
| +- if (!input->ReadString(unknown_fields->AddLengthDelimited(number),
|
| +- length)) {
|
| +- return false;
|
| +- }
|
| +- }
|
| +- return true;
|
| +- }
|
| +- case WireFormatLite::WIRETYPE_START_GROUP: {
|
| +- if (!input->IncrementRecursionDepth()) return false;
|
| +- if (!SkipMessage(input, (unknown_fields == NULL) ?
|
| +- NULL : unknown_fields->AddGroup(number))) {
|
| +- return false;
|
| +- }
|
| +- input->DecrementRecursionDepth();
|
| +- // Check that the ending tag matched the starting tag.
|
| +- if (!input->LastTagWas(WireFormatLite::MakeTag(
|
| +- WireFormatLite::GetTagFieldNumber(tag),
|
| +- WireFormatLite::WIRETYPE_END_GROUP))) {
|
| +- return false;
|
| +- }
|
| +- return true;
|
| +- }
|
| +- case WireFormatLite::WIRETYPE_END_GROUP: {
|
| +- return false;
|
| +- }
|
| +- case WireFormatLite::WIRETYPE_FIXED32: {
|
| +- uint32 value;
|
| +- if (!input->ReadLittleEndian32(&value)) return false;
|
| +- if (unknown_fields != NULL) unknown_fields->AddFixed32(number, value);
|
| +- return true;
|
| +- }
|
| +- default: {
|
| +- return false;
|
| +- }
|
| +- }
|
| +-}
|
| +-
|
| +-bool WireFormat::SkipMessage(io::CodedInputStream* input,
|
| +- UnknownFieldSet* unknown_fields) {
|
| +- while (true) {
|
| +- uint32 tag = input->ReadTag();
|
| +- if (tag == 0) {
|
| +- // End of input. This is a valid place to end, so return true.
|
| +- return true;
|
| +- }
|
| +-
|
| +- WireFormatLite::WireType wire_type = WireFormatLite::GetTagWireType(tag);
|
| +-
|
| +- if (wire_type == WireFormatLite::WIRETYPE_END_GROUP) {
|
| +- // Must be the end of the message.
|
| +- return true;
|
| +- }
|
| +-
|
| +- if (!SkipField(input, tag, unknown_fields)) return false;
|
| +- }
|
| +-}
|
| +-
|
| +-bool WireFormat::ReadPackedEnumPreserveUnknowns(io::CodedInputStream* input,
|
| +- uint32 field_number,
|
| +- bool (*is_valid)(int),
|
| +- UnknownFieldSet* unknown_fields,
|
| +- RepeatedField<int>* values) {
|
| +- uint32 length;
|
| +- if (!input->ReadVarint32(&length)) return false;
|
| +- io::CodedInputStream::Limit limit = input->PushLimit(length);
|
| +- while (input->BytesUntilLimit() > 0) {
|
| +- int value;
|
| +- if (!google::protobuf::internal::WireFormatLite::ReadPrimitive<
|
| +- int, WireFormatLite::TYPE_ENUM>(input, &value)) {
|
| +- return false;
|
| +- }
|
| +- if (is_valid == NULL || is_valid(value)) {
|
| +- values->Add(value);
|
| +- } else {
|
| +- unknown_fields->AddVarint(field_number, value);
|
| +- }
|
| +- }
|
| +- input->PopLimit(limit);
|
| +- return true;
|
| +-}
|
| +-
|
| +-
|
| +-void WireFormat::SerializeUnknownFields(const UnknownFieldSet& unknown_fields,
|
| +- io::CodedOutputStream* output) {
|
| +- for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| +- const UnknownField& field = unknown_fields.field(i);
|
| +- switch (field.type()) {
|
| +- case UnknownField::TYPE_VARINT:
|
| +- output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_VARINT));
|
| +- output->WriteVarint64(field.varint());
|
| +- break;
|
| +- case UnknownField::TYPE_FIXED32:
|
| +- output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_FIXED32));
|
| +- output->WriteLittleEndian32(field.fixed32());
|
| +- break;
|
| +- case UnknownField::TYPE_FIXED64:
|
| +- output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_FIXED64));
|
| +- output->WriteLittleEndian64(field.fixed64());
|
| +- break;
|
| +- case UnknownField::TYPE_LENGTH_DELIMITED:
|
| +- output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
|
| +- output->WriteVarint32(field.length_delimited().size());
|
| +- output->WriteRawMaybeAliased(field.length_delimited().data(),
|
| +- field.length_delimited().size());
|
| +- break;
|
| +- case UnknownField::TYPE_GROUP:
|
| +- output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_START_GROUP));
|
| +- SerializeUnknownFields(field.group(), output);
|
| +- output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_END_GROUP));
|
| +- break;
|
| +- }
|
| +- }
|
| +-}
|
| +-
|
| +-uint8* WireFormat::SerializeUnknownFieldsToArray(
|
| +- const UnknownFieldSet& unknown_fields,
|
| +- uint8* target) {
|
| +- for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| +- const UnknownField& field = unknown_fields.field(i);
|
| +-
|
| +- switch (field.type()) {
|
| +- case UnknownField::TYPE_VARINT:
|
| +- target = WireFormatLite::WriteInt64ToArray(
|
| +- field.number(), field.varint(), target);
|
| +- break;
|
| +- case UnknownField::TYPE_FIXED32:
|
| +- target = WireFormatLite::WriteFixed32ToArray(
|
| +- field.number(), field.fixed32(), target);
|
| +- break;
|
| +- case UnknownField::TYPE_FIXED64:
|
| +- target = WireFormatLite::WriteFixed64ToArray(
|
| +- field.number(), field.fixed64(), target);
|
| +- break;
|
| +- case UnknownField::TYPE_LENGTH_DELIMITED:
|
| +- target = WireFormatLite::WriteBytesToArray(
|
| +- field.number(), field.length_delimited(), target);
|
| +- break;
|
| +- case UnknownField::TYPE_GROUP:
|
| +- target = WireFormatLite::WriteTagToArray(
|
| +- field.number(), WireFormatLite::WIRETYPE_START_GROUP, target);
|
| +- target = SerializeUnknownFieldsToArray(field.group(), target);
|
| +- target = WireFormatLite::WriteTagToArray(
|
| +- field.number(), WireFormatLite::WIRETYPE_END_GROUP, target);
|
| +- break;
|
| +- }
|
| +- }
|
| +- return target;
|
| +-}
|
| +-
|
| +-void WireFormat::SerializeUnknownMessageSetItems(
|
| +- const UnknownFieldSet& unknown_fields,
|
| +- io::CodedOutputStream* output) {
|
| +- for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| +- const UnknownField& field = unknown_fields.field(i);
|
| +- // The only unknown fields that are allowed to exist in a MessageSet are
|
| +- // messages, which are length-delimited.
|
| +- if (field.type() == UnknownField::TYPE_LENGTH_DELIMITED) {
|
| +- // Start group.
|
| +- output->WriteVarint32(WireFormatLite::kMessageSetItemStartTag);
|
| +-
|
| +- // Write type ID.
|
| +- output->WriteVarint32(WireFormatLite::kMessageSetTypeIdTag);
|
| +- output->WriteVarint32(field.number());
|
| +-
|
| +- // Write message.
|
| +- output->WriteVarint32(WireFormatLite::kMessageSetMessageTag);
|
| +- field.SerializeLengthDelimitedNoTag(output);
|
| +-
|
| +- // End group.
|
| +- output->WriteVarint32(WireFormatLite::kMessageSetItemEndTag);
|
| +- }
|
| +- }
|
| +-}
|
| +-
|
| +-uint8* WireFormat::SerializeUnknownMessageSetItemsToArray(
|
| +- const UnknownFieldSet& unknown_fields,
|
| +- uint8* target) {
|
| +- for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| +- const UnknownField& field = unknown_fields.field(i);
|
| +-
|
| +- // The only unknown fields that are allowed to exist in a MessageSet are
|
| +- // messages, which are length-delimited.
|
| +- if (field.type() == UnknownField::TYPE_LENGTH_DELIMITED) {
|
| +- // Start group.
|
| +- target = io::CodedOutputStream::WriteTagToArray(
|
| +- WireFormatLite::kMessageSetItemStartTag, target);
|
| +-
|
| +- // Write type ID.
|
| +- target = io::CodedOutputStream::WriteTagToArray(
|
| +- WireFormatLite::kMessageSetTypeIdTag, target);
|
| +- target = io::CodedOutputStream::WriteVarint32ToArray(
|
| +- field.number(), target);
|
| +-
|
| +- // Write message.
|
| +- target = io::CodedOutputStream::WriteTagToArray(
|
| +- WireFormatLite::kMessageSetMessageTag, target);
|
| +- target = field.SerializeLengthDelimitedNoTagToArray(target);
|
| +-
|
| +- // End group.
|
| +- target = io::CodedOutputStream::WriteTagToArray(
|
| +- WireFormatLite::kMessageSetItemEndTag, target);
|
| +- }
|
| +- }
|
| +-
|
| +- return target;
|
| +-}
|
| +-
|
| +-int WireFormat::ComputeUnknownFieldsSize(
|
| +- const UnknownFieldSet& unknown_fields) {
|
| +- int size = 0;
|
| +- for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| +- const UnknownField& field = unknown_fields.field(i);
|
| +-
|
| +- switch (field.type()) {
|
| +- case UnknownField::TYPE_VARINT:
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_VARINT));
|
| +- size += io::CodedOutputStream::VarintSize64(field.varint());
|
| +- break;
|
| +- case UnknownField::TYPE_FIXED32:
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_FIXED32));
|
| +- size += sizeof(int32);
|
| +- break;
|
| +- case UnknownField::TYPE_FIXED64:
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_FIXED64));
|
| +- size += sizeof(int64);
|
| +- break;
|
| +- case UnknownField::TYPE_LENGTH_DELIMITED:
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- field.length_delimited().size());
|
| +- size += field.length_delimited().size();
|
| +- break;
|
| +- case UnknownField::TYPE_GROUP:
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_START_GROUP));
|
| +- size += ComputeUnknownFieldsSize(field.group());
|
| +- size += io::CodedOutputStream::VarintSize32(
|
| +- WireFormatLite::MakeTag(field.number(),
|
| +- WireFormatLite::WIRETYPE_END_GROUP));
|
| +- break;
|
| +- }
|
| +- }
|
| +-
|
| +- return size;
|
| +-}
|
| +-
|
| +-int WireFormat::ComputeUnknownMessageSetItemsSize(
|
| +- const UnknownFieldSet& unknown_fields) {
|
| +- int size = 0;
|
| +- for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| +- const UnknownField& field = unknown_fields.field(i);
|
| +-
|
| +- // The only unknown fields that are allowed to exist in a MessageSet are
|
| +- // messages, which are length-delimited.
|
| +- if (field.type() == UnknownField::TYPE_LENGTH_DELIMITED) {
|
| +- size += WireFormatLite::kMessageSetItemTagsSize;
|
| +- size += io::CodedOutputStream::VarintSize32(field.number());
|
| +-
|
| +- int field_size = field.GetLengthDelimitedSize();
|
| +- size += io::CodedOutputStream::VarintSize32(field_size);
|
| +- size += field_size;
|
| +- }
|
| +- }
|
| +-
|
| +- return size;
|
| +-}
|
| +-
|
| +-// ===================================================================
|
| +-
|
| + bool WireFormat::ParseAndMergePartial(io::CodedInputStream* input,
|
| + Message* message) {
|
| + const Descriptor* descriptor = message->GetDescriptor();
|
| +@@ -485,8 +162,8 @@ bool WireFormat::ParseAndMergeField(
|
| + }
|
| +
|
| + if (value_format == UNKNOWN) {
|
| +- return SkipField(input, tag,
|
| +- message_reflection->MutableUnknownFields(message));
|
| ++ return WireFormatLite::SkipField(
|
| ++ input, tag, message_reflection->MutableUnknownFields(message));
|
| + } else if (value_format == PACKED_FORMAT) {
|
| + uint32 length;
|
| + if (!input->ReadVarint32(&length)) return false;
|
| +@@ -763,7 +440,7 @@ bool WireFormat::ParseAndMergeMessageSetItem(
|
| + }
|
| +
|
| + default: {
|
| +- if (!SkipField(input, tag, NULL)) return false;
|
| ++ if (!WireFormatLite::SkipField(input, tag)) return false;
|
| + }
|
| + }
|
| + }
|
| +@@ -785,10 +462,10 @@ void WireFormat::SerializeWithCachedSizes(
|
| + }
|
| +
|
| + if (descriptor->options().message_set_wire_format()) {
|
| +- SerializeUnknownMessageSetItems(
|
| ++ WireFormatLite::SerializeUnknownMessageSetItems(
|
| + message_reflection->GetUnknownFields(message), output);
|
| + } else {
|
| +- SerializeUnknownFields(
|
| ++ WireFormatLite::SerializeUnknownFields(
|
| + message_reflection->GetUnknownFields(message), output);
|
| + }
|
| +
|
| +@@ -956,10 +633,10 @@ int WireFormat::ByteSize(const Message& message) {
|
| + }
|
| +
|
| + if (descriptor->options().message_set_wire_format()) {
|
| +- our_size += ComputeUnknownMessageSetItemsSize(
|
| ++ our_size += WireFormatLite::ComputeUnknownMessageSetItemsSize(
|
| + message_reflection->GetUnknownFields(message));
|
| + } else {
|
| +- our_size += ComputeUnknownFieldsSize(
|
| ++ our_size += WireFormatLite::ComputeUnknownFieldsSize(
|
| + message_reflection->GetUnknownFields(message));
|
| + }
|
| +
|
| +diff --git a/third_party/protobuf/src/google/protobuf/wire_format.h b/third_party/protobuf/src/google/protobuf/wire_format.h
|
| +index 84270fe..860db13 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/wire_format.h
|
| ++++ b/third_party/protobuf/src/google/protobuf/wire_format.h
|
| +@@ -57,7 +57,6 @@ namespace protobuf {
|
| + class CodedInputStream; // coded_stream.h
|
| + class CodedOutputStream; // coded_stream.h
|
| + }
|
| +- class UnknownFieldSet; // unknown_field_set.h
|
| + }
|
| +
|
| + namespace protobuf {
|
| +@@ -124,62 +123,6 @@ class LIBPROTOBUF_EXPORT WireFormat {
|
| + // WireFormat::SerializeWithCachedSizes() on the same object.
|
| + static int ByteSize(const Message& message);
|
| +
|
| +- // -----------------------------------------------------------------
|
| +- // Helpers for dealing with unknown fields
|
| +-
|
| +- // Skips a field value of the given WireType. The input should start
|
| +- // positioned immediately after the tag. If unknown_fields is non-NULL,
|
| +- // the contents of the field will be added to it.
|
| +- static bool SkipField(io::CodedInputStream* input, uint32 tag,
|
| +- UnknownFieldSet* unknown_fields);
|
| +-
|
| +- // Reads and ignores a message from the input. If unknown_fields is non-NULL,
|
| +- // the contents will be added to it.
|
| +- static bool SkipMessage(io::CodedInputStream* input,
|
| +- UnknownFieldSet* unknown_fields);
|
| +-
|
| +- // Read a packed enum field. If the is_valid function is not NULL, values for
|
| +- // which is_valid(value) returns false are appended to unknown_fields_stream.
|
| +- static bool ReadPackedEnumPreserveUnknowns(io::CodedInputStream* input,
|
| +- uint32 field_number,
|
| +- bool (*is_valid)(int),
|
| +- UnknownFieldSet* unknown_fields,
|
| +- RepeatedField<int>* values);
|
| +-
|
| +- // Write the contents of an UnknownFieldSet to the output.
|
| +- static void SerializeUnknownFields(const UnknownFieldSet& unknown_fields,
|
| +- io::CodedOutputStream* output);
|
| +- // Same as above, except writing directly to the provided buffer.
|
| +- // Requires that the buffer have sufficient capacity for
|
| +- // ComputeUnknownFieldsSize(unknown_fields).
|
| +- //
|
| +- // Returns a pointer past the last written byte.
|
| +- static uint8* SerializeUnknownFieldsToArray(
|
| +- const UnknownFieldSet& unknown_fields,
|
| +- uint8* target);
|
| +-
|
| +- // Same thing except for messages that have the message_set_wire_format
|
| +- // option.
|
| +- static void SerializeUnknownMessageSetItems(
|
| +- const UnknownFieldSet& unknown_fields,
|
| +- io::CodedOutputStream* output);
|
| +- // Same as above, except writing directly to the provided buffer.
|
| +- // Requires that the buffer have sufficient capacity for
|
| +- // ComputeUnknownMessageSetItemsSize(unknown_fields).
|
| +- //
|
| +- // Returns a pointer past the last written byte.
|
| +- static uint8* SerializeUnknownMessageSetItemsToArray(
|
| +- const UnknownFieldSet& unknown_fields,
|
| +- uint8* target);
|
| +-
|
| +- // Compute the size of the UnknownFieldSet on the wire.
|
| +- static int ComputeUnknownFieldsSize(const UnknownFieldSet& unknown_fields);
|
| +-
|
| +- // Same thing except for messages that have the message_set_wire_format
|
| +- // option.
|
| +- static int ComputeUnknownMessageSetItemsSize(
|
| +- const UnknownFieldSet& unknown_fields);
|
| +-
|
| +
|
| + // Helper functions for encoding and decoding tags. (Inlined below and in
|
| + // _inl.h)
|
| +@@ -270,22 +213,6 @@ class LIBPROTOBUF_EXPORT WireFormat {
|
| + GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(WireFormat);
|
| + };
|
| +
|
| +-// Subclass of FieldSkipper which saves skipped fields to an UnknownFieldSet.
|
| +-class LIBPROTOBUF_EXPORT UnknownFieldSetFieldSkipper : public FieldSkipper {
|
| +- public:
|
| +- UnknownFieldSetFieldSkipper(UnknownFieldSet* unknown_fields)
|
| +- : unknown_fields_(unknown_fields) {}
|
| +- virtual ~UnknownFieldSetFieldSkipper() {}
|
| +-
|
| +- // implements FieldSkipper -----------------------------------------
|
| +- virtual bool SkipField(io::CodedInputStream* input, uint32 tag);
|
| +- virtual bool SkipMessage(io::CodedInputStream* input);
|
| +- virtual void SkipUnknownEnum(int field_number, int value);
|
| +-
|
| +- protected:
|
| +- UnknownFieldSet* unknown_fields_;
|
| +-};
|
| +-
|
| + // inline methods ====================================================
|
| +
|
| + inline WireFormatLite::WireType WireFormat::WireTypeForField(
|
| +diff --git a/third_party/protobuf/src/google/protobuf/wire_format_lite.cc b/third_party/protobuf/src/google/protobuf/wire_format_lite.cc
|
| +index 2ce4920..58160c1f 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/wire_format_lite.cc
|
| ++++ b/third_party/protobuf/src/google/protobuf/wire_format_lite.cc
|
| +@@ -55,6 +55,24 @@ const int WireFormatLite::kMessageSetMessageTag;
|
| +
|
| + #endif
|
| +
|
| ++// ===================================================================
|
| ++
|
| ++bool FieldSkipper::SkipField(
|
| ++ io::CodedInputStream* input, uint32 tag) {
|
| ++ return WireFormatLite::SkipField(input, tag, unknown_fields_);
|
| ++}
|
| ++
|
| ++bool FieldSkipper::SkipMessage(io::CodedInputStream* input) {
|
| ++ return WireFormatLite::SkipMessage(input, unknown_fields_);
|
| ++}
|
| ++
|
| ++void FieldSkipper::SkipUnknownEnum(
|
| ++ int field_number, int value) {
|
| ++ unknown_fields_->AddVarint(field_number, value);
|
| ++}
|
| ++
|
| ++// ===================================================================
|
| ++
|
| + // IBM xlC requires prefixing constants with WireFormatLite::
|
| + const int WireFormatLite::kMessageSetItemTagsSize =
|
| + io::CodedOutputStream::StaticVarintSize32<
|
| +@@ -113,28 +131,46 @@ WireFormatLite::kWireTypeForFieldType[MAX_FIELD_TYPE + 1] = {
|
| + WireFormatLite::WIRETYPE_VARINT, // TYPE_SINT64
|
| + };
|
| +
|
| +-bool WireFormatLite::SkipField(
|
| +- io::CodedInputStream* input, uint32 tag) {
|
| ++bool WireFormatLite::SkipField(io::CodedInputStream* input, uint32 tag) {
|
| ++ return SkipField(input, tag, static_cast<UnknownFieldSet*>(NULL));
|
| ++}
|
| ++
|
| ++bool WireFormatLite::SkipField(io::CodedInputStream* input, uint32 tag,
|
| ++ UnknownFieldSet* unknown_fields) {
|
| ++ int number = WireFormatLite::GetTagFieldNumber(tag);
|
| ++
|
| + switch (WireFormatLite::GetTagWireType(tag)) {
|
| + case WireFormatLite::WIRETYPE_VARINT: {
|
| + uint64 value;
|
| + if (!input->ReadVarint64(&value)) return false;
|
| ++ if (unknown_fields != NULL) unknown_fields->AddVarint(number, value);
|
| + return true;
|
| + }
|
| + case WireFormatLite::WIRETYPE_FIXED64: {
|
| + uint64 value;
|
| + if (!input->ReadLittleEndian64(&value)) return false;
|
| ++ if (unknown_fields != NULL) unknown_fields->AddFixed64(number, value);
|
| + return true;
|
| + }
|
| + case WireFormatLite::WIRETYPE_LENGTH_DELIMITED: {
|
| + uint32 length;
|
| + if (!input->ReadVarint32(&length)) return false;
|
| +- if (!input->Skip(length)) return false;
|
| ++ if (unknown_fields == NULL) {
|
| ++ if (!input->Skip(length)) return false;
|
| ++ } else {
|
| ++ if (!input->ReadString(unknown_fields->AddLengthDelimited(number),
|
| ++ length)) {
|
| ++ return false;
|
| ++ }
|
| ++ }
|
| + return true;
|
| + }
|
| + case WireFormatLite::WIRETYPE_START_GROUP: {
|
| + if (!input->IncrementRecursionDepth()) return false;
|
| +- if (!SkipMessage(input)) return false;
|
| ++ if (!SkipMessage(input, (unknown_fields == NULL) ?
|
| ++ NULL : unknown_fields->AddGroup(number))) {
|
| ++ return false;
|
| ++ }
|
| + input->DecrementRecursionDepth();
|
| + // Check that the ending tag matched the starting tag.
|
| + if (!input->LastTagWas(WireFormatLite::MakeTag(
|
| +@@ -150,6 +186,7 @@ bool WireFormatLite::SkipField(
|
| + case WireFormatLite::WIRETYPE_FIXED32: {
|
| + uint32 value;
|
| + if (!input->ReadLittleEndian32(&value)) return false;
|
| ++ if (unknown_fields != NULL) unknown_fields->AddFixed32(number, value);
|
| + return true;
|
| + }
|
| + default: {
|
| +@@ -215,7 +252,8 @@ bool WireFormatLite::SkipField(
|
| + }
|
| + }
|
| +
|
| +-bool WireFormatLite::SkipMessage(io::CodedInputStream* input) {
|
| ++bool WireFormatLite::SkipMessage(io::CodedInputStream* input,
|
| ++ UnknownFieldSet* unknown_fields) {
|
| + while (true) {
|
| + uint32 tag = input->ReadTag();
|
| + if (tag == 0) {
|
| +@@ -230,7 +268,7 @@ bool WireFormatLite::SkipMessage(io::CodedInputStream* input) {
|
| + return true;
|
| + }
|
| +
|
| +- if (!SkipField(input, tag)) return false;
|
| ++ if (!SkipField(input, tag, unknown_fields)) return false;
|
| + }
|
| + }
|
| +
|
| +@@ -255,18 +293,231 @@ bool WireFormatLite::SkipMessage(io::CodedInputStream* input,
|
| + }
|
| + }
|
| +
|
| +-bool FieldSkipper::SkipField(
|
| +- io::CodedInputStream* input, uint32 tag) {
|
| +- return WireFormatLite::SkipField(input, tag);
|
| ++bool WireFormatLite::ReadPackedEnumPreserveUnknowns(
|
| ++ io::CodedInputStream* input,
|
| ++ uint32 field_number,
|
| ++ bool (*is_valid)(int),
|
| ++ UnknownFieldSet* unknown_fields,
|
| ++ RepeatedField<int>* values) {
|
| ++ uint32 length;
|
| ++ if (!input->ReadVarint32(&length)) return false;
|
| ++ io::CodedInputStream::Limit limit = input->PushLimit(length);
|
| ++ while (input->BytesUntilLimit() > 0) {
|
| ++ int value;
|
| ++ if (!google::protobuf::internal::WireFormatLite::ReadPrimitive<
|
| ++ int, WireFormatLite::TYPE_ENUM>(input, &value)) {
|
| ++ return false;
|
| ++ }
|
| ++ if (is_valid == NULL || is_valid(value)) {
|
| ++ values->Add(value);
|
| ++ } else {
|
| ++ unknown_fields->AddVarint(field_number, value);
|
| ++ }
|
| ++ }
|
| ++ input->PopLimit(limit);
|
| ++ return true;
|
| + }
|
| +
|
| +-bool FieldSkipper::SkipMessage(io::CodedInputStream* input) {
|
| +- return WireFormatLite::SkipMessage(input);
|
| ++
|
| ++void WireFormatLite::SerializeUnknownFields(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ io::CodedOutputStream* output) {
|
| ++ for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| ++ const UnknownField& field = unknown_fields.field(i);
|
| ++ switch (field.type()) {
|
| ++ case UnknownField::TYPE_VARINT:
|
| ++ output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_VARINT));
|
| ++ output->WriteVarint64(field.varint());
|
| ++ break;
|
| ++ case UnknownField::TYPE_FIXED32:
|
| ++ output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_FIXED32));
|
| ++ output->WriteLittleEndian32(field.fixed32());
|
| ++ break;
|
| ++ case UnknownField::TYPE_FIXED64:
|
| ++ output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_FIXED64));
|
| ++ output->WriteLittleEndian64(field.fixed64());
|
| ++ break;
|
| ++ case UnknownField::TYPE_LENGTH_DELIMITED:
|
| ++ output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
|
| ++ output->WriteVarint32(field.length_delimited().size());
|
| ++ output->WriteRawMaybeAliased(field.length_delimited().data(),
|
| ++ field.length_delimited().size());
|
| ++ break;
|
| ++ case UnknownField::TYPE_GROUP:
|
| ++ output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_START_GROUP));
|
| ++ SerializeUnknownFields(field.group(), output);
|
| ++ output->WriteVarint32(WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_END_GROUP));
|
| ++ break;
|
| ++ }
|
| ++ }
|
| + }
|
| +
|
| +-void FieldSkipper::SkipUnknownEnum(
|
| +- int /* field_number */, int /* value */) {
|
| +- // Nothing.
|
| ++uint8* WireFormatLite::SerializeUnknownFieldsToArray(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ uint8* target) {
|
| ++ for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| ++ const UnknownField& field = unknown_fields.field(i);
|
| ++
|
| ++ switch (field.type()) {
|
| ++ case UnknownField::TYPE_VARINT:
|
| ++ target = WireFormatLite::WriteInt64ToArray(
|
| ++ field.number(), field.varint(), target);
|
| ++ break;
|
| ++ case UnknownField::TYPE_FIXED32:
|
| ++ target = WireFormatLite::WriteFixed32ToArray(
|
| ++ field.number(), field.fixed32(), target);
|
| ++ break;
|
| ++ case UnknownField::TYPE_FIXED64:
|
| ++ target = WireFormatLite::WriteFixed64ToArray(
|
| ++ field.number(), field.fixed64(), target);
|
| ++ break;
|
| ++ case UnknownField::TYPE_LENGTH_DELIMITED:
|
| ++ target = WireFormatLite::WriteBytesToArray(
|
| ++ field.number(), field.length_delimited(), target);
|
| ++ break;
|
| ++ case UnknownField::TYPE_GROUP:
|
| ++ target = WireFormatLite::WriteTagToArray(
|
| ++ field.number(), WireFormatLite::WIRETYPE_START_GROUP, target);
|
| ++ target = SerializeUnknownFieldsToArray(field.group(), target);
|
| ++ target = WireFormatLite::WriteTagToArray(
|
| ++ field.number(), WireFormatLite::WIRETYPE_END_GROUP, target);
|
| ++ break;
|
| ++ }
|
| ++ }
|
| ++ return target;
|
| ++}
|
| ++
|
| ++void WireFormatLite::SerializeUnknownMessageSetItems(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ io::CodedOutputStream* output) {
|
| ++ for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| ++ const UnknownField& field = unknown_fields.field(i);
|
| ++ // The only unknown fields that are allowed to exist in a MessageSet are
|
| ++ // messages, which are length-delimited.
|
| ++ if (field.type() == UnknownField::TYPE_LENGTH_DELIMITED) {
|
| ++ // Start group.
|
| ++ output->WriteVarint32(WireFormatLite::kMessageSetItemStartTag);
|
| ++
|
| ++ // Write type ID.
|
| ++ output->WriteVarint32(WireFormatLite::kMessageSetTypeIdTag);
|
| ++ output->WriteVarint32(field.number());
|
| ++
|
| ++ // Write message.
|
| ++ output->WriteVarint32(WireFormatLite::kMessageSetMessageTag);
|
| ++ field.SerializeLengthDelimitedNoTag(output);
|
| ++
|
| ++ // End group.
|
| ++ output->WriteVarint32(WireFormatLite::kMessageSetItemEndTag);
|
| ++ }
|
| ++ }
|
| ++}
|
| ++
|
| ++uint8* WireFormatLite::SerializeUnknownMessageSetItemsToArray(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ uint8* target) {
|
| ++ for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| ++ const UnknownField& field = unknown_fields.field(i);
|
| ++
|
| ++ // The only unknown fields that are allowed to exist in a MessageSet are
|
| ++ // messages, which are length-delimited.
|
| ++ if (field.type() == UnknownField::TYPE_LENGTH_DELIMITED) {
|
| ++ // Start group.
|
| ++ target = io::CodedOutputStream::WriteTagToArray(
|
| ++ WireFormatLite::kMessageSetItemStartTag, target);
|
| ++
|
| ++ // Write type ID.
|
| ++ target = io::CodedOutputStream::WriteTagToArray(
|
| ++ WireFormatLite::kMessageSetTypeIdTag, target);
|
| ++ target = io::CodedOutputStream::WriteVarint32ToArray(
|
| ++ field.number(), target);
|
| ++
|
| ++ // Write message.
|
| ++ target = io::CodedOutputStream::WriteTagToArray(
|
| ++ WireFormatLite::kMessageSetMessageTag, target);
|
| ++ target = field.SerializeLengthDelimitedNoTagToArray(target);
|
| ++
|
| ++ // End group.
|
| ++ target = io::CodedOutputStream::WriteTagToArray(
|
| ++ WireFormatLite::kMessageSetItemEndTag, target);
|
| ++ }
|
| ++ }
|
| ++
|
| ++ return target;
|
| ++}
|
| ++
|
| ++int WireFormatLite::ComputeUnknownFieldsSize(
|
| ++ const UnknownFieldSet& unknown_fields) {
|
| ++ int size = 0;
|
| ++ for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| ++ const UnknownField& field = unknown_fields.field(i);
|
| ++
|
| ++ switch (field.type()) {
|
| ++ case UnknownField::TYPE_VARINT:
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_VARINT));
|
| ++ size += io::CodedOutputStream::VarintSize64(field.varint());
|
| ++ break;
|
| ++ case UnknownField::TYPE_FIXED32:
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_FIXED32));
|
| ++ size += sizeof(int32);
|
| ++ break;
|
| ++ case UnknownField::TYPE_FIXED64:
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_FIXED64));
|
| ++ size += sizeof(int64);
|
| ++ break;
|
| ++ case UnknownField::TYPE_LENGTH_DELIMITED:
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ field.length_delimited().size());
|
| ++ size += field.length_delimited().size();
|
| ++ break;
|
| ++ case UnknownField::TYPE_GROUP:
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_START_GROUP));
|
| ++ size += ComputeUnknownFieldsSize(field.group());
|
| ++ size += io::CodedOutputStream::VarintSize32(
|
| ++ WireFormatLite::MakeTag(field.number(),
|
| ++ WireFormatLite::WIRETYPE_END_GROUP));
|
| ++ break;
|
| ++ }
|
| ++ }
|
| ++
|
| ++ return size;
|
| ++}
|
| ++
|
| ++int WireFormatLite::ComputeUnknownMessageSetItemsSize(
|
| ++ const UnknownFieldSet& unknown_fields) {
|
| ++ int size = 0;
|
| ++ for (int i = 0; i < unknown_fields.field_count(); i++) {
|
| ++ const UnknownField& field = unknown_fields.field(i);
|
| ++
|
| ++ // The only unknown fields that are allowed to exist in a MessageSet are
|
| ++ // messages, which are length-delimited.
|
| ++ if (field.type() == UnknownField::TYPE_LENGTH_DELIMITED) {
|
| ++ size += WireFormatLite::kMessageSetItemTagsSize;
|
| ++ size += io::CodedOutputStream::VarintSize32(field.number());
|
| ++
|
| ++ int field_size = field.GetLengthDelimitedSize();
|
| ++ size += io::CodedOutputStream::VarintSize32(field_size);
|
| ++ size += field_size;
|
| ++ }
|
| ++ }
|
| ++
|
| ++ return size;
|
| + }
|
| +
|
| + bool CodedOutputStreamFieldSkipper::SkipField(
|
| +diff --git a/third_party/protobuf/src/google/protobuf/wire_format_lite.h b/third_party/protobuf/src/google/protobuf/wire_format_lite.h
|
| +index ac83abd..9f922fd 100644
|
| +--- a/third_party/protobuf/src/google/protobuf/wire_format_lite.h
|
| ++++ b/third_party/protobuf/src/google/protobuf/wire_format_lite.h
|
| +@@ -44,11 +44,13 @@
|
| + #include <google/protobuf/stubs/common.h>
|
| + #include <google/protobuf/message_lite.h>
|
| + #include <google/protobuf/io/coded_stream.h> // for CodedOutputStream::Varint32Size
|
| ++#include <google/protobuf/unknown_field_set.h>
|
| +
|
| + namespace google {
|
| +
|
| + namespace protobuf {
|
| + template <typename T> class RepeatedField; // repeated_field.h
|
| ++ class UnknownFieldSet; // unknown_field_set.h
|
| + }
|
| +
|
| + namespace protobuf {
|
| +@@ -157,21 +159,33 @@ class LIBPROTOBUF_EXPORT WireFormatLite {
|
| + // and end tags.
|
| + static inline int TagSize(int field_number, WireFormatLite::FieldType type);
|
| +
|
| ++ // -----------------------------------------------------------------
|
| ++ // Helpers for dealing with unknown fields
|
| ++
|
| + // Skips a field value with the given tag. The input should start
|
| + // positioned immediately after the tag. Skipped values are simply discarded,
|
| +- // not recorded anywhere. See WireFormat::SkipField() for a version that
|
| +- // records to an UnknownFieldSet.
|
| ++ // not recorded anywhere.
|
| + static bool SkipField(io::CodedInputStream* input, uint32 tag);
|
| +
|
| + // Skips a field value with the given tag. The input should start
|
| ++ // positioned immediately after the tag. If unknown_fields is non-NULL,
|
| ++ // the contents of the field will be added to it.
|
| ++ static bool SkipField(io::CodedInputStream* input, uint32 tag,
|
| ++ UnknownFieldSet* unknown_fields);
|
| ++
|
| ++ // Skips a field value with the given tag. The input should start
|
| + // positioned immediately after the tag. Skipped values are recorded to a
|
| + // CodedOutputStream.
|
| + static bool SkipField(io::CodedInputStream* input, uint32 tag,
|
| + io::CodedOutputStream* output);
|
| +
|
| +- // Reads and ignores a message from the input. Skipped values are simply
|
| +- // discarded, not recorded anywhere. See WireFormat::SkipMessage() for a
|
| +- // version that records to an UnknownFieldSet.
|
| ++ // Reads and ignores a message from the input. If unknown_fields is non-NULL,
|
| ++ // the contents will be added to it.
|
| ++ static bool SkipMessage(io::CodedInputStream* input,
|
| ++ UnknownFieldSet* unknown_fields);
|
| ++
|
| ++ // Reads and ignores a message from the input. Skipped values may be stored
|
| ++ // in the UnknownFieldSet if it exists.
|
| + static bool SkipMessage(io::CodedInputStream* input);
|
| +
|
| + // Reads and ignores a message from the input. Skipped values are recorded
|
| +@@ -233,6 +247,48 @@ class LIBPROTOBUF_EXPORT WireFormatLite {
|
| + static uint64 ZigZagEncode64(int64 n);
|
| + static int64 ZigZagDecode64(uint64 n);
|
| +
|
| ++ // Read a packed enum field. If the is_valid function is not NULL, values for
|
| ++ // which is_valid(value) returns false are appended to unknown_fields_stream.
|
| ++ static bool ReadPackedEnumPreserveUnknowns(io::CodedInputStream* input,
|
| ++ uint32 field_number,
|
| ++ bool (*is_valid)(int),
|
| ++ UnknownFieldSet* unknown_fields,
|
| ++ RepeatedField<int>* values);
|
| ++
|
| ++ // Write the contents of an UnknownFieldSet to the output.
|
| ++ static void SerializeUnknownFields(const UnknownFieldSet& unknown_fields,
|
| ++ io::CodedOutputStream* output);
|
| ++ // Same as above, except writing directly to the provided buffer.
|
| ++ // Requires that the buffer have sufficient capacity for
|
| ++ // ComputeUnknownFieldsSize(unknown_fields).
|
| ++ //
|
| ++ // Returns a pointer past the last written byte.
|
| ++ static uint8* SerializeUnknownFieldsToArray(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ uint8* target);
|
| ++
|
| ++ // Same thing except for messages that have the message_set_wire_format
|
| ++ // option.
|
| ++ static void SerializeUnknownMessageSetItems(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ io::CodedOutputStream* output);
|
| ++ // Same as above, except writing directly to the provided buffer.
|
| ++ // Requires that the buffer have sufficient capacity for
|
| ++ // ComputeUnknownMessageSetItemsSize(unknown_fields).
|
| ++ //
|
| ++ // Returns a pointer past the last written byte.
|
| ++ static uint8* SerializeUnknownMessageSetItemsToArray(
|
| ++ const UnknownFieldSet& unknown_fields,
|
| ++ uint8* target);
|
| ++
|
| ++ // Compute the size of the UnknownFieldSet on the wire.
|
| ++ static int ComputeUnknownFieldsSize(const UnknownFieldSet& unknown_fields);
|
| ++
|
| ++ // Same thing except for messages that have the message_set_wire_format
|
| ++ // option.
|
| ++ static int ComputeUnknownMessageSetItemsSize(
|
| ++ const UnknownFieldSet& unknown_fields);
|
| ++
|
| + // =================================================================
|
| + // Methods for reading/writing individual field. The implementations
|
| + // of these methods are defined in wire_format_lite_inl.h; you must #include
|
| +@@ -546,26 +602,26 @@ class LIBPROTOBUF_EXPORT WireFormatLite {
|
| + GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(WireFormatLite);
|
| + };
|
| +
|
| +-// A class which deals with unknown values. The default implementation just
|
| +-// discards them. WireFormat defines a subclass which writes to an
|
| +-// UnknownFieldSet. This class is used by ExtensionSet::ParseField(), since
|
| +-// ExtensionSet is part of the lite library but UnknownFieldSet is not.
|
| ++// A class which deals with unknown values by saving them to an UnknownFieldSet.
|
| + class LIBPROTOBUF_EXPORT FieldSkipper {
|
| + public:
|
| +- FieldSkipper() {}
|
| +- virtual ~FieldSkipper() {}
|
| ++ FieldSkipper(UnknownFieldSet* unknown_fields)
|
| ++ : unknown_fields_(unknown_fields) {}
|
| +
|
| + // Skip a field whose tag has already been consumed.
|
| +- virtual bool SkipField(io::CodedInputStream* input, uint32 tag);
|
| ++ bool SkipField(io::CodedInputStream* input, uint32 tag);
|
| +
|
| + // Skip an entire message or group, up to an end-group tag (which is consumed)
|
| + // or end-of-stream.
|
| +- virtual bool SkipMessage(io::CodedInputStream* input);
|
| ++ bool SkipMessage(io::CodedInputStream* input);
|
| +
|
| + // Deal with an already-parsed unrecognized enum value. The default
|
| + // implementation does nothing, but the UnknownFieldSet-based implementation
|
| + // saves it as an unknown varint.
|
| +- virtual void SkipUnknownEnum(int field_number, int value);
|
| ++ void SkipUnknownEnum(int field_number, int value);
|
| ++
|
| ++ private:
|
| ++ UnknownFieldSet* unknown_fields_;
|
| + };
|
| +
|
| + // Subclass of FieldSkipper which saves skipped fields to a CodedOutputStream.
|
| +@@ -573,7 +629,7 @@ class LIBPROTOBUF_EXPORT FieldSkipper {
|
| + class LIBPROTOBUF_EXPORT CodedOutputStreamFieldSkipper : public FieldSkipper {
|
| + public:
|
| + explicit CodedOutputStreamFieldSkipper(io::CodedOutputStream* unknown_fields)
|
| +- : unknown_fields_(unknown_fields) {}
|
| ++ : FieldSkipper(nullptr), unknown_fields_(unknown_fields) {}
|
| + virtual ~CodedOutputStreamFieldSkipper() {}
|
| +
|
| + // implements FieldSkipper -----------------------------------------
|
|
|