Down integrate to GitHub
This commit is contained in:
parent
60b66a119d
commit
711e4b4d6c
@ -32,11 +32,11 @@ syntax = "proto3";
|
||||
|
||||
package any_test;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
option java_package = "any_test";
|
||||
option java_outer_classname = "AnyTestProto";
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
message TestAny {
|
||||
google.protobuf.Any value = 1;
|
||||
}
|
||||
|
@ -33,12 +33,12 @@ syntax = "proto2";
|
||||
|
||||
package protobuf_unittest;
|
||||
|
||||
option optimize_for = CODE_SIZE;
|
||||
option java_multiple_files = true;
|
||||
|
||||
import "google/protobuf/unittest.proto";
|
||||
import "google/protobuf/unittest_proto3.proto";
|
||||
|
||||
option optimize_for = CODE_SIZE;
|
||||
option java_multiple_files = true;
|
||||
|
||||
message TestCachedFieldSizeMessage {
|
||||
optional protobuf_unittest.TestPackedTypes proto2_child = 1;
|
||||
optional proto3_unittest.TestPackedTypes proto3_child = 2;
|
||||
|
@ -43,5 +43,6 @@ message Car {
|
||||
extend Car {
|
||||
optional bool turbo = 1001;
|
||||
optional bool self_driving = 1002;
|
||||
optional bool flies = 1003;
|
||||
optional string plate = 9999;
|
||||
}
|
||||
|
@ -36,24 +36,20 @@ syntax = "proto2";
|
||||
|
||||
// Some generic_services option(s) added automatically.
|
||||
// See: http://go/proto2-generic-services-default
|
||||
option java_generic_services = true; // auto-added
|
||||
package protobuf_unittest;
|
||||
|
||||
import "google/protobuf/unittest.proto";
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
package protobuf_unittest;
|
||||
|
||||
option java_generic_services = true; // auto-added
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MultipleFilesTestProto";
|
||||
|
||||
|
||||
message MessageWithNoOuter {
|
||||
message NestedMessage {
|
||||
optional int32 i = 1;
|
||||
}
|
||||
enum NestedEnum {
|
||||
BAZ = 3;
|
||||
}
|
||||
enum NestedEnum { BAZ = 3; }
|
||||
optional NestedMessage nested = 1;
|
||||
repeated TestAllTypes foreign = 2;
|
||||
optional NestedEnum nested_enum = 3;
|
||||
@ -70,7 +66,7 @@ enum EnumWithNoOuter {
|
||||
}
|
||||
|
||||
service ServiceWithNoOuter {
|
||||
rpc Foo(MessageWithNoOuter) returns(TestAllTypes);
|
||||
rpc Foo(MessageWithNoOuter) returns (TestAllTypes);
|
||||
}
|
||||
|
||||
extend TestAllExtensions {
|
||||
|
@ -31,9 +31,10 @@
|
||||
// LINT: ALLOW_GROUPS
|
||||
syntax = "proto2";
|
||||
|
||||
package protobuf.experimental;
|
||||
|
||||
option java_package = "com.google.protobuf.testing";
|
||||
option java_outer_classname = "Proto2Testing";
|
||||
package protobuf.experimental;
|
||||
|
||||
|
||||
message Proto2SpecialFieldName {
|
||||
|
@ -31,9 +31,10 @@
|
||||
// LINT: ALLOW_GROUPS
|
||||
syntax = "proto2";
|
||||
|
||||
package protobuf.experimental.lite;
|
||||
|
||||
option java_package = "com.google.protobuf.testing";
|
||||
option java_outer_classname = "Proto2TestingLite";
|
||||
package protobuf.experimental.lite;
|
||||
|
||||
|
||||
message Proto2MessageLite {
|
||||
|
@ -30,9 +30,10 @@
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package protobuf.experimental;
|
||||
|
||||
option java_package = "com.google.protobuf.testing";
|
||||
option java_outer_classname = "Proto3Testing";
|
||||
package protobuf.experimental;
|
||||
|
||||
message Proto3SpecialFieldName {
|
||||
double regular_name = 1;
|
||||
|
@ -30,9 +30,10 @@
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package protobuf.experimental;
|
||||
|
||||
option java_package = "com.google.protobuf.testing";
|
||||
option java_outer_classname = "Proto3TestingLite";
|
||||
package protobuf.experimental;
|
||||
|
||||
message Proto3MessageLite {
|
||||
enum TestEnum {
|
||||
|
@ -37,10 +37,9 @@ syntax = "proto2";
|
||||
|
||||
// Some generic_services option(s) added automatically.
|
||||
// See: http://go/proto2-generic-services-default
|
||||
option java_generic_services = true; // auto-added
|
||||
|
||||
package io_protocol_tests;
|
||||
|
||||
option java_generic_services = true; // auto-added
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "TestBadIdentifiersProto";
|
||||
|
||||
@ -52,9 +51,11 @@ message TestMessage {
|
||||
|
||||
message Descriptor {
|
||||
option no_standard_descriptor_accessor = true;
|
||||
|
||||
optional string descriptor = 1;
|
||||
message NestedDescriptor {
|
||||
option no_standard_descriptor_accessor = true;
|
||||
|
||||
optional string descriptor = 1;
|
||||
}
|
||||
optional NestedDescriptor nested_descriptor = 2;
|
||||
@ -78,12 +79,12 @@ message Deprecated {
|
||||
FOO = 1;
|
||||
|
||||
// Test if @Deprecated annotation conflicts with Deprecated message name.
|
||||
BAR = 2 [ deprecated = true ];
|
||||
BAR = 2 [deprecated = true];
|
||||
}
|
||||
|
||||
optional int32 field1 = 1 [deprecated=true];
|
||||
optional TestEnum field2 = 2 [deprecated=true];
|
||||
optional TestMessage field3 = 3 [deprecated=true];
|
||||
optional int32 field1 = 1 [deprecated = true];
|
||||
optional TestEnum field2 = 2 [deprecated = true];
|
||||
optional TestMessage field3 = 3 [deprecated = true];
|
||||
}
|
||||
|
||||
message Override {
|
||||
@ -124,8 +125,7 @@ message TestConflictingFieldNames {
|
||||
UNKNOWN = 0;
|
||||
FOO = 1;
|
||||
}
|
||||
message TestMessage {
|
||||
}
|
||||
message TestMessage {}
|
||||
repeated int32 int32_field = 1;
|
||||
repeated TestEnum enum_field = 2;
|
||||
repeated string string_field = 3;
|
||||
@ -138,10 +138,10 @@ message TestConflictingFieldNames {
|
||||
optional bytes bytes_field_count = 14;
|
||||
optional TestMessage message_field_count = 15;
|
||||
|
||||
repeated int32 Int32Field = 21; // NO_PROTO3
|
||||
repeated TestEnum EnumField = 22; // NO_PROTO3
|
||||
repeated string StringField = 23; // NO_PROTO3
|
||||
repeated bytes BytesField = 24; // NO_PROTO3
|
||||
repeated int32 Int32Field = 21; // NO_PROTO3
|
||||
repeated TestEnum EnumField = 22; // NO_PROTO3
|
||||
repeated string StringField = 23; // NO_PROTO3
|
||||
repeated bytes BytesField = 24; // NO_PROTO3
|
||||
repeated TestMessage MessageField = 25; // NO_PROTO3
|
||||
|
||||
// This field conflicts with "int32_field" as they both generate
|
||||
@ -149,9 +149,9 @@ message TestConflictingFieldNames {
|
||||
required int32 int32_field_list = 31; // NO_PROTO3
|
||||
|
||||
// These field pairs have the same Java converted name
|
||||
optional string field_name = 32; // NO_PROTO3
|
||||
optional string field__name = 33; // NO_PROTO3
|
||||
optional int32 _2conflict = 34; // NO_PROTO3
|
||||
optional string field_name = 32; // NO_PROTO3
|
||||
optional string field__name = 33; // NO_PROTO3
|
||||
optional int32 _2conflict = 34; // NO_PROTO3
|
||||
optional int32 __2conflict = 35;
|
||||
|
||||
extensions 1000 to max; // NO_PROTO3
|
||||
@ -161,8 +161,8 @@ message TestConflictingFieldNames {
|
||||
// We don't generate accessors for extensions so the following extension
|
||||
// fields don't conflict with the repeated field "int64_field".
|
||||
optional int64 int64_field_count = 1001; // NO_PROTO3
|
||||
optional int64 int64_field_list = 1002; // NO_PROTO3
|
||||
} // NO_PROTO3
|
||||
optional int64 int64_field_list = 1002; // NO_PROTO3
|
||||
} // NO_PROTO3
|
||||
}
|
||||
|
||||
message TestMapField {
|
||||
|
@ -36,9 +36,9 @@ syntax = "proto2";
|
||||
|
||||
package protobuf_unittest;
|
||||
|
||||
|
||||
import "google/protobuf/unittest_custom_options.proto";
|
||||
|
||||
|
||||
message TestMessageWithCustomOptionsContainer {
|
||||
optional TestMessageWithCustomOptions field = 1;
|
||||
}
|
||||
|
@ -36,13 +36,10 @@ package protobuf_unittest;
|
||||
message Proto1 {
|
||||
option experimental_java_message_interface =
|
||||
"com.google.protobuf.ExtraInterfaces.HasBoolValue";
|
||||
|
||||
option experimental_java_interface_extends =
|
||||
"com.google.protobuf.ExtraInterfaces.HasByteValue";
|
||||
|
||||
option experimental_java_message_interface =
|
||||
"com.google.protobuf.ExtraInterfaces.HasStringValue<Proto1>";
|
||||
|
||||
option experimental_java_builder_interface =
|
||||
"com.google.protobuf.ExtraInterfaces.HasStringValueBuilder"
|
||||
"<Proto1, Builder>";
|
||||
|
@ -31,9 +31,11 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package wrappers_test;
|
||||
|
||||
import "google/protobuf/wrappers.proto";
|
||||
|
||||
option java_package = "com.google.protobuf.wrapperstest";
|
||||
option java_outer_classname = "WrappersTestProto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
|
||||
message TopLevelMessage {
|
||||
int32 field1 = 1;
|
||||
|
@ -32,15 +32,15 @@ syntax = "proto3";
|
||||
|
||||
package json_test;
|
||||
|
||||
option java_package = "com.google.protobuf.util.proto";
|
||||
option java_outer_classname = "JsonTestProto";
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
|
||||
option java_package = "com.google.protobuf.util.proto";
|
||||
option java_outer_classname = "JsonTestProto";
|
||||
|
||||
message TestAllTypes {
|
||||
enum NestedEnum {
|
||||
|
@ -657,7 +657,8 @@ class EnumDescriptor(_NestedDescriptorBase):
|
||||
for value in self.values:
|
||||
value.type = self
|
||||
self.values_by_name = dict((v.name, v) for v in values)
|
||||
self.values_by_number = dict((v.number, v) for v in values)
|
||||
# Values are reversed to ensure that the first alias is retained.
|
||||
self.values_by_number = dict((v.number, v) for v in reversed(values))
|
||||
|
||||
def CopyToProto(self, proto):
|
||||
"""Copies this to a descriptor_pb2.EnumDescriptorProto.
|
||||
|
@ -306,6 +306,16 @@ class GeneratorTest(unittest.TestCase):
|
||||
else:
|
||||
self.assertIsNone(field_desc.containing_oneof)
|
||||
|
||||
def testEnumWithDupValue(self):
|
||||
self.assertEqual('FOO1',
|
||||
unittest_pb2.TestEnumWithDupValue.Name(unittest_pb2.FOO1))
|
||||
self.assertEqual('FOO1',
|
||||
unittest_pb2.TestEnumWithDupValue.Name(unittest_pb2.FOO2))
|
||||
self.assertEqual('BAR1',
|
||||
unittest_pb2.TestEnumWithDupValue.Name(unittest_pb2.BAR1))
|
||||
self.assertEqual('BAR1',
|
||||
unittest_pb2.TestEnumWithDupValue.Name(unittest_pb2.BAR2))
|
||||
|
||||
|
||||
class SymbolDatabaseRegistrationTest(unittest.TestCase):
|
||||
"""Checks that messages, enums and files are correctly registered."""
|
||||
|
@ -1880,15 +1880,6 @@ PyObject* PyMethodDescriptor_FromDescriptor(
|
||||
&PyMethodDescriptor_Type, method_descriptor, NULL);
|
||||
}
|
||||
|
||||
const MethodDescriptor* PyMethodDescriptor_AsDescriptor(PyObject* obj) {
|
||||
if (!PyObject_TypeCheck(obj, &PyMethodDescriptor_Type)) {
|
||||
PyErr_SetString(PyExc_TypeError, "Not a MethodDescriptor");
|
||||
return NULL;
|
||||
}
|
||||
return reinterpret_cast<const MethodDescriptor*>(
|
||||
reinterpret_cast<PyBaseDescriptor*>(obj)->descriptor);
|
||||
}
|
||||
|
||||
// Add a enum values to a type dictionary.
|
||||
static bool AddEnumValues(PyTypeObject *type,
|
||||
const EnumDescriptor* enum_descriptor) {
|
||||
|
@ -81,7 +81,6 @@ const FieldDescriptor* PyFieldDescriptor_AsDescriptor(PyObject* obj);
|
||||
const EnumDescriptor* PyEnumDescriptor_AsDescriptor(PyObject* obj);
|
||||
const FileDescriptor* PyFileDescriptor_AsDescriptor(PyObject* obj);
|
||||
const ServiceDescriptor* PyServiceDescriptor_AsDescriptor(PyObject* obj);
|
||||
const MethodDescriptor* PyMethodDescriptor_AsDescriptor(PyObject* obj);
|
||||
|
||||
// Returns the raw C++ pointer.
|
||||
const void* PyDescriptor_AsVoidPtr(PyObject* obj);
|
||||
|
@ -84,19 +84,8 @@ extern PyTypeObject PyDescriptorPool_Type;
|
||||
namespace cdescriptor_pool {
|
||||
|
||||
|
||||
// Looks up a message by name.
|
||||
// Returns a message Descriptor, or NULL if not found.
|
||||
const Descriptor* FindMessageTypeByName(PyDescriptorPool* self,
|
||||
const string& name);
|
||||
|
||||
// The functions below are also exposed as methods of the DescriptorPool type.
|
||||
|
||||
// Looks up a message by name. Returns a PyMessageDescriptor corresponding to
|
||||
// the field on success, or NULL on failure.
|
||||
//
|
||||
// Returns a new reference.
|
||||
PyObject* FindMessageByName(PyDescriptorPool* self, PyObject* name);
|
||||
|
||||
// Looks up a field by name. Returns a PyFieldDescriptor corresponding to
|
||||
// the field on success, or NULL on failure.
|
||||
//
|
||||
|
@ -100,9 +100,6 @@ struct MapIterator {
|
||||
// We store this so that if the map is modified during iteration we can throw
|
||||
// an error.
|
||||
uint64 version;
|
||||
// True if the container is empty. We signal this separately to avoid calling
|
||||
// any of the iteration methods, which are non-const.
|
||||
bool empty;
|
||||
};
|
||||
|
||||
Message* MapContainer::GetMutableMessage() {
|
||||
|
@ -73,11 +73,6 @@ class ScopedPythonPtr {
|
||||
return p;
|
||||
}
|
||||
|
||||
PyObjectStruct* operator->() const {
|
||||
assert(ptr_ != NULL);
|
||||
return ptr_;
|
||||
}
|
||||
|
||||
PyObjectStruct* get() const { return ptr_; }
|
||||
|
||||
PyObject* as_pyobject() const { return reinterpret_cast<PyObject*>(ptr_); }
|
||||
|
@ -186,19 +186,19 @@ const char* Any::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::intern
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string type_url = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_type_url(), ptr, ctx, "google.protobuf.Any.type_url");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_type_url(), ptr, ctx, "google.protobuf.Any.type_url");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// bytes value = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(mutable_value(), ptr, ctx);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(mutable_value(), ptr, ctx);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -207,7 +207,7 @@ const char* Any::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::intern
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -292,70 +292,70 @@ const char* Api::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::intern
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Api.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Api.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Method methods = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_methods(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 18) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_methods(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Option options = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 26) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 26) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 26);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string version = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 34) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_version(), ptr, ctx, "google.protobuf.Api.version");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// .google.protobuf.SourceContext source_context = 5;
|
||||
case 5: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 42) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_source_context(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// repeated .google.protobuf.Mixin mixins = 6;
|
||||
case 6: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 50) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_mixins(), ptr);
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_version(), ptr, ctx, "google.protobuf.Api.version");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 50) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.SourceContext source_context = 5;
|
||||
case 5:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
|
||||
ptr = ctx->ParseMessage(mutable_source_context(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Mixin mixins = 6;
|
||||
case 6:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_mixins(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 50);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Syntax syntax = 7;
|
||||
case 7: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 56) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -364,7 +364,7 @@ const char* Api::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::intern
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -904,60 +904,60 @@ const char* Method::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::int
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Method.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// string request_type_url = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_request_type_url(), ptr, ctx, "google.protobuf.Method.request_type_url");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// bool request_streaming = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 24) goto handle_unusual;
|
||||
request_streaming_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// string response_type_url = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 34) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_response_type_url(), ptr, ctx, "google.protobuf.Method.response_type_url");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// bool response_streaming = 5;
|
||||
case 5: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 40) goto handle_unusual;
|
||||
response_streaming_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// repeated .google.protobuf.Option options = 6;
|
||||
case 6: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 50) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Method.name");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 50) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string request_type_url = 2;
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_request_type_url(), ptr, ctx, "google.protobuf.Method.request_type_url");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// bool request_streaming = 3;
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
|
||||
request_streaming_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string response_type_url = 4;
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_response_type_url(), ptr, ctx, "google.protobuf.Method.response_type_url");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// bool response_streaming = 5;
|
||||
case 5:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
|
||||
response_streaming_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Option options = 6;
|
||||
case 6:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 50);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Syntax syntax = 7;
|
||||
case 7: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 56) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -966,7 +966,7 @@ const char* Method::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::int
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1476,19 +1476,19 @@ const char* Mixin::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Mixin.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Mixin.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string root = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_root(), ptr, ctx, "google.protobuf.Mixin.root");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_root(), ptr, ctx, "google.protobuf.Mixin.root");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1497,7 +1497,7 @@ const char* Mixin::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -143,10 +143,6 @@ class CommandLineInterfaceTest : public testing::Test {
|
||||
// substring.
|
||||
void ExpectErrorSubstring(const std::string& expected_substring);
|
||||
|
||||
// Like ExpectErrorSubstring, but checks that Run() returned zero.
|
||||
void ExpectErrorSubstringWithZeroReturnCode(
|
||||
const std::string& expected_substring);
|
||||
|
||||
// Checks that the captured stdout is the same as the expected_text.
|
||||
void ExpectCapturedStdout(const std::string& expected_text);
|
||||
|
||||
@ -155,9 +151,11 @@ class CommandLineInterfaceTest : public testing::Test {
|
||||
void ExpectCapturedStdoutSubstringWithZeroReturnCode(
|
||||
const std::string& expected_substring);
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
// Returns true if ExpectErrorSubstring(expected_substring) would pass, but
|
||||
// does not fail otherwise.
|
||||
bool HasAlternateErrorSubstring(const std::string& expected_substring);
|
||||
#endif // _WIN32 && !__CYGWIN__
|
||||
|
||||
// Checks that MockCodeGenerator::Generate() was called in the given
|
||||
// context (or the generator in test_plugin.cc, which produces the same
|
||||
@ -189,7 +187,9 @@ class CommandLineInterfaceTest : public testing::Test {
|
||||
void CheckGeneratedAnnotations(const std::string& name,
|
||||
const std::string& file);
|
||||
|
||||
#if defined(_WIN32)
|
||||
void ExpectNullCodeGeneratorCalled(const std::string& parameter);
|
||||
#endif // _WIN32
|
||||
|
||||
|
||||
void ReadDescriptorSet(const std::string& filename,
|
||||
@ -407,17 +407,13 @@ void CommandLineInterfaceTest::ExpectErrorSubstring(
|
||||
EXPECT_PRED_FORMAT2(testing::IsSubstring, expected_substring, error_text_);
|
||||
}
|
||||
|
||||
void CommandLineInterfaceTest::ExpectErrorSubstringWithZeroReturnCode(
|
||||
const std::string& expected_substring) {
|
||||
EXPECT_EQ(0, return_code_);
|
||||
EXPECT_PRED_FORMAT2(testing::IsSubstring, expected_substring, error_text_);
|
||||
}
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
bool CommandLineInterfaceTest::HasAlternateErrorSubstring(
|
||||
const std::string& expected_substring) {
|
||||
EXPECT_NE(0, return_code_);
|
||||
return error_text_.find(expected_substring) != std::string::npos;
|
||||
}
|
||||
#endif // _WIN32 && !__CYGWIN__
|
||||
|
||||
void CommandLineInterfaceTest::ExpectGenerated(
|
||||
const std::string& generator_name, const std::string& parameter,
|
||||
@ -457,11 +453,13 @@ void CommandLineInterfaceTest::CheckGeneratedAnnotations(
|
||||
MockCodeGenerator::CheckGeneratedAnnotations(name, file, temp_directory_);
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
void CommandLineInterfaceTest::ExpectNullCodeGeneratorCalled(
|
||||
const std::string& parameter) {
|
||||
EXPECT_TRUE(null_generator_->called_);
|
||||
EXPECT_EQ(parameter, null_generator_->parameter_);
|
||||
}
|
||||
#endif // _WIN32
|
||||
|
||||
|
||||
void CommandLineInterfaceTest::ReadDescriptorSet(
|
||||
|
@ -32,6 +32,8 @@
|
||||
// Based on original Protocol Buffers design by
|
||||
// Sanjay Ghemawat, Jeff Dean, and others.
|
||||
|
||||
#include <google/protobuf/compiler/cpp/cpp_helpers.h>
|
||||
|
||||
#include <functional>
|
||||
#include <limits>
|
||||
#include <map>
|
||||
@ -39,9 +41,8 @@
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
|
||||
#include <google/protobuf/stubs/logging.h>
|
||||
#include <google/protobuf/stubs/common.h>
|
||||
#include <google/protobuf/compiler/cpp/cpp_helpers.h>
|
||||
#include <google/protobuf/stubs/logging.h>
|
||||
#include <google/protobuf/descriptor.h>
|
||||
|
||||
#include <google/protobuf/compiler/scc.h>
|
||||
@ -1340,15 +1341,6 @@ bool MaybeBootstrap(const Options& options, GeneratorContext* generator_context,
|
||||
}
|
||||
}
|
||||
|
||||
bool ShouldRepeat(const FieldDescriptor* descriptor,
|
||||
internal::WireFormatLite::WireType wiretype) {
|
||||
constexpr int kMaxTwoByteFieldNumber = 16 * 128;
|
||||
return descriptor->number() < kMaxTwoByteFieldNumber &&
|
||||
descriptor->is_repeated() &&
|
||||
(!descriptor->is_packable() ||
|
||||
wiretype != internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED);
|
||||
}
|
||||
|
||||
class ParseLoopGenerator {
|
||||
public:
|
||||
ParseLoopGenerator(int num_hasbits, const Options& options,
|
||||
@ -1584,12 +1576,25 @@ class ParseLoopGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
void GenerateCaseBody(internal::WireFormatLite::WireType wiretype,
|
||||
const FieldDescriptor* field) {
|
||||
if (ShouldRepeat(field, wiretype)) {
|
||||
format_("while (true) {\n");
|
||||
format_.Indent();
|
||||
}
|
||||
// Convert a 1 or 2 byte varint into the equivalent value upon a direct load.
|
||||
static uint32 SmallVarintValue(uint32 x) {
|
||||
GOOGLE_DCHECK(x < 128 * 128);
|
||||
if (x >= 128) x += (x & 0xFF80) + 128;
|
||||
return x;
|
||||
}
|
||||
|
||||
static bool ShouldRepeat(const FieldDescriptor* descriptor,
|
||||
internal::WireFormatLite::WireType wiretype) {
|
||||
constexpr int kMaxTwoByteFieldNumber = 16 * 128;
|
||||
return descriptor->number() < kMaxTwoByteFieldNumber &&
|
||||
descriptor->is_repeated() &&
|
||||
(!descriptor->is_packable() ||
|
||||
wiretype != internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED);
|
||||
}
|
||||
|
||||
void GenerateFieldBody(internal::WireFormatLite::WireType wiretype,
|
||||
const FieldDescriptor* field) {
|
||||
uint32 tag = WireFormatLite::MakeTag(field->number(), wiretype);
|
||||
switch (wiretype) {
|
||||
case WireFormatLite::WIRETYPE_VARINT: {
|
||||
std::string type = PrimitiveTypeName(options_, field->cpp_type());
|
||||
@ -1599,17 +1604,20 @@ class ParseLoopGenerator {
|
||||
"$uint64$ val = $pi_ns$::ReadVarint(&ptr);\n"
|
||||
"CHK_(ptr);\n");
|
||||
if (!HasPreservingUnknownEnumSemantics(field)) {
|
||||
format_(
|
||||
"if (!$1$_IsValid(val)) {\n"
|
||||
" $pi_ns$::WriteVarint($2$, val, "
|
||||
"mutable_unknown_fields());\n"
|
||||
" break;\n"
|
||||
"}\n",
|
||||
QualifiedClassName(field->enum_type(), options_),
|
||||
field->number());
|
||||
format_("if (PROTOBUF_PREDICT_TRUE($1$_IsValid(val))) {\n",
|
||||
QualifiedClassName(field->enum_type(), options_));
|
||||
format_.Indent();
|
||||
}
|
||||
format_("$1$_$2$(static_cast<$3$>(val));\n", prefix, FieldName(field),
|
||||
QualifiedClassName(field->enum_type(), options_));
|
||||
if (!HasPreservingUnknownEnumSemantics(field)) {
|
||||
format_.Outdent();
|
||||
format_(
|
||||
"} else {\n"
|
||||
" $pi_ns$::WriteVarint($1$, val, mutable_unknown_fields());\n"
|
||||
"}\n",
|
||||
field->number());
|
||||
}
|
||||
} else {
|
||||
int size = field->type() == FieldDescriptor::TYPE_SINT32 ? 32 : 64;
|
||||
std::string zigzag;
|
||||
@ -1664,9 +1672,9 @@ class ParseLoopGenerator {
|
||||
}
|
||||
case WireFormatLite::WIRETYPE_START_GROUP: {
|
||||
format_(
|
||||
"ptr = ctx->ParseGroup($1$_$2$(), ptr, tag);\n"
|
||||
"ptr = ctx->ParseGroup($1$_$2$(), ptr, $3$);\n"
|
||||
"CHK_(ptr);\n",
|
||||
field->is_repeated() ? "add" : "mutable", FieldName(field));
|
||||
field->is_repeated() ? "add" : "mutable", FieldName(field), tag);
|
||||
break;
|
||||
}
|
||||
case WireFormatLite::WIRETYPE_END_GROUP: {
|
||||
@ -1674,56 +1682,30 @@ class ParseLoopGenerator {
|
||||
break;
|
||||
}
|
||||
} // switch (wire_type)
|
||||
|
||||
if (ShouldRepeat(field, wiretype)) {
|
||||
uint32 x = field->number() * 8 + wiretype;
|
||||
int cnt = 1;
|
||||
string type = "uint8";
|
||||
if (x >= 128) {
|
||||
x += (x & 0xFF80) + 128;
|
||||
cnt = 2;
|
||||
type = "uint16";
|
||||
}
|
||||
format_(
|
||||
"if (!ctx->DataAvailable(ptr)) break;\n"
|
||||
"if ($pi_ns$::UnalignedLoad<$1$>(ptr) != $2$) break;\n"
|
||||
"ptr += $3$;\n",
|
||||
IntTypeName(options_, type), x, cnt);
|
||||
format_.Outdent();
|
||||
format_("}\n");
|
||||
}
|
||||
format_("break;\n");
|
||||
}
|
||||
|
||||
void GenerateCaseBody(const FieldDescriptor* field) {
|
||||
// Returns the tag for this field and in case of repeated packable fields,
|
||||
// sets a fallback tag in fallback_tag_ptr.
|
||||
static uint32 ExpectedTag(const FieldDescriptor* field,
|
||||
uint32* fallback_tag_ptr) {
|
||||
uint32 expected_tag;
|
||||
if (field->is_packable()) {
|
||||
auto expected_wiretype = WireFormat::WireTypeForFieldType(field->type());
|
||||
GOOGLE_CHECK(expected_wiretype != WireFormatLite::WIRETYPE_LENGTH_DELIMITED);
|
||||
uint32 expected_tag =
|
||||
expected_tag =
|
||||
WireFormatLite::MakeTag(field->number(), expected_wiretype);
|
||||
GOOGLE_CHECK(expected_wiretype != WireFormatLite::WIRETYPE_LENGTH_DELIMITED);
|
||||
auto fallback_wiretype = WireFormatLite::WIRETYPE_LENGTH_DELIMITED;
|
||||
uint32 fallback_tag =
|
||||
WireFormatLite::MakeTag(field->number(), fallback_wiretype);
|
||||
|
||||
if (field->is_packed()) {
|
||||
std::swap(expected_tag, fallback_tag);
|
||||
std::swap(expected_wiretype, fallback_wiretype);
|
||||
}
|
||||
|
||||
format_("if (static_cast<$uint8$>(tag) == $1$) {\n", expected_tag & 0xFF);
|
||||
format_.Indent();
|
||||
GenerateCaseBody(expected_wiretype, field);
|
||||
format_.Outdent();
|
||||
format_(
|
||||
"} else if (static_cast<$uint8$>(tag) != $1$) goto handle_unusual;\n",
|
||||
fallback_tag & 0xFF);
|
||||
GenerateCaseBody(fallback_wiretype, field);
|
||||
if (field->is_packed()) std::swap(expected_tag, fallback_tag);
|
||||
*fallback_tag_ptr = fallback_tag;
|
||||
} else {
|
||||
auto wiretype = WireFormat::WireTypeForField(field);
|
||||
format_("if (static_cast<$uint8$>(tag) != $1$) goto handle_unusual;\n",
|
||||
WireFormat::MakeTag(field) & 0xFF);
|
||||
GenerateCaseBody(wiretype, field);
|
||||
auto expected_wiretype = WireFormat::WireTypeForField(field);
|
||||
expected_tag =
|
||||
WireFormatLite::MakeTag(field->number(), expected_wiretype);
|
||||
}
|
||||
return expected_tag;
|
||||
}
|
||||
|
||||
void GenerateParseLoop(
|
||||
@ -1753,13 +1735,49 @@ class ParseLoopGenerator {
|
||||
}
|
||||
format_(
|
||||
"// $1$\n"
|
||||
"case $2$: {\n",
|
||||
"case $2$:\n",
|
||||
def, field->number());
|
||||
format_.Indent();
|
||||
GenerateCaseBody(field);
|
||||
uint32 fallback_tag = 0;
|
||||
uint32 expected_tag = ExpectedTag(field, &fallback_tag);
|
||||
format_(
|
||||
"if (PROTOBUF_PREDICT_TRUE(static_cast<$uint8$>(tag) == $1$)) {\n",
|
||||
expected_tag & 0xFF);
|
||||
format_.Indent();
|
||||
auto wiretype = WireFormatLite::GetTagWireType(expected_tag);
|
||||
uint32 tag = WireFormatLite::MakeTag(field->number(), wiretype);
|
||||
int tag_size = io::CodedOutputStream::VarintSize32(tag);
|
||||
bool is_repeat = ShouldRepeat(field, wiretype);
|
||||
if (is_repeat) {
|
||||
format_(
|
||||
"ptr -= $1$;\n"
|
||||
"do {\n"
|
||||
" ptr += $1$;\n",
|
||||
tag_size);
|
||||
format_.Indent();
|
||||
}
|
||||
GenerateFieldBody(wiretype, field);
|
||||
if (is_repeat) {
|
||||
string type = tag_size == 2 ? "uint16" : "uint8";
|
||||
format_.Outdent();
|
||||
format_(
|
||||
" if (!ctx->DataAvailable(ptr)) break;\n"
|
||||
"} while ($pi_ns$::UnalignedLoad<$1$>(ptr) == $2$);\n",
|
||||
IntTypeName(options_, type), SmallVarintValue(tag));
|
||||
}
|
||||
format_.Outdent();
|
||||
format_("}\n"); // case
|
||||
} // for fields
|
||||
if (fallback_tag) {
|
||||
format_("} else if (static_cast<$uint8$>(tag) == $1$) {\n",
|
||||
fallback_tag & 0xFF);
|
||||
format_.Indent();
|
||||
GenerateFieldBody(WireFormatLite::GetTagWireType(fallback_tag), field);
|
||||
format_.Outdent();
|
||||
}
|
||||
format_.Outdent();
|
||||
format_(
|
||||
" } else goto handle_unusual;\n"
|
||||
" continue;\n");
|
||||
} // for loop over ordered fields
|
||||
|
||||
// Default case
|
||||
format_("default: {\n");
|
||||
@ -1770,7 +1788,7 @@ class ParseLoopGenerator {
|
||||
" goto success;\n"
|
||||
" }\n");
|
||||
if (IsMapEntryMessage(descriptor)) {
|
||||
format_(" break;\n");
|
||||
format_(" continue;\n");
|
||||
} else {
|
||||
if (descriptor->extension_range_count() > 0) {
|
||||
format_("if (");
|
||||
@ -1792,17 +1810,16 @@ class ParseLoopGenerator {
|
||||
}
|
||||
format_(") {\n");
|
||||
format_(
|
||||
" ptr = _extensions_.ParseField(tag, ptr, \n"
|
||||
" internal_default_instance(), &_internal_metadata_, "
|
||||
"ctx);\n"
|
||||
" ptr = _extensions_.ParseField(tag, ptr,\n"
|
||||
" internal_default_instance(), &_internal_metadata_, ctx);\n"
|
||||
" CHK_(ptr != nullptr);\n"
|
||||
" break;\n"
|
||||
" continue;\n"
|
||||
"}\n");
|
||||
}
|
||||
format_(
|
||||
" ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);\n"
|
||||
" CHK_(ptr != nullptr);\n"
|
||||
" break;\n");
|
||||
" continue;\n");
|
||||
}
|
||||
format_("}\n"); // default case
|
||||
format_.Outdent();
|
||||
|
@ -1141,7 +1141,7 @@ TEST(GENERATED_ENUM_TEST_NAME, MinAndMax) {
|
||||
#ifndef PROTOBUF_TEST_NO_DESCRIPTORS
|
||||
|
||||
TEST(GENERATED_ENUM_TEST_NAME, Name) {
|
||||
// "Names" in the presence of dup values are a bit arbitrary.
|
||||
// "Names" in the presence of dup values map to the first alias.
|
||||
EXPECT_EQ("FOO1", UNITTEST::TestEnumWithDupValue_Name(UNITTEST::FOO1));
|
||||
EXPECT_EQ("FOO1", UNITTEST::TestEnumWithDupValue_Name(UNITTEST::FOO2));
|
||||
|
||||
|
@ -124,7 +124,6 @@ class ImporterTest : public testing::Test {
|
||||
}
|
||||
|
||||
// Return the collected error text
|
||||
std::string error() const { return error_collector_.text_; }
|
||||
std::string warning() const { return error_collector_.warning_text_; }
|
||||
|
||||
MockErrorCollector error_collector_;
|
||||
|
@ -158,6 +158,7 @@ void PrintEnumVerifierLogic(io::Printer* printer,
|
||||
|
||||
std::string UnderscoresToCamelCase(const std::string& input,
|
||||
bool cap_next_letter) {
|
||||
GOOGLE_CHECK(!input.empty());
|
||||
std::string result;
|
||||
// Note: I distrust ctype.h due to locales.
|
||||
for (int i = 0; i < input.size(); i++) {
|
||||
|
@ -2584,11 +2584,6 @@ class SourceInfoTest : public ParserTest {
|
||||
return HasSpan('\0', '\0', descriptor_proto, field_name, -1);
|
||||
}
|
||||
|
||||
bool HasSpan(const Message& descriptor_proto, const std::string& field_name,
|
||||
int index) {
|
||||
return HasSpan('\0', '\0', descriptor_proto, field_name, index);
|
||||
}
|
||||
|
||||
bool HasSpanWithComment(char start_marker, char end_marker,
|
||||
const Message& descriptor_proto,
|
||||
const FieldDescriptor* field, int index,
|
||||
|
@ -307,36 +307,36 @@ const char* Version::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::in
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// optional int32 major = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
HasBitSetters::set_has_major(&has_bits);
|
||||
major_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
HasBitSetters::set_has_major(&has_bits);
|
||||
major_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional int32 minor = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 16) goto handle_unusual;
|
||||
HasBitSetters::set_has_minor(&has_bits);
|
||||
minor_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
|
||||
HasBitSetters::set_has_minor(&has_bits);
|
||||
minor_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional int32 patch = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 24) goto handle_unusual;
|
||||
HasBitSetters::set_has_patch(&has_bits);
|
||||
patch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
|
||||
HasBitSetters::set_has_patch(&has_bits);
|
||||
patch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional string suffix = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 34) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_suffix(), ptr, ctx, "google.protobuf.compiler.Version.suffix");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_suffix(), ptr, ctx, "google.protobuf.compiler.Version.suffix");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -345,7 +345,7 @@ const char* Version::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::in
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -764,43 +764,43 @@ const char* CodeGeneratorRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAM
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// repeated string file_to_generate = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(add_file_to_generate(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorRequest.file_to_generate");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 10) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(add_file_to_generate(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorRequest.file_to_generate");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional string parameter = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_parameter(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorRequest.parameter");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// optional .google.protobuf.compiler.Version compiler_version = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 26) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_compiler_version(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
|
||||
case 15: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 122) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_proto_file(), ptr);
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_parameter(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorRequest.parameter");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 122) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional .google.protobuf.compiler.Version compiler_version = 3;
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
|
||||
ptr = ctx->ParseMessage(mutable_compiler_version(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
|
||||
case 15:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_proto_file(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 122);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -809,7 +809,7 @@ const char* CodeGeneratorRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAM
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1243,26 +1243,26 @@ const char* CodeGeneratorResponse_File::_InternalParse(const char* ptr, ::PROTOB
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// optional string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_name(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.File.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_name(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.File.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional string insertion_point = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_insertion_point(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_insertion_point(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// optional string content = 15;
|
||||
case 15: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 122) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_content(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.File.content");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 15:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_content(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.File.content");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1271,7 +1271,7 @@ const char* CodeGeneratorResponse_File::_InternalParse(const char* ptr, ::PROTOB
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1655,24 +1655,24 @@ const char* CodeGeneratorResponse::_InternalParse(const char* ptr, ::PROTOBUF_NA
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// optional string error = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_error(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.error");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
|
||||
case 15: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 122) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_file(), ptr);
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8Verify(mutable_error(), ptr, ctx, "google.protobuf.compiler.CodeGeneratorResponse.error");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 122) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
|
||||
case 15:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_file(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 122);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1681,7 +1681,7 @@ const char* CodeGeneratorResponse::_InternalParse(const char* ptr, ::PROTOBUF_NA
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -45,8 +45,70 @@
|
||||
namespace google {
|
||||
namespace protobuf {
|
||||
|
||||
namespace {
|
||||
void RecordMessageNames(const DescriptorProto& desc_proto,
|
||||
const std::string& prefix,
|
||||
std::set<std::string>* output) {
|
||||
GOOGLE_CHECK(desc_proto.has_name());
|
||||
std::string full_name = prefix.empty()
|
||||
? desc_proto.name()
|
||||
: StrCat(prefix, ".", desc_proto.name());
|
||||
output->insert(full_name);
|
||||
|
||||
for (const auto& d : desc_proto.nested_type()) {
|
||||
RecordMessageNames(d, full_name, output);
|
||||
}
|
||||
}
|
||||
|
||||
void RecordMessageNames(const FileDescriptorProto& file_proto,
|
||||
std::set<std::string>* output) {
|
||||
for (const auto& d : file_proto.message_type()) {
|
||||
RecordMessageNames(d, file_proto.package(), output);
|
||||
}
|
||||
}
|
||||
|
||||
template <typename Fn>
|
||||
bool ForAllFileProtos(DescriptorDatabase* db, Fn callback,
|
||||
std::vector<std::string>* output) {
|
||||
std::vector<std::string> file_names;
|
||||
if (!db->FindAllFileNames(&file_names)) {
|
||||
return false;
|
||||
}
|
||||
std::set<std::string> set;
|
||||
FileDescriptorProto file_proto;
|
||||
for (const auto& f : file_names) {
|
||||
file_proto.Clear();
|
||||
if (!db->FindFileByName(f, &file_proto)) {
|
||||
GOOGLE_LOG(ERROR) << "File not found in database (unexpected): " << f;
|
||||
return false;
|
||||
}
|
||||
callback(file_proto, &set);
|
||||
}
|
||||
output->insert(output->end(), set.begin(), set.end());
|
||||
return true;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
DescriptorDatabase::~DescriptorDatabase() {}
|
||||
|
||||
bool DescriptorDatabase::FindAllPackageNames(std::vector<std::string>* output) {
|
||||
return ForAllFileProtos(
|
||||
this,
|
||||
[](const FileDescriptorProto& file_proto, std::set<std::string>* set) {
|
||||
set->insert(file_proto.package());
|
||||
},
|
||||
output);
|
||||
}
|
||||
|
||||
bool DescriptorDatabase::FindAllMessageNames(std::vector<std::string>* output) {
|
||||
return ForAllFileProtos(
|
||||
this,
|
||||
[](const FileDescriptorProto& file_proto, std::set<std::string>* set) {
|
||||
RecordMessageNames(file_proto, set);
|
||||
},
|
||||
output);
|
||||
}
|
||||
|
||||
// ===================================================================
|
||||
|
||||
template <typename Value>
|
||||
|
@ -120,6 +120,20 @@ class PROTOBUF_EXPORT DescriptorDatabase {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Finds the package names and appends them to the output in an
|
||||
// undefined order. This method is best-effort: it's not guaranteed that the
|
||||
// database will find all packages. Returns true if the database supports
|
||||
// searching all package names, otherwise returns false and leaves output
|
||||
// unchanged.
|
||||
bool FindAllPackageNames(std::vector<std::string>* output);
|
||||
|
||||
// Finds the message names and appends them to the output in an
|
||||
// undefined order. This method is best-effort: it's not guaranteed that the
|
||||
// database will find all messages. Returns true if the database supports
|
||||
// searching all message names, otherwise returns false and leaves output
|
||||
// unchanged.
|
||||
bool FindAllMessageNames(std::vector<std::string>* output);
|
||||
|
||||
private:
|
||||
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(DescriptorDatabase);
|
||||
};
|
||||
|
@ -531,6 +531,46 @@ TEST(SimpleDescriptorDatabaseExtraTest, FindAllFileNames) {
|
||||
EXPECT_THAT(all_files, testing::ElementsAre("foo.proto"));
|
||||
}
|
||||
|
||||
TEST(SimpleDescriptorDatabaseExtraTest, FindAllPackageNames) {
|
||||
FileDescriptorProto f;
|
||||
f.set_name("foo.proto");
|
||||
f.set_package("foo");
|
||||
f.add_message_type()->set_name("Foo");
|
||||
|
||||
FileDescriptorProto b;
|
||||
b.set_name("bar.proto");
|
||||
b.set_package("");
|
||||
b.add_message_type()->set_name("Bar");
|
||||
|
||||
SimpleDescriptorDatabase db;
|
||||
db.Add(f);
|
||||
db.Add(b);
|
||||
|
||||
std::vector<string> packages;
|
||||
EXPECT_TRUE(db.FindAllPackageNames(&packages));
|
||||
EXPECT_THAT(packages, ::testing::UnorderedElementsAre("foo", ""));
|
||||
}
|
||||
|
||||
TEST(SimpleDescriptorDatabaseExtraTest, FindAllMessageNames) {
|
||||
FileDescriptorProto f;
|
||||
f.set_name("foo.proto");
|
||||
f.set_package("foo");
|
||||
f.add_message_type()->set_name("Foo");
|
||||
|
||||
FileDescriptorProto b;
|
||||
b.set_name("bar.proto");
|
||||
b.set_package("");
|
||||
b.add_message_type()->set_name("Bar");
|
||||
|
||||
SimpleDescriptorDatabase db;
|
||||
db.Add(f);
|
||||
db.Add(b);
|
||||
|
||||
std::vector<string> messages;
|
||||
EXPECT_TRUE(db.FindAllMessageNames(&messages));
|
||||
EXPECT_THAT(messages, ::testing::UnorderedElementsAre("foo.Foo", "Bar"));
|
||||
}
|
||||
|
||||
// ===================================================================
|
||||
|
||||
class MergedDescriptorDatabaseTest : public testing::Test {
|
||||
|
@ -169,19 +169,19 @@ const char* Duration::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::i
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// int64 seconds = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// int32 nanos = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 16) goto handle_unusual;
|
||||
nanos_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
|
||||
nanos_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -190,7 +190,7 @@ const char* Duration::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::i
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -161,7 +161,7 @@ const char* Empty::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -162,17 +162,17 @@ const char* FieldMask::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// repeated string paths = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_paths(), ptr, ctx, "google.protobuf.FieldMask.paths");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 10) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_paths(), ptr, ctx, "google.protobuf.FieldMask.paths");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -181,7 +181,7 @@ const char* FieldMask::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -152,12 +152,12 @@ const char* SourceContext::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string file_name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_file_name(), ptr, ctx, "google.protobuf.SourceContext.file_name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_file_name(), ptr, ctx, "google.protobuf.SourceContext.file_name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -166,7 +166,7 @@ const char* SourceContext::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -272,17 +272,17 @@ const char* Struct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::int
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// map<string, .google.protobuf.Value> fields = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(&fields_, ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 10) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(&fields_, ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -291,7 +291,7 @@ const char* Struct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::int
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -778,48 +778,48 @@ const char* Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// .google.protobuf.NullValue null_value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_null_value(static_cast<PROTOBUF_NAMESPACE_ID::NullValue>(val));
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_null_value(static_cast<PROTOBUF_NAMESPACE_ID::NullValue>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// double number_value = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 17) goto handle_unusual;
|
||||
set_number_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
|
||||
ptr += sizeof(double);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
|
||||
set_number_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
|
||||
ptr += sizeof(double);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string string_value = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 26) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_string_value(), ptr, ctx, "google.protobuf.Value.string_value");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_string_value(), ptr, ctx, "google.protobuf.Value.string_value");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// bool bool_value = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 32) goto handle_unusual;
|
||||
set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr));
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
|
||||
set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr));
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Struct struct_value = 5;
|
||||
case 5: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 42) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_struct_value(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
|
||||
ptr = ctx->ParseMessage(mutable_struct_value(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.ListValue list_value = 6;
|
||||
case 6: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 50) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_list_value(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
|
||||
ptr = ctx->ParseMessage(mutable_list_value(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -828,7 +828,7 @@ const char* Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1299,17 +1299,17 @@ const char* ListValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// repeated .google.protobuf.Value values = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_values(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 10) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_values(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1318,7 +1318,7 @@ const char* ListValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -52,9 +52,11 @@
|
||||
__attribute__((acquire_capability(__VA_ARGS__)))
|
||||
#define GOOGLE_PROTOBUF_RELEASE(...) \
|
||||
__attribute__((release_capability(__VA_ARGS__)))
|
||||
#define GOOGLE_PROTOBUF_CAPABILITY(x) __attribute__((capability(x)))
|
||||
#else
|
||||
#define GOOGLE_PROTOBUF_ACQUIRE(...)
|
||||
#define GOOGLE_PROTOBUF_RELEASE(...)
|
||||
#define GOOGLE_PROTOBUF_CAPABILITY(x)
|
||||
#endif
|
||||
|
||||
#include <google/protobuf/port_def.inc>
|
||||
@ -91,7 +93,7 @@ class PROTOBUF_EXPORT CriticalSectionLock {
|
||||
// Mutex is a natural type to wrap. As both google and other organization have
|
||||
// specialized mutexes. gRPC also provides an injection mechanism for custom
|
||||
// mutexes.
|
||||
class PROTOBUF_EXPORT WrappedMutex {
|
||||
class PROTOBUF_EXPORT GOOGLE_PROTOBUF_CAPABILITY("mutex") WrappedMutex {
|
||||
public:
|
||||
WrappedMutex() = default;
|
||||
void Lock() GOOGLE_PROTOBUF_ACQUIRE() { mu_.lock(); }
|
||||
|
@ -169,19 +169,19 @@ const char* Timestamp::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// int64 seconds = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// int32 nanos = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 16) goto handle_unusual;
|
||||
nanos_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
|
||||
nanos_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -190,7 +190,7 @@ const char* Timestamp::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -495,63 +495,63 @@ const char* Type::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inter
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Type.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Type.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Field fields = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_fields(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 18) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_fields(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated string oneofs = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 26) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_oneofs(), ptr, ctx, "google.protobuf.Type.oneofs");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 26) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_oneofs(), ptr, ctx, "google.protobuf.Type.oneofs");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 26);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Option options = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 34) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 34) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 34);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.SourceContext source_context = 5;
|
||||
case 5: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 42) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_source_context(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
|
||||
ptr = ctx->ParseMessage(mutable_source_context(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Syntax syntax = 6;
|
||||
case 6: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 48) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -560,7 +560,7 @@ const char* Type::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inter
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1097,82 +1097,82 @@ const char* Field::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// .google.protobuf.Field.Kind kind = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_kind(static_cast<PROTOBUF_NAMESPACE_ID::Field_Kind>(val));
|
||||
break;
|
||||
}
|
||||
// .google.protobuf.Field.Cardinality cardinality = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 16) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_cardinality(static_cast<PROTOBUF_NAMESPACE_ID::Field_Cardinality>(val));
|
||||
break;
|
||||
}
|
||||
// int32 number = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 24) goto handle_unusual;
|
||||
number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// string name = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 34) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Field.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// string type_url = 6;
|
||||
case 6: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 50) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_type_url(), ptr, ctx, "google.protobuf.Field.type_url");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// int32 oneof_index = 7;
|
||||
case 7: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 56) goto handle_unusual;
|
||||
oneof_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// bool packed = 8;
|
||||
case 8: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 64) goto handle_unusual;
|
||||
packed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// repeated .google.protobuf.Option options = 9;
|
||||
case 9: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 74) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 74) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
set_kind(static_cast<PROTOBUF_NAMESPACE_ID::Field_Kind>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Field.Cardinality cardinality = 2;
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_cardinality(static_cast<PROTOBUF_NAMESPACE_ID::Field_Cardinality>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// int32 number = 3;
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
|
||||
number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string name = 4;
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Field.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string type_url = 6;
|
||||
case 6:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_type_url(), ptr, ctx, "google.protobuf.Field.type_url");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// int32 oneof_index = 7;
|
||||
case 7:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
|
||||
oneof_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// bool packed = 8;
|
||||
case 8:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
|
||||
packed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Option options = 9;
|
||||
case 9:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 74);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string json_name = 10;
|
||||
case 10: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 82) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_json_name(), ptr, ctx, "google.protobuf.Field.json_name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 10:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_json_name(), ptr, ctx, "google.protobuf.Field.json_name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// string default_value = 11;
|
||||
case 11: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 90) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_default_value(), ptr, ctx, "google.protobuf.Field.default_value");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_default_value(), ptr, ctx, "google.protobuf.Field.default_value");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1181,7 +1181,7 @@ const char* Field::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inte
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1882,51 +1882,51 @@ const char* Enum::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inter
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Enum.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Enum.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.EnumValue enumvalue = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_enumvalue(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 18) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_enumvalue(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Option options = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 26) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 26) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 26);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.SourceContext source_context = 4;
|
||||
case 4: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 34) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_source_context(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
|
||||
ptr = ctx->ParseMessage(mutable_source_context(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Syntax syntax = 5;
|
||||
case 5: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 40) goto handle_unusual;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_syntax(static_cast<PROTOBUF_NAMESPACE_ID::Syntax>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1935,7 +1935,7 @@ const char* Enum::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::inter
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -2389,31 +2389,31 @@ const char* EnumValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.EnumValue.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// int32 number = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 16) goto handle_unusual;
|
||||
number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
// repeated .google.protobuf.Option options = 3;
|
||||
case 3: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 26) goto handle_unusual;
|
||||
while (true) {
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.EnumValue.name");
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
if (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) != 26) break;
|
||||
ptr += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// int32 number = 2;
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
|
||||
number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .google.protobuf.Option options = 3;
|
||||
case 3:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_options(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 26);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -2422,7 +2422,7 @@ const char* EnumValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -2828,19 +2828,19 @@ const char* Option::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::int
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string name = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Option.name");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "google.protobuf.Option.name");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .google.protobuf.Any value = 2;
|
||||
case 2: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 18) goto handle_unusual;
|
||||
ptr = ctx->ParseMessage(mutable_value(), ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ctx->ParseMessage(mutable_value(), ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -2849,7 +2849,7 @@ const char* Option::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::int
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include <google/protobuf/io/zero_copy_stream_impl.h>
|
||||
#include <google/protobuf/descriptor.h>
|
||||
#include <google/protobuf/stubs/once.h>
|
||||
#include <google/protobuf/unknown_field_set.h>
|
||||
#include <google/protobuf/wire_format.h>
|
||||
#include <google/protobuf/wire_format_lite.h>
|
||||
#include <google/protobuf/util/internal/field_mask_utility.h>
|
||||
|
@ -102,8 +102,7 @@ class PROTOBUF_EXPORT ProtoStreamObjectWriter : public ProtoWriter {
|
||||
ignore_unknown_fields(false),
|
||||
ignore_unknown_enum_values(false),
|
||||
use_lower_camel_for_enums(false),
|
||||
// TODO(haon): Change this to false by default.
|
||||
case_insensitive_enum_parsing(true),
|
||||
case_insensitive_enum_parsing(false),
|
||||
ignore_null_value_map_entry(false) {}
|
||||
|
||||
// Default instance of Options with all options set to defaults.
|
||||
|
@ -159,10 +159,6 @@ class BaseProtoStreamObjectWriterTest
|
||||
|
||||
void CheckOutput(const Message& expected) { CheckOutput(expected, -1); }
|
||||
|
||||
const google::protobuf::Type* GetType(const Descriptor* descriptor) {
|
||||
return helper_.GetTypeInfo()->GetTypeByTypeUrl(GetTypeUrl(descriptor));
|
||||
}
|
||||
|
||||
testing::TypeInfoTestHelper helper_;
|
||||
MockErrorListener listener_;
|
||||
std::unique_ptr<GrowingArrayByteSink> output_;
|
||||
|
@ -61,8 +61,7 @@ struct JsonParseOptions {
|
||||
|
||||
JsonParseOptions()
|
||||
: ignore_unknown_fields(false),
|
||||
// TODO(haon): Change this to false by default.
|
||||
case_insensitive_enum_parsing(true) {}
|
||||
case_insensitive_enum_parsing(false) {}
|
||||
};
|
||||
|
||||
struct JsonPrintOptions {
|
||||
|
@ -462,10 +462,9 @@ TEST_F(JsonUtilTest, TestParsingEnumIgnoreCase) {
|
||||
" \"enum_value\":\"bar\"\n"
|
||||
"}";
|
||||
m.set_enum_value(proto3::FOO);
|
||||
EXPECT_TRUE(FromJson(input, &m, options));
|
||||
// Default behavior is case-insensitive.
|
||||
// TODO(haon): Change the default behavior to case-sensitive.
|
||||
ASSERT_EQ(proto3::BAR, m.enum_value());
|
||||
EXPECT_FALSE(FromJson(input, &m, options));
|
||||
// Default behavior is case-sensitive, so keep previous value.
|
||||
ASSERT_EQ(proto3::FOO, m.enum_value());
|
||||
}
|
||||
{
|
||||
JsonParseOptions options;
|
||||
|
@ -383,12 +383,12 @@ const char* DoubleValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// double value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 9) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
|
||||
ptr += sizeof(double);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 9)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
|
||||
ptr += sizeof(double);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -397,7 +397,7 @@ const char* DoubleValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -668,12 +668,12 @@ const char* FloatValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// float value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 13) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
|
||||
ptr += sizeof(float);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
|
||||
ptr += sizeof(float);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -682,7 +682,7 @@ const char* FloatValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -953,12 +953,12 @@ const char* Int64Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// int64 value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -967,7 +967,7 @@ const char* Int64Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1240,12 +1240,12 @@ const char* UInt64Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// uint64 value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1254,7 +1254,7 @@ const char* UInt64Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1527,12 +1527,12 @@ const char* Int32Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// int32 value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1541,7 +1541,7 @@ const char* Int32Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -1814,12 +1814,12 @@ const char* UInt32Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// uint32 value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -1828,7 +1828,7 @@ const char* UInt32Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -2101,12 +2101,12 @@ const char* BoolValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// bool value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 8) goto handle_unusual;
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
|
||||
value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -2115,7 +2115,7 @@ const char* BoolValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -2392,12 +2392,12 @@ const char* StringValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// string value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_value(), ptr, ctx, "google.protobuf.StringValue.value");
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_value(), ptr, ctx, "google.protobuf.StringValue.value");
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -2406,7 +2406,7 @@ const char* StringValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
@ -2699,12 +2699,12 @@ const char* BytesValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
CHK_(ptr);
|
||||
switch (tag >> 3) {
|
||||
// bytes value = 1;
|
||||
case 1: {
|
||||
if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) != 10) goto handle_unusual;
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(mutable_value(), ptr, ctx);
|
||||
CHK_(ptr);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
|
||||
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(mutable_value(), ptr, ctx);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -2713,7 +2713,7 @@ const char* BytesValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID:
|
||||
}
|
||||
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
|
||||
CHK_(ptr != nullptr);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
} // switch
|
||||
} // while
|
||||
|
Loading…
Reference in New Issue
Block a user