diff --git a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl index f8029a59141..9746b65fa74 100644 --- a/bazel/grpc_deps.bzl +++ b/bazel/grpc_deps.bzl @@ -338,11 +338,11 @@ def grpc_deps(): if "upb" not in native.existing_rules(): http_archive( name = "upb", - sha256 = "c0b97bf91dfea7e8d7579c24e2ecdd02d10b00f3c5defc3dce23d95100d0e664", - strip_prefix = "upb-60607da72e89ba0c84c84054d2e562d8b6b61177", + sha256 = "6a5f67874af66b239b709c572ac1a5a00fdb1b29beaf13c3e6f79b1ba10dc7c4", + strip_prefix = "upb-2de300726a1ba2de9a468468dc5ff9ed17a3215f", urls = [ - "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/60607da72e89ba0c84c84054d2e562d8b6b61177.tar.gz", - "https://github.com/protocolbuffers/upb/archive/60607da72e89ba0c84c84054d2e562d8b6b61177.tar.gz", + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/2de300726a1ba2de9a468468dc5ff9ed17a3215f.tar.gz", + "https://github.com/protocolbuffers/upb/archive/2de300726a1ba2de9a468468dc5ff9ed17a3215f.tar.gz", ], ) diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index b05211611b4..1bcd8c40aa3 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -846,22 +846,23 @@ Pod::Spec.new do |s| 'third_party/re2/util/test.h', 'third_party/re2/util/utf.h', 'third_party/re2/util/util.h', - 'third_party/upb/third_party/wyhash/wyhash.h', 'third_party/upb/upb/decode.h', - 'third_party/upb/upb/decode.int.h', 'third_party/upb/upb/decode_fast.h', + 'third_party/upb/upb/decode_internal.h', 'third_party/upb/upb/def.h', 'third_party/upb/upb/def.hpp', 'third_party/upb/upb/encode.h', 'third_party/upb/upb/msg.h', + 'third_party/upb/upb/msg_internal.h', 'third_party/upb/upb/port_def.inc', 'third_party/upb/upb/port_undef.inc', 'third_party/upb/upb/reflection.h', - 'third_party/upb/upb/table.int.h', + 'third_party/upb/upb/reflection.hpp', + 'third_party/upb/upb/table_internal.h', 'third_party/upb/upb/text_encode.h', 'third_party/upb/upb/upb.h', 'third_party/upb/upb/upb.hpp', - 'third_party/upb/upb/upb.int.h', + 'third_party/upb/upb/upb_internal.h', 'third_party/xxhash/xxhash.h' ss.private_header_files = 'src/core/ext/filters/client_channel/backend_metric.h', @@ -1457,22 +1458,23 @@ Pod::Spec.new do |s| 'third_party/re2/util/test.h', 'third_party/re2/util/utf.h', 'third_party/re2/util/util.h', - 'third_party/upb/third_party/wyhash/wyhash.h', 'third_party/upb/upb/decode.h', - 'third_party/upb/upb/decode.int.h', 'third_party/upb/upb/decode_fast.h', + 'third_party/upb/upb/decode_internal.h', 'third_party/upb/upb/def.h', 'third_party/upb/upb/def.hpp', 'third_party/upb/upb/encode.h', 'third_party/upb/upb/msg.h', + 'third_party/upb/upb/msg_internal.h', 'third_party/upb/upb/port_def.inc', 'third_party/upb/upb/port_undef.inc', 'third_party/upb/upb/reflection.h', - 'third_party/upb/upb/table.int.h', + 'third_party/upb/upb/reflection.hpp', + 'third_party/upb/upb/table_internal.h', 'third_party/upb/upb/text_encode.h', 'third_party/upb/upb/upb.h', 'third_party/upb/upb/upb.hpp', - 'third_party/upb/upb/upb.int.h', + 'third_party/upb/upb/upb_internal.h', 'third_party/xxhash/xxhash.h' end diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 49b36a2da7a..1bfba46ee75 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -1426,12 +1426,11 @@ Pod::Spec.new do |s| 'third_party/re2/util/test.h', 'third_party/re2/util/utf.h', 'third_party/re2/util/util.h', - 'third_party/upb/third_party/wyhash/wyhash.h', 'third_party/upb/upb/decode.c', 'third_party/upb/upb/decode.h', - 'third_party/upb/upb/decode.int.h', 'third_party/upb/upb/decode_fast.c', 'third_party/upb/upb/decode_fast.h', + 'third_party/upb/upb/decode_internal.h', 'third_party/upb/upb/def.c', 'third_party/upb/upb/def.h', 'third_party/upb/upb/def.hpp', @@ -1439,18 +1438,20 @@ Pod::Spec.new do |s| 'third_party/upb/upb/encode.h', 'third_party/upb/upb/msg.c', 'third_party/upb/upb/msg.h', + 'third_party/upb/upb/msg_internal.h', 'third_party/upb/upb/port_def.inc', 'third_party/upb/upb/port_undef.inc', 'third_party/upb/upb/reflection.c', 'third_party/upb/upb/reflection.h', + 'third_party/upb/upb/reflection.hpp', 'third_party/upb/upb/table.c', - 'third_party/upb/upb/table.int.h', + 'third_party/upb/upb/table_internal.h', 'third_party/upb/upb/text_encode.c', 'third_party/upb/upb/text_encode.h', 'third_party/upb/upb/upb.c', 'third_party/upb/upb/upb.h', 'third_party/upb/upb/upb.hpp', - 'third_party/upb/upb/upb.int.h', + 'third_party/upb/upb/upb_internal.h', 'third_party/xxhash/xxhash.h' ss.private_header_files = 'src/core/ext/filters/client_channel/backend_metric.h', 'src/core/ext/filters/client_channel/backup_poller.h', @@ -2034,22 +2035,23 @@ Pod::Spec.new do |s| 'third_party/re2/util/test.h', 'third_party/re2/util/utf.h', 'third_party/re2/util/util.h', - 'third_party/upb/third_party/wyhash/wyhash.h', 'third_party/upb/upb/decode.h', - 'third_party/upb/upb/decode.int.h', 'third_party/upb/upb/decode_fast.h', + 'third_party/upb/upb/decode_internal.h', 'third_party/upb/upb/def.h', 'third_party/upb/upb/def.hpp', 'third_party/upb/upb/encode.h', 'third_party/upb/upb/msg.h', + 'third_party/upb/upb/msg_internal.h', 'third_party/upb/upb/port_def.inc', 'third_party/upb/upb/port_undef.inc', 'third_party/upb/upb/reflection.h', - 'third_party/upb/upb/table.int.h', + 'third_party/upb/upb/reflection.hpp', + 'third_party/upb/upb/table_internal.h', 'third_party/upb/upb/text_encode.h', 'third_party/upb/upb/upb.h', 'third_party/upb/upb/upb.hpp', - 'third_party/upb/upb/upb.int.h', + 'third_party/upb/upb/upb_internal.h', 'third_party/xxhash/xxhash.h' end diff --git a/grpc.gemspec b/grpc.gemspec index 60e758df65f..d84c0aef717 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -2143,12 +2143,11 @@ Gem::Specification.new do |s| s.files += %w( third_party/re2/util/test.h ) s.files += %w( third_party/re2/util/utf.h ) s.files += %w( third_party/re2/util/util.h ) - s.files += %w( third_party/upb/third_party/wyhash/wyhash.h ) s.files += %w( third_party/upb/upb/decode.c ) s.files += %w( third_party/upb/upb/decode.h ) - s.files += %w( third_party/upb/upb/decode.int.h ) s.files += %w( third_party/upb/upb/decode_fast.c ) s.files += %w( third_party/upb/upb/decode_fast.h ) + s.files += %w( third_party/upb/upb/decode_internal.h ) s.files += %w( third_party/upb/upb/def.c ) s.files += %w( third_party/upb/upb/def.h ) s.files += %w( third_party/upb/upb/def.hpp ) @@ -2156,18 +2155,20 @@ Gem::Specification.new do |s| s.files += %w( third_party/upb/upb/encode.h ) s.files += %w( third_party/upb/upb/msg.c ) s.files += %w( third_party/upb/upb/msg.h ) + s.files += %w( third_party/upb/upb/msg_internal.h ) s.files += %w( third_party/upb/upb/port_def.inc ) s.files += %w( third_party/upb/upb/port_undef.inc ) s.files += %w( third_party/upb/upb/reflection.c ) s.files += %w( third_party/upb/upb/reflection.h ) + s.files += %w( third_party/upb/upb/reflection.hpp ) s.files += %w( third_party/upb/upb/table.c ) - s.files += %w( third_party/upb/upb/table.int.h ) + s.files += %w( third_party/upb/upb/table_internal.h ) s.files += %w( third_party/upb/upb/text_encode.c ) s.files += %w( third_party/upb/upb/text_encode.h ) s.files += %w( third_party/upb/upb/upb.c ) s.files += %w( third_party/upb/upb/upb.h ) s.files += %w( third_party/upb/upb/upb.hpp ) - s.files += %w( third_party/upb/upb/upb.int.h ) + s.files += %w( third_party/upb/upb/upb_internal.h ) s.files += %w( third_party/xxhash/xxhash.h ) s.files += %w( third_party/zlib/adler32.c ) s.files += %w( third_party/zlib/compress.c ) diff --git a/package.xml b/package.xml index ce0ff37e127..2be1e39a18a 100644 --- a/package.xml +++ b/package.xml @@ -2068,12 +2068,11 @@ - - + @@ -2081,18 +2080,20 @@ + + - + - + diff --git a/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c index d230ccb2ff6..8db55430231 100644 --- a/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +++ b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/admin/v3/config_dump.upb.h" #include "envoy/config/bootstrap/v3/bootstrap.upb.h" #include "google/protobuf/any.upb.h" @@ -22,13 +22,13 @@ static const upb_msglayout *const envoy_admin_v3_ConfigDump_submsgs[1] = { }; static const upb_msglayout_field envoy_admin_v3_ConfigDump__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_ConfigDump_msginit = { &envoy_admin_v3_ConfigDump_submsgs[0], &envoy_admin_v3_ConfigDump__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_admin_v3_UpdateFailureState_submsgs[2] = { @@ -37,16 +37,16 @@ static const upb_msglayout *const envoy_admin_v3_UpdateFailureState_submsgs[2] = }; static const upb_msglayout_field envoy_admin_v3_UpdateFailureState__fields[4] = { - {1, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {2, UPB_SIZE(24, 48), 2, 1, 11, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {4, UPB_SIZE(12, 24), 0, 0, 9, 1}, + {1, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 48), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_UpdateFailureState_msginit = { &envoy_admin_v3_UpdateFailureState_submsgs[0], &envoy_admin_v3_UpdateFailureState__fields[0], - UPB_SIZE(32, 64), 4, false, 255, + UPB_SIZE(32, 64), 4, false, 4, 255, }; static const upb_msglayout *const envoy_admin_v3_BootstrapConfigDump_submsgs[2] = { @@ -55,14 +55,14 @@ static const upb_msglayout *const envoy_admin_v3_BootstrapConfigDump_submsgs[2] }; static const upb_msglayout_field envoy_admin_v3_BootstrapConfigDump__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_BootstrapConfigDump_msginit = { &envoy_admin_v3_BootstrapConfigDump_submsgs[0], &envoy_admin_v3_BootstrapConfigDump__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_submsgs[2] = { @@ -71,15 +71,15 @@ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_submsgs[2] }; static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 1, 11, 3}, - {3, UPB_SIZE(12, 24), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_ListenersConfigDump_msginit = { &envoy_admin_v3_ListenersConfigDump_submsgs[0], &envoy_admin_v3_ListenersConfigDump__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_StaticListener_submsgs[2] = { @@ -88,14 +88,14 @@ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_StaticListe }; static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_StaticListener__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ListenersConfigDump_StaticListener_msginit = { &envoy_admin_v3_ListenersConfigDump_StaticListener_submsgs[0], &envoy_admin_v3_ListenersConfigDump_StaticListener__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicListenerState_submsgs[2] = { @@ -104,15 +104,15 @@ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicList }; static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_DynamicListenerState__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit = { &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_submsgs[0], &envoy_admin_v3_ListenersConfigDump_DynamicListenerState__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicListener_submsgs[2] = { @@ -121,18 +121,18 @@ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicList }; static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_DynamicListener__fields[6] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 1, 0, 11, 1}, - {3, UPB_SIZE(20, 32), 2, 0, 11, 1}, - {4, UPB_SIZE(24, 40), 3, 0, 11, 1}, - {5, UPB_SIZE(28, 48), 4, 1, 11, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 32), 2, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), 3, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(28, 48), 4, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit = { &envoy_admin_v3_ListenersConfigDump_DynamicListener_submsgs[0], &envoy_admin_v3_ListenersConfigDump_DynamicListener__fields[0], - UPB_SIZE(32, 64), 6, false, 255, + UPB_SIZE(32, 64), 6, false, 6, 255, }; static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_submsgs[2] = { @@ -141,16 +141,16 @@ static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_submsgs[2] = }; static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump__fields[4] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 1, 11, 3}, - {3, UPB_SIZE(12, 24), 0, 0, 11, 3}, - {4, UPB_SIZE(16, 32), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_ClustersConfigDump_msginit = { &envoy_admin_v3_ClustersConfigDump_submsgs[0], &envoy_admin_v3_ClustersConfigDump__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_StaticCluster_submsgs[2] = { @@ -159,14 +159,14 @@ static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_StaticCluste }; static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump_StaticCluster__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit = { &envoy_admin_v3_ClustersConfigDump_StaticCluster_submsgs[0], &envoy_admin_v3_ClustersConfigDump_StaticCluster__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_DynamicCluster_submsgs[3] = { @@ -176,17 +176,17 @@ static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_DynamicClust }; static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump_DynamicCluster__fields[5] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(20, 32), 2, 2, 11, 1}, - {4, UPB_SIZE(24, 40), 3, 0, 11, 1}, - {5, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 32), 2, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), 3, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit = { &envoy_admin_v3_ClustersConfigDump_DynamicCluster_submsgs[0], &envoy_admin_v3_ClustersConfigDump_DynamicCluster__fields[0], - UPB_SIZE(32, 48), 5, false, 255, + UPB_SIZE(32, 48), 5, false, 5, 255, }; static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_submsgs[2] = { @@ -195,14 +195,14 @@ static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_submsgs[2] = { }; static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump__fields[2] = { - {2, UPB_SIZE(0, 0), 0, 1, 11, 3}, - {3, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {2, UPB_SIZE(0, 0), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_RoutesConfigDump_msginit = { &envoy_admin_v3_RoutesConfigDump_submsgs[0], &envoy_admin_v3_RoutesConfigDump__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 0, 255, }; static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_submsgs[2] = { @@ -211,14 +211,14 @@ static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_StaticRouteCon }; static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump_StaticRouteConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit = { &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_submsgs[0], &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_submsgs[3] = { @@ -228,17 +228,17 @@ static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_DynamicRouteCo }; static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__fields[5] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(20, 32), 2, 2, 11, 1}, - {4, UPB_SIZE(24, 40), 3, 0, 11, 1}, - {5, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 32), 2, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), 3, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit = { &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_submsgs[0], &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__fields[0], - UPB_SIZE(32, 48), 5, false, 255, + UPB_SIZE(32, 48), 5, false, 5, 255, }; static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_submsgs[2] = { @@ -247,14 +247,14 @@ static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_submsgs[ }; static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 1, 11, 3}, - {2, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 1, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_msginit = { &envoy_admin_v3_ScopedRoutesConfigDump_submsgs[0], &envoy_admin_v3_ScopedRoutesConfigDump__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_submsgs[2] = { @@ -263,15 +263,15 @@ static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_InlineSc }; static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {3, UPB_SIZE(12, 24), 1, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit = { &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_submsgs[0], &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_submsgs[3] = { @@ -281,18 +281,18 @@ static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_DynamicS }; static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs__fields[6] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(32, 56), 0, 1, 11, 3}, - {4, UPB_SIZE(24, 40), 1, 2, 11, 1}, - {5, UPB_SIZE(28, 48), 2, 0, 11, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(32, 56), 0, 1, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(24, 40), 1, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(28, 48), 2, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit = { &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_submsgs[0], &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs__fields[0], - UPB_SIZE(40, 64), 6, false, 255, + UPB_SIZE(40, 64), 6, false, 6, 255, }; static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_submsgs[2] = { @@ -301,15 +301,15 @@ static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_submsgs[2] = }; static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 1, 11, 3}, - {2, UPB_SIZE(4, 8), 0, 0, 11, 3}, - {3, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 1, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_SecretsConfigDump_msginit = { &envoy_admin_v3_SecretsConfigDump_submsgs[0], &envoy_admin_v3_SecretsConfigDump__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_DynamicSecret_submsgs[3] = { @@ -319,18 +319,18 @@ static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_DynamicSecret }; static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump_DynamicSecret__fields[6] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(24, 40), 1, 2, 11, 1}, - {4, UPB_SIZE(28, 48), 2, 1, 11, 1}, - {5, UPB_SIZE(32, 56), 3, 0, 11, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 40), 1, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 48), 2, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 56), 3, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit = { &envoy_admin_v3_SecretsConfigDump_DynamicSecret_submsgs[0], &envoy_admin_v3_SecretsConfigDump_DynamicSecret__fields[0], - UPB_SIZE(40, 64), 6, false, 255, + UPB_SIZE(40, 64), 6, false, 6, 255, }; static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_StaticSecret_submsgs[2] = { @@ -339,15 +339,15 @@ static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_StaticSecret_ }; static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump_StaticSecret__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit = { &envoy_admin_v3_SecretsConfigDump_StaticSecret_submsgs[0], &envoy_admin_v3_SecretsConfigDump_StaticSecret__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_submsgs[2] = { @@ -356,14 +356,14 @@ static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_submsgs[2] }; static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump__fields[2] = { - {2, UPB_SIZE(0, 0), 0, 1, 11, 3}, - {3, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {2, UPB_SIZE(0, 0), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_admin_v3_EndpointsConfigDump_msginit = { &envoy_admin_v3_EndpointsConfigDump_submsgs[0], &envoy_admin_v3_EndpointsConfigDump__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 0, 255, }; static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_submsgs[2] = { @@ -372,14 +372,14 @@ static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_StaticEndpo }; static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit = { &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_submsgs[0], &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_submsgs[3] = { @@ -389,17 +389,17 @@ static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_DynamicEndp }; static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__fields[5] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(20, 32), 2, 2, 11, 1}, - {4, UPB_SIZE(24, 40), 3, 0, 11, 1}, - {5, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 32), 2, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), 3, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit = { &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_submsgs[0], &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__fields[0], - UPB_SIZE(32, 48), 5, false, 255, + UPB_SIZE(32, 48), 5, false, 5, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h index 6f117c6659d..db9fe28efb7 100644 --- a/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +++ b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPB_H_ #define ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -110,13 +110,19 @@ UPB_INLINE envoy_admin_v3_ConfigDump *envoy_admin_v3_ConfigDump_new(upb_arena *a UPB_INLINE envoy_admin_v3_ConfigDump *envoy_admin_v3_ConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ConfigDump *ret = envoy_admin_v3_ConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ConfigDump *envoy_admin_v3_ConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ConfigDump *ret = envoy_admin_v3_ConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ConfigDump_serialize(const envoy_admin_v3_ConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ConfigDump_msginit, arena, len); @@ -147,13 +153,19 @@ UPB_INLINE envoy_admin_v3_UpdateFailureState *envoy_admin_v3_UpdateFailureState_ UPB_INLINE envoy_admin_v3_UpdateFailureState *envoy_admin_v3_UpdateFailureState_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_UpdateFailureState *ret = envoy_admin_v3_UpdateFailureState_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_UpdateFailureState_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_UpdateFailureState_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_UpdateFailureState *envoy_admin_v3_UpdateFailureState_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_UpdateFailureState *ret = envoy_admin_v3_UpdateFailureState_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_UpdateFailureState_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_UpdateFailureState_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_UpdateFailureState_serialize(const envoy_admin_v3_UpdateFailureState *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_UpdateFailureState_msginit, arena, len); @@ -207,13 +219,19 @@ UPB_INLINE envoy_admin_v3_BootstrapConfigDump *envoy_admin_v3_BootstrapConfigDum UPB_INLINE envoy_admin_v3_BootstrapConfigDump *envoy_admin_v3_BootstrapConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_BootstrapConfigDump *ret = envoy_admin_v3_BootstrapConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_BootstrapConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_BootstrapConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_BootstrapConfigDump *envoy_admin_v3_BootstrapConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_BootstrapConfigDump *ret = envoy_admin_v3_BootstrapConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_BootstrapConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_BootstrapConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_BootstrapConfigDump_serialize(const envoy_admin_v3_BootstrapConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_BootstrapConfigDump_msginit, arena, len); @@ -259,13 +277,19 @@ UPB_INLINE envoy_admin_v3_ListenersConfigDump *envoy_admin_v3_ListenersConfigDum UPB_INLINE envoy_admin_v3_ListenersConfigDump *envoy_admin_v3_ListenersConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ListenersConfigDump *ret = envoy_admin_v3_ListenersConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ListenersConfigDump *envoy_admin_v3_ListenersConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ListenersConfigDump *ret = envoy_admin_v3_ListenersConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_serialize(const envoy_admin_v3_ListenersConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_msginit, arena, len); @@ -315,13 +339,19 @@ UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener *envoy_admin_v3_Lis UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener *envoy_admin_v3_ListenersConfigDump_StaticListener_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ListenersConfigDump_StaticListener *ret = envoy_admin_v3_ListenersConfigDump_StaticListener_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener *envoy_admin_v3_ListenersConfigDump_StaticListener_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ListenersConfigDump_StaticListener *ret = envoy_admin_v3_ListenersConfigDump_StaticListener_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_StaticListener_serialize(const envoy_admin_v3_ListenersConfigDump_StaticListener *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena, len); @@ -367,13 +397,19 @@ UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListenerState *envoy_admin_ UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListenerState *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ListenersConfigDump_DynamicListenerState *ret = envoy_admin_v3_ListenersConfigDump_DynamicListenerState_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListenerState *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ListenersConfigDump_DynamicListenerState *ret = envoy_admin_v3_ListenersConfigDump_DynamicListenerState_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_serialize(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena, len); @@ -423,13 +459,19 @@ UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener *envoy_admin_v3_Li UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener *envoy_admin_v3_ListenersConfigDump_DynamicListener_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ListenersConfigDump_DynamicListener *ret = envoy_admin_v3_ListenersConfigDump_DynamicListener_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener *envoy_admin_v3_ListenersConfigDump_DynamicListener_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ListenersConfigDump_DynamicListener *ret = envoy_admin_v3_ListenersConfigDump_DynamicListener_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_DynamicListener_serialize(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena, len); @@ -513,13 +555,19 @@ UPB_INLINE envoy_admin_v3_ClustersConfigDump *envoy_admin_v3_ClustersConfigDump_ UPB_INLINE envoy_admin_v3_ClustersConfigDump *envoy_admin_v3_ClustersConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ClustersConfigDump *ret = envoy_admin_v3_ClustersConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ClustersConfigDump *envoy_admin_v3_ClustersConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ClustersConfigDump *ret = envoy_admin_v3_ClustersConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ClustersConfigDump_serialize(const envoy_admin_v3_ClustersConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ClustersConfigDump_msginit, arena, len); @@ -584,13 +632,19 @@ UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster *envoy_admin_v3_Clust UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster *envoy_admin_v3_ClustersConfigDump_StaticCluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ClustersConfigDump_StaticCluster *ret = envoy_admin_v3_ClustersConfigDump_StaticCluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster *envoy_admin_v3_ClustersConfigDump_StaticCluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ClustersConfigDump_StaticCluster *ret = envoy_admin_v3_ClustersConfigDump_StaticCluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ClustersConfigDump_StaticCluster_serialize(const envoy_admin_v3_ClustersConfigDump_StaticCluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena, len); @@ -636,13 +690,19 @@ UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster *envoy_admin_v3_Clus UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster *envoy_admin_v3_ClustersConfigDump_DynamicCluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ClustersConfigDump_DynamicCluster *ret = envoy_admin_v3_ClustersConfigDump_DynamicCluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster *envoy_admin_v3_ClustersConfigDump_DynamicCluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ClustersConfigDump_DynamicCluster *ret = envoy_admin_v3_ClustersConfigDump_DynamicCluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ClustersConfigDump_DynamicCluster_serialize(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena, len); @@ -711,13 +771,19 @@ UPB_INLINE envoy_admin_v3_RoutesConfigDump *envoy_admin_v3_RoutesConfigDump_new( UPB_INLINE envoy_admin_v3_RoutesConfigDump *envoy_admin_v3_RoutesConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_RoutesConfigDump *ret = envoy_admin_v3_RoutesConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_RoutesConfigDump *envoy_admin_v3_RoutesConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_RoutesConfigDump *ret = envoy_admin_v3_RoutesConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_RoutesConfigDump_serialize(const envoy_admin_v3_RoutesConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_RoutesConfigDump_msginit, arena, len); @@ -763,13 +829,19 @@ UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *envoy_admin_v3_Rou UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_serialize(const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena, len); @@ -815,13 +887,19 @@ UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *envoy_admin_v3_Ro UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_serialize(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena, len); @@ -890,13 +968,19 @@ UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump *envoy_admin_v3_ScopedRoutesCon UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump *envoy_admin_v3_ScopedRoutesConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ScopedRoutesConfigDump *ret = envoy_admin_v3_ScopedRoutesConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump *envoy_admin_v3_ScopedRoutesConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ScopedRoutesConfigDump *ret = envoy_admin_v3_ScopedRoutesConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ScopedRoutesConfigDump_serialize(const envoy_admin_v3_ScopedRoutesConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena, len); @@ -942,13 +1026,19 @@ UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *envoy UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_serialize(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena, len); @@ -998,13 +1088,19 @@ UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *envo UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_serialize(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena, len); @@ -1077,13 +1173,19 @@ UPB_INLINE envoy_admin_v3_SecretsConfigDump *envoy_admin_v3_SecretsConfigDump_ne UPB_INLINE envoy_admin_v3_SecretsConfigDump *envoy_admin_v3_SecretsConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_SecretsConfigDump *ret = envoy_admin_v3_SecretsConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_SecretsConfigDump *envoy_admin_v3_SecretsConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_SecretsConfigDump *ret = envoy_admin_v3_SecretsConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_SecretsConfigDump_serialize(const envoy_admin_v3_SecretsConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_SecretsConfigDump_msginit, arena, len); @@ -1144,13 +1246,19 @@ UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret *envoy_admin_v3_Secret UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret *envoy_admin_v3_SecretsConfigDump_DynamicSecret_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_SecretsConfigDump_DynamicSecret *ret = envoy_admin_v3_SecretsConfigDump_DynamicSecret_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret *envoy_admin_v3_SecretsConfigDump_DynamicSecret_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_SecretsConfigDump_DynamicSecret *ret = envoy_admin_v3_SecretsConfigDump_DynamicSecret_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_SecretsConfigDump_DynamicSecret_serialize(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena, len); @@ -1223,13 +1331,19 @@ UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret *envoy_admin_v3_Secrets UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret *envoy_admin_v3_SecretsConfigDump_StaticSecret_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_SecretsConfigDump_StaticSecret *ret = envoy_admin_v3_SecretsConfigDump_StaticSecret_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret *envoy_admin_v3_SecretsConfigDump_StaticSecret_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_SecretsConfigDump_StaticSecret *ret = envoy_admin_v3_SecretsConfigDump_StaticSecret_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_SecretsConfigDump_StaticSecret_serialize(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena, len); @@ -1279,13 +1393,19 @@ UPB_INLINE envoy_admin_v3_EndpointsConfigDump *envoy_admin_v3_EndpointsConfigDum UPB_INLINE envoy_admin_v3_EndpointsConfigDump *envoy_admin_v3_EndpointsConfigDump_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_EndpointsConfigDump *ret = envoy_admin_v3_EndpointsConfigDump_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_EndpointsConfigDump *envoy_admin_v3_EndpointsConfigDump_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_EndpointsConfigDump *ret = envoy_admin_v3_EndpointsConfigDump_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_EndpointsConfigDump_serialize(const envoy_admin_v3_EndpointsConfigDump *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_EndpointsConfigDump_msginit, arena, len); @@ -1331,13 +1451,19 @@ UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *envoy_admin_ UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_serialize(const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena, len); @@ -1383,13 +1509,19 @@ UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *envoy_admin UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_serialize(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c b/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c index 007de310153..c3aaa116874 100644 --- a/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +++ b/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/annotations/deprecation.upb.h" #include "google/protobuf/descriptor.upb.h" diff --git a/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h b/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h index 1478843b590..c6ccf281db3 100644 --- a/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +++ b/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_ANNOTATIONS_DEPRECATION_PROTO_UPB_H_ #define ENVOY_ANNOTATIONS_DEPRECATION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" diff --git a/src/core/ext/upb-generated/envoy/annotations/resource.upb.c b/src/core/ext/upb-generated/envoy/annotations/resource.upb.c index 8f1877d1c6d..2f605df917e 100644 --- a/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +++ b/src/core/ext/upb-generated/envoy/annotations/resource.upb.c @@ -7,20 +7,20 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/annotations/resource.upb.h" #include "google/protobuf/descriptor.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field envoy_annotations_ResourceAnnotation__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_annotations_ResourceAnnotation_msginit = { NULL, &envoy_annotations_ResourceAnnotation__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/annotations/resource.upb.h b/src/core/ext/upb-generated/envoy/annotations/resource.upb.h index 534eef36b8c..4ba34cedc37 100644 --- a/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +++ b/src/core/ext/upb-generated/envoy/annotations/resource.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_ANNOTATIONS_RESOURCE_PROTO_UPB_H_ #define ENVOY_ANNOTATIONS_RESOURCE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_annotations_ResourceAnnotation *envoy_annotations_ResourceAnnot UPB_INLINE envoy_annotations_ResourceAnnotation *envoy_annotations_ResourceAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { envoy_annotations_ResourceAnnotation *ret = envoy_annotations_ResourceAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_annotations_ResourceAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_annotations_ResourceAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_annotations_ResourceAnnotation *envoy_annotations_ResourceAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_annotations_ResourceAnnotation *ret = envoy_annotations_ResourceAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_annotations_ResourceAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_annotations_ResourceAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_annotations_ResourceAnnotation_serialize(const envoy_annotations_ResourceAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_annotations_ResourceAnnotation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c b/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c index fa6dcbc1fb9..579a29724c8 100644 --- a/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +++ b/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/accesslog/v3/accesslog.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/route/v3/route_components.upb.h" @@ -27,15 +27,15 @@ static const upb_msglayout *const envoy_config_accesslog_v3_AccessLog_submsgs[2] }; static const upb_msglayout_field envoy_config_accesslog_v3_AccessLog__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {4, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_AccessLog_msginit = { &envoy_config_accesslog_v3_AccessLog_submsgs[0], &envoy_config_accesslog_v3_AccessLog__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 2, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_AccessLogFilter_submsgs[12] = { @@ -54,24 +54,24 @@ static const upb_msglayout *const envoy_config_accesslog_v3_AccessLogFilter_subm }; static const upb_msglayout_field envoy_config_accesslog_v3_AccessLogFilter__fields[12] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 10, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 11, 11, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 9, 11, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 7, 11, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, 1}, - {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 8, 11, 1}, - {10, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {11, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {12, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 10, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 11, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 9, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 7, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 8, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_AccessLogFilter_msginit = { &envoy_config_accesslog_v3_AccessLogFilter_submsgs[0], &envoy_config_accesslog_v3_AccessLogFilter__fields[0], - UPB_SIZE(8, 16), 12, false, 255, + UPB_SIZE(8, 16), 12, false, 12, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_ComparisonFilter_submsgs[1] = { @@ -79,14 +79,14 @@ static const upb_msglayout *const envoy_config_accesslog_v3_ComparisonFilter_sub }; static const upb_msglayout_field envoy_config_accesslog_v3_ComparisonFilter__fields[2] = { - {1, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {2, UPB_SIZE(8, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_ComparisonFilter_msginit = { &envoy_config_accesslog_v3_ComparisonFilter_submsgs[0], &envoy_config_accesslog_v3_ComparisonFilter__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_StatusCodeFilter_submsgs[1] = { @@ -94,13 +94,13 @@ static const upb_msglayout *const envoy_config_accesslog_v3_StatusCodeFilter_sub }; static const upb_msglayout_field envoy_config_accesslog_v3_StatusCodeFilter__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_StatusCodeFilter_msginit = { &envoy_config_accesslog_v3_StatusCodeFilter_submsgs[0], &envoy_config_accesslog_v3_StatusCodeFilter__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_DurationFilter_submsgs[1] = { @@ -108,25 +108,25 @@ static const upb_msglayout *const envoy_config_accesslog_v3_DurationFilter_subms }; static const upb_msglayout_field envoy_config_accesslog_v3_DurationFilter__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_DurationFilter_msginit = { &envoy_config_accesslog_v3_DurationFilter_submsgs[0], &envoy_config_accesslog_v3_DurationFilter__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; const upb_msglayout envoy_config_accesslog_v3_NotHealthCheckFilter_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_config_accesslog_v3_TraceableFilter_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_RuntimeFilter_submsgs[1] = { @@ -134,15 +134,15 @@ static const upb_msglayout *const envoy_config_accesslog_v3_RuntimeFilter_submsg }; static const upb_msglayout_field envoy_config_accesslog_v3_RuntimeFilter__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_RuntimeFilter_msginit = { &envoy_config_accesslog_v3_RuntimeFilter_submsgs[0], &envoy_config_accesslog_v3_RuntimeFilter__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_AndFilter_submsgs[1] = { @@ -150,13 +150,13 @@ static const upb_msglayout *const envoy_config_accesslog_v3_AndFilter_submsgs[1] }; static const upb_msglayout_field envoy_config_accesslog_v3_AndFilter__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_accesslog_v3_AndFilter_msginit = { &envoy_config_accesslog_v3_AndFilter_submsgs[0], &envoy_config_accesslog_v3_AndFilter__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_OrFilter_submsgs[1] = { @@ -164,13 +164,13 @@ static const upb_msglayout *const envoy_config_accesslog_v3_OrFilter_submsgs[1] }; static const upb_msglayout_field envoy_config_accesslog_v3_OrFilter__fields[1] = { - {2, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {2, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_accesslog_v3_OrFilter_msginit = { &envoy_config_accesslog_v3_OrFilter_submsgs[0], &envoy_config_accesslog_v3_OrFilter__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 0, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_HeaderFilter_submsgs[1] = { @@ -178,34 +178,34 @@ static const upb_msglayout *const envoy_config_accesslog_v3_HeaderFilter_submsgs }; static const upb_msglayout_field envoy_config_accesslog_v3_HeaderFilter__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_HeaderFilter_msginit = { &envoy_config_accesslog_v3_HeaderFilter_submsgs[0], &envoy_config_accesslog_v3_HeaderFilter__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_accesslog_v3_ResponseFlagFilter__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_accesslog_v3_ResponseFlagFilter_msginit = { NULL, &envoy_config_accesslog_v3_ResponseFlagFilter__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_accesslog_v3_GrpcStatusFilter__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 14, _UPB_LABEL_PACKED}, - {2, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 14, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {2, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_GrpcStatusFilter_msginit = { NULL, &envoy_config_accesslog_v3_GrpcStatusFilter__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_MetadataFilter_submsgs[2] = { @@ -214,14 +214,14 @@ static const upb_msglayout *const envoy_config_accesslog_v3_MetadataFilter_subms }; static const upb_msglayout_field envoy_config_accesslog_v3_MetadataFilter__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_MetadataFilter_msginit = { &envoy_config_accesslog_v3_MetadataFilter_submsgs[0], &envoy_config_accesslog_v3_MetadataFilter__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_accesslog_v3_ExtensionFilter_submsgs[1] = { @@ -229,14 +229,14 @@ static const upb_msglayout *const envoy_config_accesslog_v3_ExtensionFilter_subm }; static const upb_msglayout_field envoy_config_accesslog_v3_ExtensionFilter__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_accesslog_v3_ExtensionFilter_msginit = { &envoy_config_accesslog_v3_ExtensionFilter_submsgs[0], &envoy_config_accesslog_v3_ExtensionFilter__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h b/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h index 8e33c869c72..34eba0d3740 100644 --- a/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +++ b/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ACCESSLOG_V3_ACCESSLOG_PROTO_UPB_H_ #define ENVOY_CONFIG_ACCESSLOG_V3_ACCESSLOG_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -113,13 +113,19 @@ UPB_INLINE envoy_config_accesslog_v3_AccessLog *envoy_config_accesslog_v3_Access UPB_INLINE envoy_config_accesslog_v3_AccessLog *envoy_config_accesslog_v3_AccessLog_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_AccessLog *ret = envoy_config_accesslog_v3_AccessLog_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLog_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLog_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_AccessLog *envoy_config_accesslog_v3_AccessLog_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_AccessLog *ret = envoy_config_accesslog_v3_AccessLog_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLog_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLog_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_AccessLog_serialize(const envoy_config_accesslog_v3_AccessLog *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_AccessLog_msginit, arena, len); @@ -174,13 +180,19 @@ UPB_INLINE envoy_config_accesslog_v3_AccessLogFilter *envoy_config_accesslog_v3_ UPB_INLINE envoy_config_accesslog_v3_AccessLogFilter *envoy_config_accesslog_v3_AccessLogFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_AccessLogFilter *ret = envoy_config_accesslog_v3_AccessLogFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLogFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLogFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_AccessLogFilter *envoy_config_accesslog_v3_AccessLogFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_AccessLogFilter *ret = envoy_config_accesslog_v3_AccessLogFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLogFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AccessLogFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_AccessLogFilter_serialize(const envoy_config_accesslog_v3_AccessLogFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_AccessLogFilter_msginit, arena, len); @@ -381,13 +393,19 @@ UPB_INLINE envoy_config_accesslog_v3_ComparisonFilter *envoy_config_accesslog_v3 UPB_INLINE envoy_config_accesslog_v3_ComparisonFilter *envoy_config_accesslog_v3_ComparisonFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_ComparisonFilter *ret = envoy_config_accesslog_v3_ComparisonFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ComparisonFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ComparisonFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_ComparisonFilter *envoy_config_accesslog_v3_ComparisonFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_ComparisonFilter *ret = envoy_config_accesslog_v3_ComparisonFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ComparisonFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ComparisonFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_ComparisonFilter_serialize(const envoy_config_accesslog_v3_ComparisonFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_ComparisonFilter_msginit, arena, len); @@ -422,13 +440,19 @@ UPB_INLINE envoy_config_accesslog_v3_StatusCodeFilter *envoy_config_accesslog_v3 UPB_INLINE envoy_config_accesslog_v3_StatusCodeFilter *envoy_config_accesslog_v3_StatusCodeFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_StatusCodeFilter *ret = envoy_config_accesslog_v3_StatusCodeFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_StatusCodeFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_StatusCodeFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_StatusCodeFilter *envoy_config_accesslog_v3_StatusCodeFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_StatusCodeFilter *ret = envoy_config_accesslog_v3_StatusCodeFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_StatusCodeFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_StatusCodeFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_StatusCodeFilter_serialize(const envoy_config_accesslog_v3_StatusCodeFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_StatusCodeFilter_msginit, arena, len); @@ -459,13 +483,19 @@ UPB_INLINE envoy_config_accesslog_v3_DurationFilter *envoy_config_accesslog_v3_D UPB_INLINE envoy_config_accesslog_v3_DurationFilter *envoy_config_accesslog_v3_DurationFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_DurationFilter *ret = envoy_config_accesslog_v3_DurationFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_DurationFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_DurationFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_DurationFilter *envoy_config_accesslog_v3_DurationFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_DurationFilter *ret = envoy_config_accesslog_v3_DurationFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_DurationFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_DurationFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_DurationFilter_serialize(const envoy_config_accesslog_v3_DurationFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_DurationFilter_msginit, arena, len); @@ -496,13 +526,19 @@ UPB_INLINE envoy_config_accesslog_v3_NotHealthCheckFilter *envoy_config_accesslo UPB_INLINE envoy_config_accesslog_v3_NotHealthCheckFilter *envoy_config_accesslog_v3_NotHealthCheckFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_NotHealthCheckFilter *ret = envoy_config_accesslog_v3_NotHealthCheckFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_NotHealthCheckFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_NotHealthCheckFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_NotHealthCheckFilter *envoy_config_accesslog_v3_NotHealthCheckFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_NotHealthCheckFilter *ret = envoy_config_accesslog_v3_NotHealthCheckFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_NotHealthCheckFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_NotHealthCheckFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_NotHealthCheckFilter_serialize(const envoy_config_accesslog_v3_NotHealthCheckFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_NotHealthCheckFilter_msginit, arena, len); @@ -518,13 +554,19 @@ UPB_INLINE envoy_config_accesslog_v3_TraceableFilter *envoy_config_accesslog_v3_ UPB_INLINE envoy_config_accesslog_v3_TraceableFilter *envoy_config_accesslog_v3_TraceableFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_TraceableFilter *ret = envoy_config_accesslog_v3_TraceableFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_TraceableFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_TraceableFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_TraceableFilter *envoy_config_accesslog_v3_TraceableFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_TraceableFilter *ret = envoy_config_accesslog_v3_TraceableFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_TraceableFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_TraceableFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_TraceableFilter_serialize(const envoy_config_accesslog_v3_TraceableFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_TraceableFilter_msginit, arena, len); @@ -540,13 +582,19 @@ UPB_INLINE envoy_config_accesslog_v3_RuntimeFilter *envoy_config_accesslog_v3_Ru UPB_INLINE envoy_config_accesslog_v3_RuntimeFilter *envoy_config_accesslog_v3_RuntimeFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_RuntimeFilter *ret = envoy_config_accesslog_v3_RuntimeFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_RuntimeFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_RuntimeFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_RuntimeFilter *envoy_config_accesslog_v3_RuntimeFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_RuntimeFilter *ret = envoy_config_accesslog_v3_RuntimeFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_RuntimeFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_RuntimeFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_RuntimeFilter_serialize(const envoy_config_accesslog_v3_RuntimeFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_RuntimeFilter_msginit, arena, len); @@ -585,13 +633,19 @@ UPB_INLINE envoy_config_accesslog_v3_AndFilter *envoy_config_accesslog_v3_AndFil UPB_INLINE envoy_config_accesslog_v3_AndFilter *envoy_config_accesslog_v3_AndFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_AndFilter *ret = envoy_config_accesslog_v3_AndFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AndFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AndFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_AndFilter *envoy_config_accesslog_v3_AndFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_AndFilter *ret = envoy_config_accesslog_v3_AndFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AndFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_AndFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_AndFilter_serialize(const envoy_config_accesslog_v3_AndFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_AndFilter_msginit, arena, len); @@ -622,13 +676,19 @@ UPB_INLINE envoy_config_accesslog_v3_OrFilter *envoy_config_accesslog_v3_OrFilte UPB_INLINE envoy_config_accesslog_v3_OrFilter *envoy_config_accesslog_v3_OrFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_OrFilter *ret = envoy_config_accesslog_v3_OrFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_OrFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_OrFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_OrFilter *envoy_config_accesslog_v3_OrFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_OrFilter *ret = envoy_config_accesslog_v3_OrFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_OrFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_OrFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_OrFilter_serialize(const envoy_config_accesslog_v3_OrFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_OrFilter_msginit, arena, len); @@ -659,13 +719,19 @@ UPB_INLINE envoy_config_accesslog_v3_HeaderFilter *envoy_config_accesslog_v3_Hea UPB_INLINE envoy_config_accesslog_v3_HeaderFilter *envoy_config_accesslog_v3_HeaderFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_HeaderFilter *ret = envoy_config_accesslog_v3_HeaderFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_HeaderFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_HeaderFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_HeaderFilter *envoy_config_accesslog_v3_HeaderFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_HeaderFilter *ret = envoy_config_accesslog_v3_HeaderFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_HeaderFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_HeaderFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_HeaderFilter_serialize(const envoy_config_accesslog_v3_HeaderFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_HeaderFilter_msginit, arena, len); @@ -696,13 +762,19 @@ UPB_INLINE envoy_config_accesslog_v3_ResponseFlagFilter *envoy_config_accesslog_ UPB_INLINE envoy_config_accesslog_v3_ResponseFlagFilter *envoy_config_accesslog_v3_ResponseFlagFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_ResponseFlagFilter *ret = envoy_config_accesslog_v3_ResponseFlagFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ResponseFlagFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ResponseFlagFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_ResponseFlagFilter *envoy_config_accesslog_v3_ResponseFlagFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_ResponseFlagFilter *ret = envoy_config_accesslog_v3_ResponseFlagFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ResponseFlagFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ResponseFlagFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_ResponseFlagFilter_serialize(const envoy_config_accesslog_v3_ResponseFlagFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_ResponseFlagFilter_msginit, arena, len); @@ -729,13 +801,19 @@ UPB_INLINE envoy_config_accesslog_v3_GrpcStatusFilter *envoy_config_accesslog_v3 UPB_INLINE envoy_config_accesslog_v3_GrpcStatusFilter *envoy_config_accesslog_v3_GrpcStatusFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_GrpcStatusFilter *ret = envoy_config_accesslog_v3_GrpcStatusFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_GrpcStatusFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_GrpcStatusFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_GrpcStatusFilter *envoy_config_accesslog_v3_GrpcStatusFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_GrpcStatusFilter *ret = envoy_config_accesslog_v3_GrpcStatusFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_GrpcStatusFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_GrpcStatusFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_GrpcStatusFilter_serialize(const envoy_config_accesslog_v3_GrpcStatusFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_GrpcStatusFilter_msginit, arena, len); @@ -766,13 +844,19 @@ UPB_INLINE envoy_config_accesslog_v3_MetadataFilter *envoy_config_accesslog_v3_M UPB_INLINE envoy_config_accesslog_v3_MetadataFilter *envoy_config_accesslog_v3_MetadataFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_MetadataFilter *ret = envoy_config_accesslog_v3_MetadataFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_MetadataFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_MetadataFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_MetadataFilter *envoy_config_accesslog_v3_MetadataFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_MetadataFilter *ret = envoy_config_accesslog_v3_MetadataFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_MetadataFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_MetadataFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_MetadataFilter_serialize(const envoy_config_accesslog_v3_MetadataFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_MetadataFilter_msginit, arena, len); @@ -818,13 +902,19 @@ UPB_INLINE envoy_config_accesslog_v3_ExtensionFilter *envoy_config_accesslog_v3_ UPB_INLINE envoy_config_accesslog_v3_ExtensionFilter *envoy_config_accesslog_v3_ExtensionFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_accesslog_v3_ExtensionFilter *ret = envoy_config_accesslog_v3_ExtensionFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ExtensionFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ExtensionFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_accesslog_v3_ExtensionFilter *envoy_config_accesslog_v3_ExtensionFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_accesslog_v3_ExtensionFilter *ret = envoy_config_accesslog_v3_ExtensionFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ExtensionFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_accesslog_v3_ExtensionFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_accesslog_v3_ExtensionFilter_serialize(const envoy_config_accesslog_v3_ExtensionFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_accesslog_v3_ExtensionFilter_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c index 153cbc687c6..5b72a4c40df 100644 --- a/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +++ b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/bootstrap/v3/bootstrap.upb.h" #include "envoy/config/accesslog/v3/accesslog.upb.h" #include "envoy/config/cluster/v3/cluster.upb.h" @@ -61,42 +61,42 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_submsgs[21 }; static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap__fields[30] = { - {1, UPB_SIZE(32, 56), 1, 13, 11, 1}, - {2, UPB_SIZE(36, 64), 2, 3, 11, 1}, - {3, UPB_SIZE(40, 72), 3, 2, 11, 1}, - {4, UPB_SIZE(44, 80), 4, 4, 11, 1}, - {5, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {6, UPB_SIZE(100, 192), 0, 16, 11, 3}, - {7, UPB_SIZE(48, 88), 5, 19, 11, 1}, - {8, UPB_SIZE(52, 96), 6, 8, 11, 1}, - {9, UPB_SIZE(56, 104), 7, 18, 11, 1}, - {12, UPB_SIZE(60, 112), 8, 0, 11, 1}, - {13, UPB_SIZE(64, 120), 9, 15, 11, 1}, - {14, UPB_SIZE(68, 128), 10, 10, 11, 1}, - {15, UPB_SIZE(72, 136), 11, 17, 11, 1}, - {16, UPB_SIZE(3, 3), 0, 0, 8, 1}, - {17, UPB_SIZE(76, 144), 12, 7, 11, 1}, - {18, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {19, UPB_SIZE(80, 152), 13, 20, 11, 1}, - {20, UPB_SIZE(4, 4), 0, 0, 8, 1}, - {21, UPB_SIZE(104, 200), 0, 14, 11, 3}, - {22, UPB_SIZE(108, 208), 0, 11, 11, 3}, - {23, UPB_SIZE(84, 160), 14, 11, 11, 1}, - {24, UPB_SIZE(24, 40), 0, 0, 9, 1}, - {25, UPB_SIZE(112, 216), 0, 1, 11, _UPB_LABEL_MAP}, - {26, UPB_SIZE(116, 224), 0, 0, 9, 3}, - {27, UPB_SIZE(88, 168), 15, 9, 11, 1}, - {28, UPB_SIZE(120, 232), 0, 6, 11, 3}, - {29, UPB_SIZE(128, 248), UPB_SIZE(-133, -253), 0, 8, 1}, - {30, UPB_SIZE(92, 176), 16, 12, 11, 1}, - {31, UPB_SIZE(96, 184), 17, 14, 11, 1}, - {32, UPB_SIZE(124, 240), 0, 5, 11, 3}, + {1, UPB_SIZE(32, 56), 1, 13, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(36, 64), 2, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(40, 72), 3, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(44, 80), 4, 4, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(100, 192), 0, 16, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(48, 88), 5, 19, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(52, 96), 6, 8, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(56, 104), 7, 18, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(60, 112), 8, 0, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(64, 120), 9, 15, 11, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(68, 128), 10, 10, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(72, 136), 11, 17, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(3, 3), 0, 0, 8, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(76, 144), 12, 7, 11, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(80, 152), 13, 20, 11, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(104, 200), 0, 14, 11, _UPB_MODE_ARRAY}, + {22, UPB_SIZE(108, 208), 0, 11, 11, _UPB_MODE_ARRAY}, + {23, UPB_SIZE(84, 160), 14, 11, 11, _UPB_MODE_SCALAR}, + {24, UPB_SIZE(24, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {25, UPB_SIZE(112, 216), 0, 1, 11, _UPB_MODE_MAP}, + {26, UPB_SIZE(116, 224), 0, 0, 9, _UPB_MODE_ARRAY}, + {27, UPB_SIZE(88, 168), 15, 9, 11, _UPB_MODE_SCALAR}, + {28, UPB_SIZE(120, 232), 0, 6, 11, _UPB_MODE_ARRAY}, + {29, UPB_SIZE(128, 248), UPB_SIZE(-133, -253), 0, 8, _UPB_MODE_SCALAR}, + {30, UPB_SIZE(92, 176), 16, 12, 11, _UPB_MODE_SCALAR}, + {31, UPB_SIZE(96, 184), 17, 14, 11, _UPB_MODE_SCALAR}, + {32, UPB_SIZE(124, 240), 0, 5, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_msginit = { &envoy_config_bootstrap_v3_Bootstrap_submsgs[0], &envoy_config_bootstrap_v3_Bootstrap__fields[0], - UPB_SIZE(136, 256), 30, false, 255, + UPB_SIZE(136, 256), 30, false, 9, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_StaticResources_submsgs[3] = { @@ -106,15 +106,15 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_StaticReso }; static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap_StaticResources__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 1, 11, 3}, - {2, UPB_SIZE(4, 8), 0, 0, 11, 3}, - {3, UPB_SIZE(8, 16), 0, 2, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 1, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(8, 16), 0, 2, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit = { &envoy_config_bootstrap_v3_Bootstrap_StaticResources_submsgs[0], &envoy_config_bootstrap_v3_Bootstrap_StaticResources__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_DynamicResources_submsgs[2] = { @@ -123,17 +123,17 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_DynamicRes }; static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap_DynamicResources__fields[5] = { - {1, UPB_SIZE(20, 40), 1, 1, 11, 1}, - {2, UPB_SIZE(24, 48), 2, 1, 11, 1}, - {3, UPB_SIZE(28, 56), 3, 0, 11, 1}, - {5, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {6, UPB_SIZE(12, 24), 0, 0, 9, 1}, + {1, UPB_SIZE(20, 40), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 48), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 56), 3, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit = { &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_submsgs[0], &envoy_config_bootstrap_v3_Bootstrap_DynamicResources__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 3, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_submsgs[1] = { @@ -141,14 +141,14 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_Certificat }; static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_msginit = { &envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_submsgs[0], &envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Admin_submsgs[3] = { @@ -158,17 +158,17 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Admin_submsgs[3] = { }; static const upb_msglayout_field envoy_config_bootstrap_v3_Admin__fields[5] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 1, 1, 11, 1}, - {4, UPB_SIZE(24, 48), 0, 2, 11, 3}, - {5, UPB_SIZE(28, 56), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 1, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 48), 0, 2, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(28, 56), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_bootstrap_v3_Admin_msginit = { &envoy_config_bootstrap_v3_Admin_submsgs[0], &envoy_config_bootstrap_v3_Admin__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 5, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_ClusterManager_submsgs[3] = { @@ -178,16 +178,16 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_ClusterManager_subms }; static const upb_msglayout_field envoy_config_bootstrap_v3_ClusterManager__fields[4] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 2, 11, 1}, - {4, UPB_SIZE(20, 40), 3, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), 3, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_msginit = { &envoy_config_bootstrap_v3_ClusterManager_submsgs[0], &envoy_config_bootstrap_v3_ClusterManager__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_submsgs[1] = { @@ -195,14 +195,14 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_ClusterManager_Outli }; static const upb_msglayout_field envoy_config_bootstrap_v3_ClusterManager_OutlierDetection__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit = { &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_submsgs[0], &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdogs_submsgs[1] = { @@ -210,14 +210,14 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdogs_submsgs[1] }; static const upb_msglayout_field envoy_config_bootstrap_v3_Watchdogs__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_Watchdogs_msginit = { &envoy_config_bootstrap_v3_Watchdogs_submsgs[0], &envoy_config_bootstrap_v3_Watchdogs__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdog_submsgs[3] = { @@ -227,19 +227,19 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdog_submsgs[3] }; static const upb_msglayout_field envoy_config_bootstrap_v3_Watchdog__fields[7] = { - {1, UPB_SIZE(4, 8), 1, 2, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 2, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 2, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 2, 11, 1}, - {5, UPB_SIZE(20, 40), 5, 1, 11, 1}, - {6, UPB_SIZE(24, 48), 6, 2, 11, 1}, - {7, UPB_SIZE(28, 56), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 5, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 48), 6, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(28, 56), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_bootstrap_v3_Watchdog_msginit = { &envoy_config_bootstrap_v3_Watchdog_submsgs[0], &envoy_config_bootstrap_v3_Watchdog__fields[0], - UPB_SIZE(32, 64), 7, false, 255, + UPB_SIZE(32, 64), 7, false, 7, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdog_WatchdogAction_submsgs[1] = { @@ -247,14 +247,14 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdog_WatchdogAct }; static const upb_msglayout_field envoy_config_bootstrap_v3_Watchdog_WatchdogAction__fields[2] = { - {1, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit = { &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_submsgs[0], &envoy_config_bootstrap_v3_Watchdog_WatchdogAction__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_FatalAction_submsgs[1] = { @@ -262,13 +262,13 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_FatalAction_submsgs[ }; static const upb_msglayout_field envoy_config_bootstrap_v3_FatalAction__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_FatalAction_msginit = { &envoy_config_bootstrap_v3_FatalAction_submsgs[0], &envoy_config_bootstrap_v3_FatalAction__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_Runtime_submsgs[1] = { @@ -276,16 +276,16 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_Runtime_submsgs[1] = }; static const upb_msglayout_field envoy_config_bootstrap_v3_Runtime__fields[4] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {4, UPB_SIZE(28, 56), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 56), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_Runtime_msginit = { &envoy_config_bootstrap_v3_Runtime_submsgs[0], &envoy_config_bootstrap_v3_Runtime__fields[0], - UPB_SIZE(32, 64), 4, false, 255, + UPB_SIZE(32, 64), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_RuntimeLayer_submsgs[4] = { @@ -296,35 +296,35 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_RuntimeLayer_submsgs }; static const upb_msglayout_field envoy_config_bootstrap_v3_RuntimeLayer__fields[5] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, - {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_msginit = { &envoy_config_bootstrap_v3_RuntimeLayer_submsgs[0], &envoy_config_bootstrap_v3_RuntimeLayer__fields[0], - UPB_SIZE(16, 32), 5, false, 255, + UPB_SIZE(16, 32), 5, false, 5, 255, }; static const upb_msglayout_field envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit = { NULL, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_submsgs[1] = { @@ -332,14 +332,14 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLay }; static const upb_msglayout_field envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit = { &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_submsgs[0], &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_bootstrap_v3_LayeredRuntime_submsgs[1] = { @@ -347,24 +347,24 @@ static const upb_msglayout *const envoy_config_bootstrap_v3_LayeredRuntime_subms }; static const upb_msglayout_field envoy_config_bootstrap_v3_LayeredRuntime__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_bootstrap_v3_LayeredRuntime_msginit = { &envoy_config_bootstrap_v3_LayeredRuntime_submsgs[0], &envoy_config_bootstrap_v3_LayeredRuntime__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_bootstrap_v3_CustomInlineHeader__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_bootstrap_v3_CustomInlineHeader_msginit = { NULL, &envoy_config_bootstrap_v3_CustomInlineHeader__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h index 21152f2fb07..33a9b2c259f 100644 --- a/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +++ b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPB_H_ #define ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -141,13 +141,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Bootstrap *envoy_config_bootstrap_v3_Bootst UPB_INLINE envoy_config_bootstrap_v3_Bootstrap *envoy_config_bootstrap_v3_Bootstrap_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Bootstrap *ret = envoy_config_bootstrap_v3_Bootstrap_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Bootstrap *envoy_config_bootstrap_v3_Bootstrap_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Bootstrap *ret = envoy_config_bootstrap_v3_Bootstrap_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Bootstrap_serialize(const envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena, len); @@ -543,13 +549,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_StaticResources *envoy_config_boo UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_StaticResources *envoy_config_bootstrap_v3_Bootstrap_StaticResources_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Bootstrap_StaticResources *ret = envoy_config_bootstrap_v3_Bootstrap_StaticResources_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_StaticResources *envoy_config_bootstrap_v3_Bootstrap_StaticResources_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Bootstrap_StaticResources *ret = envoy_config_bootstrap_v3_Bootstrap_StaticResources_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Bootstrap_StaticResources_serialize(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena, len); @@ -610,13 +622,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_DynamicResources *envoy_config_bo UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_DynamicResources *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Bootstrap_DynamicResources *ret = envoy_config_bootstrap_v3_Bootstrap_DynamicResources_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_DynamicResources *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Bootstrap_DynamicResources *ret = envoy_config_bootstrap_v3_Bootstrap_DynamicResources_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_serialize(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena, len); @@ -703,13 +721,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Admin *envoy_config_bootstrap_v3_Admin_new( UPB_INLINE envoy_config_bootstrap_v3_Admin *envoy_config_bootstrap_v3_Admin_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Admin *ret = envoy_config_bootstrap_v3_Admin_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Admin_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Admin_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Admin *envoy_config_bootstrap_v3_Admin_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Admin *ret = envoy_config_bootstrap_v3_Admin_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Admin_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Admin_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Admin_serialize(const envoy_config_bootstrap_v3_Admin *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Admin_msginit, arena, len); @@ -778,13 +802,19 @@ UPB_INLINE envoy_config_bootstrap_v3_ClusterManager *envoy_config_bootstrap_v3_C UPB_INLINE envoy_config_bootstrap_v3_ClusterManager *envoy_config_bootstrap_v3_ClusterManager_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_ClusterManager *ret = envoy_config_bootstrap_v3_ClusterManager_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_ClusterManager *envoy_config_bootstrap_v3_ClusterManager_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_ClusterManager *ret = envoy_config_bootstrap_v3_ClusterManager_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_ClusterManager_serialize(const envoy_config_bootstrap_v3_ClusterManager *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena, len); @@ -849,13 +879,19 @@ UPB_INLINE envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *envoy_conf UPB_INLINE envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *ret = envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *ret = envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_serialize(const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena, len); @@ -890,13 +926,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Watchdogs *envoy_config_bootstrap_v3_Watchd UPB_INLINE envoy_config_bootstrap_v3_Watchdogs *envoy_config_bootstrap_v3_Watchdogs_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Watchdogs *ret = envoy_config_bootstrap_v3_Watchdogs_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Watchdogs *envoy_config_bootstrap_v3_Watchdogs_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Watchdogs *ret = envoy_config_bootstrap_v3_Watchdogs_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdogs_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Watchdogs_serialize(const envoy_config_bootstrap_v3_Watchdogs *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena, len); @@ -942,13 +984,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Watchdog *envoy_config_bootstrap_v3_Watchdo UPB_INLINE envoy_config_bootstrap_v3_Watchdog *envoy_config_bootstrap_v3_Watchdog_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Watchdog *ret = envoy_config_bootstrap_v3_Watchdog_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Watchdog *envoy_config_bootstrap_v3_Watchdog_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Watchdog *ret = envoy_config_bootstrap_v3_Watchdog_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Watchdog_serialize(const envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Watchdog_msginit, arena, len); @@ -1069,13 +1117,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction *envoy_config_boots UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Watchdog_WatchdogAction *ret = envoy_config_bootstrap_v3_Watchdog_WatchdogAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Watchdog_WatchdogAction *ret = envoy_config_bootstrap_v3_Watchdog_WatchdogAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_serialize(const envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena, len); @@ -1110,13 +1164,19 @@ UPB_INLINE envoy_config_bootstrap_v3_FatalAction *envoy_config_bootstrap_v3_Fata UPB_INLINE envoy_config_bootstrap_v3_FatalAction *envoy_config_bootstrap_v3_FatalAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_FatalAction *ret = envoy_config_bootstrap_v3_FatalAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_FatalAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_FatalAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_FatalAction *envoy_config_bootstrap_v3_FatalAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_FatalAction *ret = envoy_config_bootstrap_v3_FatalAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_FatalAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_FatalAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_FatalAction_serialize(const envoy_config_bootstrap_v3_FatalAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_FatalAction_msginit, arena, len); @@ -1147,13 +1207,19 @@ UPB_INLINE envoy_config_bootstrap_v3_Runtime *envoy_config_bootstrap_v3_Runtime_ UPB_INLINE envoy_config_bootstrap_v3_Runtime *envoy_config_bootstrap_v3_Runtime_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_Runtime *ret = envoy_config_bootstrap_v3_Runtime_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Runtime_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Runtime_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_Runtime *envoy_config_bootstrap_v3_Runtime_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_Runtime *ret = envoy_config_bootstrap_v3_Runtime_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Runtime_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Runtime_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_Runtime_serialize(const envoy_config_bootstrap_v3_Runtime *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_Runtime_msginit, arena, len); @@ -1196,13 +1262,19 @@ UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer *envoy_config_bootstrap_v3_Run UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer *envoy_config_bootstrap_v3_RuntimeLayer_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer *envoy_config_bootstrap_v3_RuntimeLayer_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena, len); @@ -1287,13 +1359,19 @@ UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *envoy_config_bootst UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena, len); @@ -1321,13 +1399,19 @@ UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *envoy_config_boots UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena, len); @@ -1343,13 +1427,19 @@ UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *envoy_config_bootst UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena, len); @@ -1384,13 +1474,19 @@ UPB_INLINE envoy_config_bootstrap_v3_LayeredRuntime *envoy_config_bootstrap_v3_L UPB_INLINE envoy_config_bootstrap_v3_LayeredRuntime *envoy_config_bootstrap_v3_LayeredRuntime_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_LayeredRuntime *ret = envoy_config_bootstrap_v3_LayeredRuntime_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_LayeredRuntime *envoy_config_bootstrap_v3_LayeredRuntime_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_LayeredRuntime *ret = envoy_config_bootstrap_v3_LayeredRuntime_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_LayeredRuntime_serialize(const envoy_config_bootstrap_v3_LayeredRuntime *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena, len); @@ -1421,13 +1517,19 @@ UPB_INLINE envoy_config_bootstrap_v3_CustomInlineHeader *envoy_config_bootstrap_ UPB_INLINE envoy_config_bootstrap_v3_CustomInlineHeader *envoy_config_bootstrap_v3_CustomInlineHeader_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_bootstrap_v3_CustomInlineHeader *ret = envoy_config_bootstrap_v3_CustomInlineHeader_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_CustomInlineHeader_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_CustomInlineHeader_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_bootstrap_v3_CustomInlineHeader *envoy_config_bootstrap_v3_CustomInlineHeader_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_bootstrap_v3_CustomInlineHeader *ret = envoy_config_bootstrap_v3_CustomInlineHeader_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_CustomInlineHeader_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_CustomInlineHeader_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_bootstrap_v3_CustomInlineHeader_serialize(const envoy_config_bootstrap_v3_CustomInlineHeader *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_bootstrap_v3_CustomInlineHeader_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c b/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c index b3f086de190..8d85e0d1d5e 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/cluster/v3/circuit_breaker.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/type/v3/percent.upb.h" @@ -23,13 +23,13 @@ static const upb_msglayout *const envoy_config_cluster_v3_CircuitBreakers_submsg }; static const upb_msglayout_field envoy_config_cluster_v3_CircuitBreakers__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_cluster_v3_CircuitBreakers_msginit = { &envoy_config_cluster_v3_CircuitBreakers_submsgs[0], &envoy_config_cluster_v3_CircuitBreakers__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_CircuitBreakers_Thresholds_submsgs[2] = { @@ -38,20 +38,20 @@ static const upb_msglayout *const envoy_config_cluster_v3_CircuitBreakers_Thresh }; static const upb_msglayout_field envoy_config_cluster_v3_CircuitBreakers_Thresholds__fields[8] = { - {1, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {2, UPB_SIZE(12, 16), 1, 1, 11, 1}, - {3, UPB_SIZE(16, 24), 2, 1, 11, 1}, - {4, UPB_SIZE(20, 32), 3, 1, 11, 1}, - {5, UPB_SIZE(24, 40), 4, 1, 11, 1}, - {6, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {7, UPB_SIZE(28, 48), 5, 1, 11, 1}, - {8, UPB_SIZE(32, 56), 6, 0, 11, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 16), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 2, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 32), 3, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(24, 40), 4, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(28, 48), 5, 1, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(32, 56), 6, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_CircuitBreakers_Thresholds_msginit = { &envoy_config_cluster_v3_CircuitBreakers_Thresholds_submsgs[0], &envoy_config_cluster_v3_CircuitBreakers_Thresholds__fields[0], - UPB_SIZE(40, 64), 8, false, 255, + UPB_SIZE(40, 64), 8, false, 8, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_submsgs[2] = { @@ -60,14 +60,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_CircuitBreakers_Thresh }; static const upb_msglayout_field envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_msginit = { &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_submsgs[0], &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h b/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h index 8d6099603de..4d89a703e7f 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CLUSTER_V3_CIRCUIT_BREAKER_PROTO_UPB_H_ #define ENVOY_CONFIG_CLUSTER_V3_CIRCUIT_BREAKER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -43,13 +43,19 @@ UPB_INLINE envoy_config_cluster_v3_CircuitBreakers *envoy_config_cluster_v3_Circ UPB_INLINE envoy_config_cluster_v3_CircuitBreakers *envoy_config_cluster_v3_CircuitBreakers_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_CircuitBreakers *ret = envoy_config_cluster_v3_CircuitBreakers_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_CircuitBreakers *envoy_config_cluster_v3_CircuitBreakers_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_CircuitBreakers *ret = envoy_config_cluster_v3_CircuitBreakers_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_CircuitBreakers_serialize(const envoy_config_cluster_v3_CircuitBreakers *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_CircuitBreakers_msginit, arena, len); @@ -80,13 +86,19 @@ UPB_INLINE envoy_config_cluster_v3_CircuitBreakers_Thresholds *envoy_config_clus UPB_INLINE envoy_config_cluster_v3_CircuitBreakers_Thresholds *envoy_config_cluster_v3_CircuitBreakers_Thresholds_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_CircuitBreakers_Thresholds *ret = envoy_config_cluster_v3_CircuitBreakers_Thresholds_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_CircuitBreakers_Thresholds *envoy_config_cluster_v3_CircuitBreakers_Thresholds_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_CircuitBreakers_Thresholds *ret = envoy_config_cluster_v3_CircuitBreakers_Thresholds_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_CircuitBreakers_Thresholds_serialize(const envoy_config_cluster_v3_CircuitBreakers_Thresholds *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_msginit, arena, len); @@ -200,13 +212,19 @@ UPB_INLINE envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget *envoy UPB_INLINE envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget *envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget *ret = envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget *envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget *ret = envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_serialize(const envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c b/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c index 1d7e99267c4..e11d9d71356 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/cluster/v3/cluster.upb.h" #include "envoy/config/cluster/v3/circuit_breaker.upb.h" #include "envoy/config/cluster/v3/filter.upb.h" @@ -40,13 +40,13 @@ static const upb_msglayout *const envoy_config_cluster_v3_ClusterCollection_subm }; static const upb_msglayout_field envoy_config_cluster_v3_ClusterCollection__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_ClusterCollection_msginit = { &envoy_config_cluster_v3_ClusterCollection_submsgs[0], &envoy_config_cluster_v3_ClusterCollection__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_submsgs[34] = { @@ -87,62 +87,62 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_submsgs[34] = }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster__fields[50] = { - {1, UPB_SIZE(24, 24), 0, 0, 9, 1}, - {2, UPB_SIZE(172, 320), UPB_SIZE(-177, -329), 0, 14, 1}, - {3, UPB_SIZE(40, 56), 1, 3, 11, 1}, - {4, UPB_SIZE(44, 64), 2, 32, 11, 1}, - {5, UPB_SIZE(48, 72), 3, 33, 11, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {8, UPB_SIZE(152, 280), 0, 22, 11, 3}, - {9, UPB_SIZE(52, 80), 4, 33, 11, 1}, - {10, UPB_SIZE(56, 88), 5, 0, 11, 1}, - {13, UPB_SIZE(60, 96), 6, 23, 11, 1}, - {14, UPB_SIZE(64, 104), 7, 24, 11, 1}, - {16, UPB_SIZE(68, 112), 8, 32, 11, 1}, - {17, UPB_SIZE(8, 8), 0, 0, 14, 1}, - {18, UPB_SIZE(156, 288), 0, 18, 11, 3}, - {19, UPB_SIZE(72, 120), 9, 15, 11, 1}, - {20, UPB_SIZE(76, 128), 10, 32, 11, 1}, - {21, UPB_SIZE(80, 136), 11, 19, 11, 1}, - {22, UPB_SIZE(84, 144), 12, 4, 11, 1}, - {23, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 10, 11, 1}, - {24, UPB_SIZE(88, 152), 13, 27, 11, 1}, - {25, UPB_SIZE(92, 160), 14, 26, 11, 1}, - {26, UPB_SIZE(12, 12), 0, 0, 14, 1}, - {27, UPB_SIZE(96, 168), 15, 1, 11, 1}, - {28, UPB_SIZE(32, 40), 0, 0, 9, 1}, - {29, UPB_SIZE(100, 176), 16, 25, 11, 1}, - {30, UPB_SIZE(104, 184), 17, 17, 11, 1}, - {31, UPB_SIZE(16, 16), 0, 0, 8, 1}, - {32, UPB_SIZE(17, 17), 0, 0, 8, 1}, - {33, UPB_SIZE(108, 192), 18, 30, 11, 1}, - {34, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 7, 11, 1}, - {36, UPB_SIZE(160, 296), 0, 12, 11, _UPB_LABEL_MAP}, - {37, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 5, 11, 1}, - {38, UPB_SIZE(172, 320), UPB_SIZE(-177, -329), 2, 11, 1}, - {39, UPB_SIZE(18, 18), 0, 0, 8, 1}, - {40, UPB_SIZE(164, 304), 0, 13, 11, 3}, - {41, UPB_SIZE(112, 200), 19, 14, 11, 1}, - {42, UPB_SIZE(116, 208), 20, 20, 11, 1}, - {43, UPB_SIZE(168, 312), 0, 11, 11, 3}, - {44, UPB_SIZE(120, 216), 21, 9, 11, 1}, - {45, UPB_SIZE(19, 19), 0, 0, 8, 1}, - {46, UPB_SIZE(124, 224), 22, 29, 11, 1}, - {47, UPB_SIZE(20, 20), 0, 0, 8, 1}, - {48, UPB_SIZE(128, 232), 23, 28, 11, 1}, - {49, UPB_SIZE(132, 240), 24, 16, 11, 1}, - {50, UPB_SIZE(136, 248), 25, 8, 11, 1}, - {51, UPB_SIZE(21, 21), 0, 0, 8, 1}, - {52, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 6, 11, 1}, - {53, UPB_SIZE(140, 256), 26, 21, 11, 1}, - {54, UPB_SIZE(144, 264), 27, 31, 11, 1}, - {55, UPB_SIZE(148, 272), 28, 28, 11, 1}, + {1, UPB_SIZE(24, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(172, 320), UPB_SIZE(-177, -329), 0, 14, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(40, 56), 1, 3, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(44, 64), 2, 32, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(48, 72), 3, 33, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(152, 280), 0, 22, 11, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(52, 80), 4, 33, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(56, 88), 5, 0, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(60, 96), 6, 23, 11, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(64, 104), 7, 24, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(68, 112), 8, 32, 11, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(156, 288), 0, 18, 11, _UPB_MODE_ARRAY}, + {19, UPB_SIZE(72, 120), 9, 15, 11, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(76, 128), 10, 32, 11, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(80, 136), 11, 19, 11, _UPB_MODE_SCALAR}, + {22, UPB_SIZE(84, 144), 12, 4, 11, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 10, 11, _UPB_MODE_SCALAR}, + {24, UPB_SIZE(88, 152), 13, 27, 11, _UPB_MODE_SCALAR}, + {25, UPB_SIZE(92, 160), 14, 26, 11, _UPB_MODE_SCALAR}, + {26, UPB_SIZE(12, 12), 0, 0, 14, _UPB_MODE_SCALAR}, + {27, UPB_SIZE(96, 168), 15, 1, 11, _UPB_MODE_SCALAR}, + {28, UPB_SIZE(32, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {29, UPB_SIZE(100, 176), 16, 25, 11, _UPB_MODE_SCALAR}, + {30, UPB_SIZE(104, 184), 17, 17, 11, _UPB_MODE_SCALAR}, + {31, UPB_SIZE(16, 16), 0, 0, 8, _UPB_MODE_SCALAR}, + {32, UPB_SIZE(17, 17), 0, 0, 8, _UPB_MODE_SCALAR}, + {33, UPB_SIZE(108, 192), 18, 30, 11, _UPB_MODE_SCALAR}, + {34, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 7, 11, _UPB_MODE_SCALAR}, + {36, UPB_SIZE(160, 296), 0, 12, 11, _UPB_MODE_MAP}, + {37, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 5, 11, _UPB_MODE_SCALAR}, + {38, UPB_SIZE(172, 320), UPB_SIZE(-177, -329), 2, 11, _UPB_MODE_SCALAR}, + {39, UPB_SIZE(18, 18), 0, 0, 8, _UPB_MODE_SCALAR}, + {40, UPB_SIZE(164, 304), 0, 13, 11, _UPB_MODE_ARRAY}, + {41, UPB_SIZE(112, 200), 19, 14, 11, _UPB_MODE_SCALAR}, + {42, UPB_SIZE(116, 208), 20, 20, 11, _UPB_MODE_SCALAR}, + {43, UPB_SIZE(168, 312), 0, 11, 11, _UPB_MODE_ARRAY}, + {44, UPB_SIZE(120, 216), 21, 9, 11, _UPB_MODE_SCALAR}, + {45, UPB_SIZE(19, 19), 0, 0, 8, _UPB_MODE_SCALAR}, + {46, UPB_SIZE(124, 224), 22, 29, 11, _UPB_MODE_SCALAR}, + {47, UPB_SIZE(20, 20), 0, 0, 8, _UPB_MODE_SCALAR}, + {48, UPB_SIZE(128, 232), 23, 28, 11, _UPB_MODE_SCALAR}, + {49, UPB_SIZE(132, 240), 24, 16, 11, _UPB_MODE_SCALAR}, + {50, UPB_SIZE(136, 248), 25, 8, 11, _UPB_MODE_SCALAR}, + {51, UPB_SIZE(21, 21), 0, 0, 8, _UPB_MODE_SCALAR}, + {52, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 6, 11, _UPB_MODE_SCALAR}, + {53, UPB_SIZE(140, 256), 26, 21, 11, _UPB_MODE_SCALAR}, + {54, UPB_SIZE(144, 264), 27, 31, 11, _UPB_MODE_SCALAR}, + {55, UPB_SIZE(148, 272), 28, 28, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_msginit = { &envoy_config_cluster_v3_Cluster_submsgs[0], &envoy_config_cluster_v3_Cluster__fields[0], - UPB_SIZE(192, 352), 50, false, 255, + UPB_SIZE(192, 352), 50, false, 6, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_TransportSocketMatch_submsgs[2] = { @@ -151,15 +151,15 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_TransportSocke }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_TransportSocketMatch__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit = { &envoy_config_cluster_v3_Cluster_TransportSocketMatch_submsgs[0], &envoy_config_cluster_v3_Cluster_TransportSocketMatch__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CustomClusterType_submsgs[1] = { @@ -167,14 +167,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CustomClusterT }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_CustomClusterType__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_CustomClusterType_msginit = { &envoy_config_cluster_v3_Cluster_CustomClusterType_submsgs[0], &envoy_config_cluster_v3_Cluster_CustomClusterType__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_EdsClusterConfig_submsgs[1] = { @@ -182,14 +182,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_EdsClusterConf }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_EdsClusterConfig__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_EdsClusterConfig_msginit = { &envoy_config_cluster_v3_Cluster_EdsClusterConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_EdsClusterConfig__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_LbSubsetConfig_submsgs[2] = { @@ -198,32 +198,32 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_LbSubsetConfig }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_LbSubsetConfig__fields[7] = { - {1, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {2, UPB_SIZE(12, 16), 1, 1, 11, 1}, - {3, UPB_SIZE(16, 24), 0, 0, 11, 3}, - {4, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {5, UPB_SIZE(9, 9), 0, 0, 8, 1}, - {6, UPB_SIZE(10, 10), 0, 0, 8, 1}, - {7, UPB_SIZE(11, 11), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 16), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(9, 9), 0, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(10, 10), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(11, 11), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_LbSubsetConfig_msginit = { &envoy_config_cluster_v3_Cluster_LbSubsetConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_LbSubsetConfig__fields[0], - UPB_SIZE(24, 32), 7, false, 255, + UPB_SIZE(24, 32), 7, false, 7, 255, }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector__fields[4] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 3}, - {2, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {3, UPB_SIZE(12, 16), 0, 0, 9, 3}, - {4, UPB_SIZE(4, 4), 0, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_msginit = { NULL, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector__fields[0], - UPB_SIZE(16, 24), 4, false, 255, + UPB_SIZE(16, 24), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_submsgs[2] = { @@ -232,14 +232,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_LeastRequestLb }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_LeastRequestLbConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit = { &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_RingHashLbConfig_submsgs[1] = { @@ -247,15 +247,15 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_RingHashLbConf }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_RingHashLbConfig__fields[3] = { - {1, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {3, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {4, UPB_SIZE(12, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit = { &envoy_config_cluster_v3_Cluster_RingHashLbConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_RingHashLbConfig__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_MaglevLbConfig_submsgs[1] = { @@ -263,23 +263,23 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_MaglevLbConfig }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_MaglevLbConfig__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_MaglevLbConfig_msginit = { &envoy_config_cluster_v3_Cluster_MaglevLbConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_MaglevLbConfig__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_OriginalDstLbConfig__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_msginit = { NULL, &envoy_config_cluster_v3_Cluster_OriginalDstLbConfig__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CommonLbConfig_submsgs[5] = { @@ -291,19 +291,19 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CommonLbConfig }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_CommonLbConfig__fields[7] = { - {1, UPB_SIZE(4, 8), 1, 3, 11, 1}, - {2, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 2, 11, 1}, - {3, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 1, 11, 1}, - {4, UPB_SIZE(8, 16), 2, 4, 11, 1}, - {5, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {6, UPB_SIZE(2, 2), 0, 0, 8, 1}, - {7, UPB_SIZE(12, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 3, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), 2, 4, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(2, 2), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit = { &envoy_config_cluster_v3_Cluster_CommonLbConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_CommonLbConfig__fields[0], - UPB_SIZE(24, 48), 7, false, 255, + UPB_SIZE(24, 48), 7, false, 7, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_submsgs[2] = { @@ -312,21 +312,21 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CommonLbConfig }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_msginit = { &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; const upb_msglayout envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_submsgs[1] = { @@ -334,14 +334,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_CommonLbConfig }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig__fields[2] = { - {1, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {2, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_msginit = { &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_submsgs[0], &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_RefreshRate_submsgs[1] = { @@ -349,14 +349,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_RefreshRate_su }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_RefreshRate__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_RefreshRate_msginit = { &envoy_config_cluster_v3_Cluster_RefreshRate_submsgs[0], &envoy_config_cluster_v3_Cluster_RefreshRate__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_PreconnectPolicy_submsgs[1] = { @@ -364,14 +364,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_PreconnectPoli }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_PreconnectPolicy__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit = { &envoy_config_cluster_v3_Cluster_PreconnectPolicy_submsgs[0], &envoy_config_cluster_v3_Cluster_PreconnectPolicy__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry_submsgs[1] = { @@ -379,14 +379,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_TypedExtension }; static const upb_msglayout_field envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry_msginit = { &envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry_submsgs[0], &envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_LoadBalancingPolicy_submsgs[1] = { @@ -394,13 +394,13 @@ static const upb_msglayout *const envoy_config_cluster_v3_LoadBalancingPolicy_su }; static const upb_msglayout_field envoy_config_cluster_v3_LoadBalancingPolicy__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_cluster_v3_LoadBalancingPolicy_msginit = { &envoy_config_cluster_v3_LoadBalancingPolicy_submsgs[0], &envoy_config_cluster_v3_LoadBalancingPolicy__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_LoadBalancingPolicy_Policy_submsgs[1] = { @@ -408,14 +408,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_LoadBalancingPolicy_Po }; static const upb_msglayout_field envoy_config_cluster_v3_LoadBalancingPolicy_Policy__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_LoadBalancingPolicy_Policy_msginit = { &envoy_config_cluster_v3_LoadBalancingPolicy_Policy_submsgs[0], &envoy_config_cluster_v3_LoadBalancingPolicy_Policy__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_UpstreamBindConfig_submsgs[1] = { @@ -423,13 +423,13 @@ static const upb_msglayout *const envoy_config_cluster_v3_UpstreamBindConfig_sub }; static const upb_msglayout_field envoy_config_cluster_v3_UpstreamBindConfig__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_UpstreamBindConfig_msginit = { &envoy_config_cluster_v3_UpstreamBindConfig_submsgs[0], &envoy_config_cluster_v3_UpstreamBindConfig__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_cluster_v3_UpstreamConnectionOptions_submsgs[1] = { @@ -437,24 +437,24 @@ static const upb_msglayout *const envoy_config_cluster_v3_UpstreamConnectionOpti }; static const upb_msglayout_field envoy_config_cluster_v3_UpstreamConnectionOptions__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_UpstreamConnectionOptions_msginit = { &envoy_config_cluster_v3_UpstreamConnectionOptions_submsgs[0], &envoy_config_cluster_v3_UpstreamConnectionOptions__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_cluster_v3_TrackClusterStats__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_TrackClusterStats_msginit = { NULL, &envoy_config_cluster_v3_TrackClusterStats__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h b/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h index 84feca06185..fc1e82db894 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CLUSTER_V3_CLUSTER_PROTO_UPB_H_ #define ENVOY_CONFIG_CLUSTER_V3_CLUSTER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -201,13 +201,19 @@ UPB_INLINE envoy_config_cluster_v3_ClusterCollection *envoy_config_cluster_v3_Cl UPB_INLINE envoy_config_cluster_v3_ClusterCollection *envoy_config_cluster_v3_ClusterCollection_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_ClusterCollection *ret = envoy_config_cluster_v3_ClusterCollection_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_ClusterCollection_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_ClusterCollection_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_ClusterCollection *envoy_config_cluster_v3_ClusterCollection_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_ClusterCollection *ret = envoy_config_cluster_v3_ClusterCollection_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_ClusterCollection_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_ClusterCollection_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_ClusterCollection_serialize(const envoy_config_cluster_v3_ClusterCollection *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_ClusterCollection_msginit, arena, len); @@ -238,13 +244,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster *envoy_config_cluster_v3_Cluster_new( UPB_INLINE envoy_config_cluster_v3_Cluster *envoy_config_cluster_v3_Cluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster *ret = envoy_config_cluster_v3_Cluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster *envoy_config_cluster_v3_Cluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster *ret = envoy_config_cluster_v3_Cluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_serialize(const envoy_config_cluster_v3_Cluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_msginit, arena, len); @@ -883,13 +895,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_TransportSocketMatch *envoy_config_cl UPB_INLINE envoy_config_cluster_v3_Cluster_TransportSocketMatch *envoy_config_cluster_v3_Cluster_TransportSocketMatch_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_TransportSocketMatch *ret = envoy_config_cluster_v3_Cluster_TransportSocketMatch_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_TransportSocketMatch *envoy_config_cluster_v3_Cluster_TransportSocketMatch_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_TransportSocketMatch *ret = envoy_config_cluster_v3_Cluster_TransportSocketMatch_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_TransportSocketMatch_serialize(const envoy_config_cluster_v3_Cluster_TransportSocketMatch *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit, arena, len); @@ -939,13 +957,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_CustomClusterType *envoy_config_clust UPB_INLINE envoy_config_cluster_v3_Cluster_CustomClusterType *envoy_config_cluster_v3_Cluster_CustomClusterType_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_CustomClusterType *ret = envoy_config_cluster_v3_Cluster_CustomClusterType_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CustomClusterType_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CustomClusterType_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_CustomClusterType *envoy_config_cluster_v3_Cluster_CustomClusterType_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_CustomClusterType *ret = envoy_config_cluster_v3_Cluster_CustomClusterType_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CustomClusterType_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CustomClusterType_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_CustomClusterType_serialize(const envoy_config_cluster_v3_Cluster_CustomClusterType *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_CustomClusterType_msginit, arena, len); @@ -980,13 +1004,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_EdsClusterConfig *envoy_config_cluste UPB_INLINE envoy_config_cluster_v3_Cluster_EdsClusterConfig *envoy_config_cluster_v3_Cluster_EdsClusterConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_EdsClusterConfig *ret = envoy_config_cluster_v3_Cluster_EdsClusterConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_EdsClusterConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_EdsClusterConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_EdsClusterConfig *envoy_config_cluster_v3_Cluster_EdsClusterConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_EdsClusterConfig *ret = envoy_config_cluster_v3_Cluster_EdsClusterConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_EdsClusterConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_EdsClusterConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_EdsClusterConfig_serialize(const envoy_config_cluster_v3_Cluster_EdsClusterConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_EdsClusterConfig_msginit, arena, len); @@ -1021,13 +1051,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_LbSubsetConfig *envoy_config_cluster_ UPB_INLINE envoy_config_cluster_v3_Cluster_LbSubsetConfig *envoy_config_cluster_v3_Cluster_LbSubsetConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_LbSubsetConfig *ret = envoy_config_cluster_v3_Cluster_LbSubsetConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_LbSubsetConfig *envoy_config_cluster_v3_Cluster_LbSubsetConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_LbSubsetConfig *ret = envoy_config_cluster_v3_Cluster_LbSubsetConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_LbSubsetConfig_serialize(const envoy_config_cluster_v3_Cluster_LbSubsetConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_msginit, arena, len); @@ -1093,13 +1129,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector *envo UPB_INLINE envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector *envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector *ret = envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector *envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector *ret = envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_serialize(const envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_msginit, arena, len); @@ -1145,13 +1187,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_LeastRequestLbConfig *envoy_config_cl UPB_INLINE envoy_config_cluster_v3_Cluster_LeastRequestLbConfig *envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_LeastRequestLbConfig *ret = envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_LeastRequestLbConfig *envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_LeastRequestLbConfig *ret = envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_serialize(const envoy_config_cluster_v3_Cluster_LeastRequestLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit, arena, len); @@ -1197,13 +1245,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_RingHashLbConfig *envoy_config_cluste UPB_INLINE envoy_config_cluster_v3_Cluster_RingHashLbConfig *envoy_config_cluster_v3_Cluster_RingHashLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_RingHashLbConfig *ret = envoy_config_cluster_v3_Cluster_RingHashLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_RingHashLbConfig *envoy_config_cluster_v3_Cluster_RingHashLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_RingHashLbConfig *ret = envoy_config_cluster_v3_Cluster_RingHashLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_RingHashLbConfig_serialize(const envoy_config_cluster_v3_Cluster_RingHashLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit, arena, len); @@ -1253,13 +1307,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_MaglevLbConfig *envoy_config_cluster_ UPB_INLINE envoy_config_cluster_v3_Cluster_MaglevLbConfig *envoy_config_cluster_v3_Cluster_MaglevLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_MaglevLbConfig *ret = envoy_config_cluster_v3_Cluster_MaglevLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_MaglevLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_MaglevLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_MaglevLbConfig *envoy_config_cluster_v3_Cluster_MaglevLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_MaglevLbConfig *ret = envoy_config_cluster_v3_Cluster_MaglevLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_MaglevLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_MaglevLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_MaglevLbConfig_serialize(const envoy_config_cluster_v3_Cluster_MaglevLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_MaglevLbConfig_msginit, arena, len); @@ -1290,13 +1350,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_OriginalDstLbConfig *envoy_config_clu UPB_INLINE envoy_config_cluster_v3_Cluster_OriginalDstLbConfig *envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_OriginalDstLbConfig *ret = envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_OriginalDstLbConfig *envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_OriginalDstLbConfig *ret = envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_serialize(const envoy_config_cluster_v3_Cluster_OriginalDstLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_msginit, arena, len); @@ -1316,13 +1382,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig *envoy_config_cluster_ UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_CommonLbConfig_serialize(const envoy_config_cluster_v3_Cluster_CommonLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit, arena, len); @@ -1426,13 +1498,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig *env UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_serialize(const envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_msginit, arena, len); @@ -1482,13 +1560,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConf UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_serialize(const envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_msginit, arena, len); @@ -1504,13 +1588,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbCon UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig *envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig *ret = envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_serialize(const envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_msginit, arena, len); @@ -1545,13 +1635,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_RefreshRate *envoy_config_cluster_v3_ UPB_INLINE envoy_config_cluster_v3_Cluster_RefreshRate *envoy_config_cluster_v3_Cluster_RefreshRate_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_RefreshRate *ret = envoy_config_cluster_v3_Cluster_RefreshRate_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RefreshRate_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RefreshRate_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_RefreshRate *envoy_config_cluster_v3_Cluster_RefreshRate_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_RefreshRate *ret = envoy_config_cluster_v3_Cluster_RefreshRate_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RefreshRate_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_RefreshRate_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_RefreshRate_serialize(const envoy_config_cluster_v3_Cluster_RefreshRate *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_RefreshRate_msginit, arena, len); @@ -1597,13 +1693,19 @@ UPB_INLINE envoy_config_cluster_v3_Cluster_PreconnectPolicy *envoy_config_cluste UPB_INLINE envoy_config_cluster_v3_Cluster_PreconnectPolicy *envoy_config_cluster_v3_Cluster_PreconnectPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Cluster_PreconnectPolicy *ret = envoy_config_cluster_v3_Cluster_PreconnectPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Cluster_PreconnectPolicy *envoy_config_cluster_v3_Cluster_PreconnectPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Cluster_PreconnectPolicy *ret = envoy_config_cluster_v3_Cluster_PreconnectPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Cluster_PreconnectPolicy_serialize(const envoy_config_cluster_v3_Cluster_PreconnectPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit, arena, len); @@ -1667,13 +1769,19 @@ UPB_INLINE envoy_config_cluster_v3_LoadBalancingPolicy *envoy_config_cluster_v3_ UPB_INLINE envoy_config_cluster_v3_LoadBalancingPolicy *envoy_config_cluster_v3_LoadBalancingPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_LoadBalancingPolicy *ret = envoy_config_cluster_v3_LoadBalancingPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_LoadBalancingPolicy *envoy_config_cluster_v3_LoadBalancingPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_LoadBalancingPolicy *ret = envoy_config_cluster_v3_LoadBalancingPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_LoadBalancingPolicy_serialize(const envoy_config_cluster_v3_LoadBalancingPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_LoadBalancingPolicy_msginit, arena, len); @@ -1704,13 +1812,19 @@ UPB_INLINE envoy_config_cluster_v3_LoadBalancingPolicy_Policy *envoy_config_clus UPB_INLINE envoy_config_cluster_v3_LoadBalancingPolicy_Policy *envoy_config_cluster_v3_LoadBalancingPolicy_Policy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_LoadBalancingPolicy_Policy *ret = envoy_config_cluster_v3_LoadBalancingPolicy_Policy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_Policy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_Policy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_LoadBalancingPolicy_Policy *envoy_config_cluster_v3_LoadBalancingPolicy_Policy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_LoadBalancingPolicy_Policy *ret = envoy_config_cluster_v3_LoadBalancingPolicy_Policy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_Policy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_LoadBalancingPolicy_Policy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_LoadBalancingPolicy_Policy_serialize(const envoy_config_cluster_v3_LoadBalancingPolicy_Policy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_LoadBalancingPolicy_Policy_msginit, arena, len); @@ -1745,13 +1859,19 @@ UPB_INLINE envoy_config_cluster_v3_UpstreamBindConfig *envoy_config_cluster_v3_U UPB_INLINE envoy_config_cluster_v3_UpstreamBindConfig *envoy_config_cluster_v3_UpstreamBindConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_UpstreamBindConfig *ret = envoy_config_cluster_v3_UpstreamBindConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamBindConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamBindConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_UpstreamBindConfig *envoy_config_cluster_v3_UpstreamBindConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_UpstreamBindConfig *ret = envoy_config_cluster_v3_UpstreamBindConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamBindConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamBindConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_UpstreamBindConfig_serialize(const envoy_config_cluster_v3_UpstreamBindConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_UpstreamBindConfig_msginit, arena, len); @@ -1782,13 +1902,19 @@ UPB_INLINE envoy_config_cluster_v3_UpstreamConnectionOptions *envoy_config_clust UPB_INLINE envoy_config_cluster_v3_UpstreamConnectionOptions *envoy_config_cluster_v3_UpstreamConnectionOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_UpstreamConnectionOptions *ret = envoy_config_cluster_v3_UpstreamConnectionOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamConnectionOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamConnectionOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_UpstreamConnectionOptions *envoy_config_cluster_v3_UpstreamConnectionOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_UpstreamConnectionOptions *ret = envoy_config_cluster_v3_UpstreamConnectionOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamConnectionOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_UpstreamConnectionOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_UpstreamConnectionOptions_serialize(const envoy_config_cluster_v3_UpstreamConnectionOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_UpstreamConnectionOptions_msginit, arena, len); @@ -1819,13 +1945,19 @@ UPB_INLINE envoy_config_cluster_v3_TrackClusterStats *envoy_config_cluster_v3_Tr UPB_INLINE envoy_config_cluster_v3_TrackClusterStats *envoy_config_cluster_v3_TrackClusterStats_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_TrackClusterStats *ret = envoy_config_cluster_v3_TrackClusterStats_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_TrackClusterStats_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_TrackClusterStats_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_TrackClusterStats *envoy_config_cluster_v3_TrackClusterStats_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_TrackClusterStats *ret = envoy_config_cluster_v3_TrackClusterStats_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_TrackClusterStats_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_TrackClusterStats_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_TrackClusterStats_serialize(const envoy_config_cluster_v3_TrackClusterStats *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_TrackClusterStats_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c b/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c index 14230149e51..7c02e7a614c 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/cluster/v3/filter.upb.h" #include "google/protobuf/any.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,14 +21,14 @@ static const upb_msglayout *const envoy_config_cluster_v3_Filter_submsgs[1] = { }; static const upb_msglayout_field envoy_config_cluster_v3_Filter__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_Filter_msginit = { &envoy_config_cluster_v3_Filter_submsgs[0], &envoy_config_cluster_v3_Filter__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h b/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h index 1850b2a5504..36356fbeed4 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CLUSTER_V3_FILTER_PROTO_UPB_H_ #define ENVOY_CONFIG_CLUSTER_V3_FILTER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_config_cluster_v3_Filter *envoy_config_cluster_v3_Filter_new(up UPB_INLINE envoy_config_cluster_v3_Filter *envoy_config_cluster_v3_Filter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_Filter *ret = envoy_config_cluster_v3_Filter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_Filter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_Filter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_Filter *envoy_config_cluster_v3_Filter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_Filter *ret = envoy_config_cluster_v3_Filter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_Filter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_Filter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_Filter_serialize(const envoy_config_cluster_v3_Filter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_Filter_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c b/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c index f90563f1e70..3092f86502a 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/cluster/v3/outlier_detection.upb.h" #include "google/protobuf/duration.upb.h" #include "google/protobuf/wrappers.upb.h" @@ -23,33 +23,33 @@ static const upb_msglayout *const envoy_config_cluster_v3_OutlierDetection_subms }; static const upb_msglayout_field envoy_config_cluster_v3_OutlierDetection__fields[21] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 1, 11, 1}, - {5, UPB_SIZE(20, 40), 5, 1, 11, 1}, - {6, UPB_SIZE(24, 48), 6, 1, 11, 1}, - {7, UPB_SIZE(28, 56), 7, 1, 11, 1}, - {8, UPB_SIZE(32, 64), 8, 1, 11, 1}, - {9, UPB_SIZE(36, 72), 9, 1, 11, 1}, - {10, UPB_SIZE(40, 80), 10, 1, 11, 1}, - {11, UPB_SIZE(44, 88), 11, 1, 11, 1}, - {12, UPB_SIZE(3, 3), 0, 0, 8, 1}, - {13, UPB_SIZE(48, 96), 12, 1, 11, 1}, - {14, UPB_SIZE(52, 104), 13, 1, 11, 1}, - {15, UPB_SIZE(56, 112), 14, 1, 11, 1}, - {16, UPB_SIZE(60, 120), 15, 1, 11, 1}, - {17, UPB_SIZE(64, 128), 16, 1, 11, 1}, - {18, UPB_SIZE(68, 136), 17, 1, 11, 1}, - {19, UPB_SIZE(72, 144), 18, 1, 11, 1}, - {20, UPB_SIZE(76, 152), 19, 1, 11, 1}, - {21, UPB_SIZE(80, 160), 20, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 5, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 48), 6, 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(28, 56), 7, 1, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(32, 64), 8, 1, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(36, 72), 9, 1, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(40, 80), 10, 1, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(44, 88), 11, 1, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(3, 3), 0, 0, 8, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(48, 96), 12, 1, 11, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(52, 104), 13, 1, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(56, 112), 14, 1, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(60, 120), 15, 1, 11, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(64, 128), 16, 1, 11, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(68, 136), 17, 1, 11, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(72, 144), 18, 1, 11, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(76, 152), 19, 1, 11, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(80, 160), 20, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_cluster_v3_OutlierDetection_msginit = { &envoy_config_cluster_v3_OutlierDetection_submsgs[0], &envoy_config_cluster_v3_OutlierDetection__fields[0], - UPB_SIZE(88, 168), 21, false, 255, + UPB_SIZE(88, 168), 21, false, 21, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h b/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h index 70b76232628..9da074f42ef 100644 --- a/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +++ b/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CLUSTER_V3_OUTLIER_DETECTION_PROTO_UPB_H_ #define ENVOY_CONFIG_CLUSTER_V3_OUTLIER_DETECTION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -37,13 +37,19 @@ UPB_INLINE envoy_config_cluster_v3_OutlierDetection *envoy_config_cluster_v3_Out UPB_INLINE envoy_config_cluster_v3_OutlierDetection *envoy_config_cluster_v3_OutlierDetection_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_cluster_v3_OutlierDetection *ret = envoy_config_cluster_v3_OutlierDetection_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_cluster_v3_OutlierDetection_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_cluster_v3_OutlierDetection_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_cluster_v3_OutlierDetection *envoy_config_cluster_v3_OutlierDetection_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_cluster_v3_OutlierDetection *ret = envoy_config_cluster_v3_OutlierDetection_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_cluster_v3_OutlierDetection_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_cluster_v3_OutlierDetection_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_cluster_v3_OutlierDetection_serialize(const envoy_config_cluster_v3_OutlierDetection *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_cluster_v3_OutlierDetection_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c index 048fc05035d..457e1ead504 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/config/core/v3/socket_option.upb.h" #include "google/protobuf/wrappers.upb.h" @@ -18,39 +18,39 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_config_core_v3_Pipe__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 13, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Pipe_msginit = { NULL, &envoy_config_core_v3_Pipe__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_EnvoyInternalAddress__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_EnvoyInternalAddress_msginit = { NULL, &envoy_config_core_v3_EnvoyInternalAddress__fields[0], - UPB_SIZE(16, 32), 1, false, 255, + UPB_SIZE(16, 32), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_SocketAddress__fields[6] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(24, 40), UPB_SIZE(-33, -57), 0, 13, 1}, - {4, UPB_SIZE(24, 40), UPB_SIZE(-33, -57), 0, 9, 1}, - {5, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 40), UPB_SIZE(-33, -57), 0, 13, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), UPB_SIZE(-33, -57), 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_SocketAddress_msginit = { NULL, &envoy_config_core_v3_SocketAddress__fields[0], - UPB_SIZE(40, 64), 6, false, 255, + UPB_SIZE(40, 64), 6, false, 6, 255, }; static const upb_msglayout *const envoy_config_core_v3_TcpKeepalive_submsgs[1] = { @@ -58,15 +58,15 @@ static const upb_msglayout *const envoy_config_core_v3_TcpKeepalive_submsgs[1] = }; static const upb_msglayout_field envoy_config_core_v3_TcpKeepalive__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_TcpKeepalive_msginit = { &envoy_config_core_v3_TcpKeepalive_submsgs[0], &envoy_config_core_v3_TcpKeepalive__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_BindConfig_submsgs[3] = { @@ -76,15 +76,15 @@ static const upb_msglayout *const envoy_config_core_v3_BindConfig_submsgs[3] = { }; static const upb_msglayout_field envoy_config_core_v3_BindConfig__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 2, 11, 1}, - {3, UPB_SIZE(12, 24), 0, 1, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_BindConfig_msginit = { &envoy_config_core_v3_BindConfig_submsgs[0], &envoy_config_core_v3_BindConfig__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_Address_submsgs[3] = { @@ -94,15 +94,15 @@ static const upb_msglayout *const envoy_config_core_v3_Address_submsgs[3] = { }; static const upb_msglayout_field envoy_config_core_v3_Address__fields[3] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Address_msginit = { &envoy_config_core_v3_Address_submsgs[0], &envoy_config_core_v3_Address__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_CidrRange_submsgs[1] = { @@ -110,14 +110,14 @@ static const upb_msglayout *const envoy_config_core_v3_CidrRange_submsgs[1] = { }; static const upb_msglayout_field envoy_config_core_v3_CidrRange__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_CidrRange_msginit = { &envoy_config_core_v3_CidrRange_submsgs[0], &envoy_config_core_v3_CidrRange__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h index c8fdbee29ee..cab78ba6c81 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_ADDRESS_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_ADDRESS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -62,13 +62,19 @@ UPB_INLINE envoy_config_core_v3_Pipe *envoy_config_core_v3_Pipe_new(upb_arena *a UPB_INLINE envoy_config_core_v3_Pipe *envoy_config_core_v3_Pipe_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Pipe *ret = envoy_config_core_v3_Pipe_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Pipe_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Pipe_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Pipe *envoy_config_core_v3_Pipe_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Pipe *ret = envoy_config_core_v3_Pipe_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Pipe_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Pipe_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Pipe_serialize(const envoy_config_core_v3_Pipe *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Pipe_msginit, arena, len); @@ -92,13 +98,19 @@ UPB_INLINE envoy_config_core_v3_EnvoyInternalAddress *envoy_config_core_v3_Envoy UPB_INLINE envoy_config_core_v3_EnvoyInternalAddress *envoy_config_core_v3_EnvoyInternalAddress_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_EnvoyInternalAddress *ret = envoy_config_core_v3_EnvoyInternalAddress_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_EnvoyInternalAddress_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_EnvoyInternalAddress_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_EnvoyInternalAddress *envoy_config_core_v3_EnvoyInternalAddress_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_EnvoyInternalAddress *ret = envoy_config_core_v3_EnvoyInternalAddress_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_EnvoyInternalAddress_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_EnvoyInternalAddress_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_EnvoyInternalAddress_serialize(const envoy_config_core_v3_EnvoyInternalAddress *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_EnvoyInternalAddress_msginit, arena, len); @@ -125,13 +137,19 @@ UPB_INLINE envoy_config_core_v3_SocketAddress *envoy_config_core_v3_SocketAddres UPB_INLINE envoy_config_core_v3_SocketAddress *envoy_config_core_v3_SocketAddress_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_SocketAddress *ret = envoy_config_core_v3_SocketAddress_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_SocketAddress_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_SocketAddress_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_SocketAddress *envoy_config_core_v3_SocketAddress_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_SocketAddress *ret = envoy_config_core_v3_SocketAddress_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_SocketAddress_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_SocketAddress_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_SocketAddress_serialize(const envoy_config_core_v3_SocketAddress *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_SocketAddress_msginit, arena, len); @@ -180,13 +198,19 @@ UPB_INLINE envoy_config_core_v3_TcpKeepalive *envoy_config_core_v3_TcpKeepalive_ UPB_INLINE envoy_config_core_v3_TcpKeepalive *envoy_config_core_v3_TcpKeepalive_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_TcpKeepalive *ret = envoy_config_core_v3_TcpKeepalive_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_TcpKeepalive_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_TcpKeepalive_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_TcpKeepalive *envoy_config_core_v3_TcpKeepalive_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_TcpKeepalive *ret = envoy_config_core_v3_TcpKeepalive_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_TcpKeepalive_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_TcpKeepalive_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_TcpKeepalive_serialize(const envoy_config_core_v3_TcpKeepalive *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_TcpKeepalive_msginit, arena, len); @@ -247,13 +271,19 @@ UPB_INLINE envoy_config_core_v3_BindConfig *envoy_config_core_v3_BindConfig_new( UPB_INLINE envoy_config_core_v3_BindConfig *envoy_config_core_v3_BindConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_BindConfig *ret = envoy_config_core_v3_BindConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_BindConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_BindConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_BindConfig *envoy_config_core_v3_BindConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_BindConfig *ret = envoy_config_core_v3_BindConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_BindConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_BindConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_BindConfig_serialize(const envoy_config_core_v3_BindConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_BindConfig_msginit, arena, len); @@ -314,13 +344,19 @@ UPB_INLINE envoy_config_core_v3_Address *envoy_config_core_v3_Address_new(upb_ar UPB_INLINE envoy_config_core_v3_Address *envoy_config_core_v3_Address_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Address *ret = envoy_config_core_v3_Address_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Address_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Address_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Address *envoy_config_core_v3_Address_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Address *ret = envoy_config_core_v3_Address_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Address_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Address_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Address_serialize(const envoy_config_core_v3_Address *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Address_msginit, arena, len); @@ -386,13 +422,19 @@ UPB_INLINE envoy_config_core_v3_CidrRange *envoy_config_core_v3_CidrRange_new(up UPB_INLINE envoy_config_core_v3_CidrRange *envoy_config_core_v3_CidrRange_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_CidrRange *ret = envoy_config_core_v3_CidrRange_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_CidrRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_CidrRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_CidrRange *envoy_config_core_v3_CidrRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_CidrRange *ret = envoy_config_core_v3_CidrRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_CidrRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_CidrRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_CidrRange_serialize(const envoy_config_core_v3_CidrRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_CidrRange_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c index 8e1174d7a9f..95c1b37f68e 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/backoff.upb.h" #include "google/protobuf/duration.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,14 +21,14 @@ static const upb_msglayout *const envoy_config_core_v3_BackoffStrategy_submsgs[1 }; static const upb_msglayout_field envoy_config_core_v3_BackoffStrategy__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_BackoffStrategy_msginit = { &envoy_config_core_v3_BackoffStrategy_submsgs[0], &envoy_config_core_v3_BackoffStrategy__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h index 3601c66cf9d..3711df00623 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_BACKOFF_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_BACKOFF_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_config_core_v3_BackoffStrategy *envoy_config_core_v3_BackoffStr UPB_INLINE envoy_config_core_v3_BackoffStrategy *envoy_config_core_v3_BackoffStrategy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_BackoffStrategy *ret = envoy_config_core_v3_BackoffStrategy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_BackoffStrategy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_BackoffStrategy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_BackoffStrategy *envoy_config_core_v3_BackoffStrategy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_BackoffStrategy *ret = envoy_config_core_v3_BackoffStrategy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_BackoffStrategy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_BackoffStrategy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_BackoffStrategy_serialize(const envoy_config_core_v3_BackoffStrategy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_BackoffStrategy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c index e534377aa68..cfb9327473e 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/config/core/v3/backoff.upb.h" @@ -27,15 +27,15 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_config_core_v3_Locality__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Locality_msginit = { NULL, &envoy_config_core_v3_Locality__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_BuildVersion_submsgs[2] = { @@ -44,14 +44,14 @@ static const upb_msglayout *const envoy_config_core_v3_BuildVersion_submsgs[2] = }; static const upb_msglayout_field envoy_config_core_v3_BuildVersion__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_BuildVersion_msginit = { &envoy_config_core_v3_BuildVersion_submsgs[0], &envoy_config_core_v3_BuildVersion__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_Extension_submsgs[1] = { @@ -59,17 +59,17 @@ static const upb_msglayout *const envoy_config_core_v3_Extension_submsgs[1] = { }; static const upb_msglayout_field envoy_config_core_v3_Extension__fields[5] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {4, UPB_SIZE(28, 56), 1, 0, 11, 1}, - {5, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 56), 1, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Extension_msginit = { &envoy_config_core_v3_Extension_submsgs[0], &envoy_config_core_v3_Extension__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 5, 255, }; static const upb_msglayout *const envoy_config_core_v3_Node_submsgs[6] = { @@ -82,23 +82,23 @@ static const upb_msglayout *const envoy_config_core_v3_Node_submsgs[6] = { }; static const upb_msglayout_field envoy_config_core_v3_Node__fields[11] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(28, 56), 1, 5, 11, 1}, - {4, UPB_SIZE(32, 64), 2, 3, 11, 1}, - {6, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {7, UPB_SIZE(52, 104), UPB_SIZE(-61, -121), 0, 9, 1}, - {8, UPB_SIZE(52, 104), UPB_SIZE(-61, -121), 1, 11, 1}, - {9, UPB_SIZE(36, 72), 0, 2, 11, 3}, - {10, UPB_SIZE(40, 80), 0, 0, 9, 3}, - {11, UPB_SIZE(44, 88), 0, 0, 11, 3}, - {12, UPB_SIZE(48, 96), 0, 4, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 56), 1, 5, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 64), 2, 3, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(52, 104), UPB_SIZE(-61, -121), 0, 9, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(52, 104), UPB_SIZE(-61, -121), 1, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(36, 72), 0, 2, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(40, 80), 0, 0, 9, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(44, 88), 0, 0, 11, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(48, 96), 0, 4, 11, _UPB_MODE_MAP}, }; const upb_msglayout envoy_config_core_v3_Node_msginit = { &envoy_config_core_v3_Node_submsgs[0], &envoy_config_core_v3_Node__fields[0], - UPB_SIZE(64, 128), 11, false, 255, + UPB_SIZE(64, 128), 11, false, 4, 255, }; static const upb_msglayout *const envoy_config_core_v3_Node_DynamicParametersEntry_submsgs[1] = { @@ -106,14 +106,14 @@ static const upb_msglayout *const envoy_config_core_v3_Node_DynamicParametersEnt }; static const upb_msglayout_field envoy_config_core_v3_Node_DynamicParametersEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Node_DynamicParametersEntry_msginit = { &envoy_config_core_v3_Node_DynamicParametersEntry_submsgs[0], &envoy_config_core_v3_Node_DynamicParametersEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_Metadata_submsgs[2] = { @@ -122,14 +122,14 @@ static const upb_msglayout *const envoy_config_core_v3_Metadata_submsgs[2] = { }; static const upb_msglayout_field envoy_config_core_v3_Metadata__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_LABEL_MAP}, - {2, UPB_SIZE(4, 8), 0, 1, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_MAP}, + {2, UPB_SIZE(4, 8), 0, 1, 11, _UPB_MODE_MAP}, }; const upb_msglayout envoy_config_core_v3_Metadata_msginit = { &envoy_config_core_v3_Metadata_submsgs[0], &envoy_config_core_v3_Metadata__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_Metadata_FilterMetadataEntry_submsgs[1] = { @@ -137,14 +137,14 @@ static const upb_msglayout *const envoy_config_core_v3_Metadata_FilterMetadataEn }; static const upb_msglayout_field envoy_config_core_v3_Metadata_FilterMetadataEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Metadata_FilterMetadataEntry_msginit = { &envoy_config_core_v3_Metadata_FilterMetadataEntry_submsgs[0], &envoy_config_core_v3_Metadata_FilterMetadataEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_Metadata_TypedFilterMetadataEntry_submsgs[1] = { @@ -152,25 +152,25 @@ static const upb_msglayout *const envoy_config_core_v3_Metadata_TypedFilterMetad }; static const upb_msglayout_field envoy_config_core_v3_Metadata_TypedFilterMetadataEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Metadata_TypedFilterMetadataEntry_msginit = { &envoy_config_core_v3_Metadata_TypedFilterMetadataEntry_submsgs[0], &envoy_config_core_v3_Metadata_TypedFilterMetadataEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_RuntimeUInt32__fields[2] = { - {2, UPB_SIZE(0, 0), 0, 0, 13, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {2, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RuntimeUInt32_msginit = { NULL, &envoy_config_core_v3_RuntimeUInt32__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 0, 255, }; static const upb_msglayout *const envoy_config_core_v3_RuntimePercent_submsgs[1] = { @@ -178,25 +178,25 @@ static const upb_msglayout *const envoy_config_core_v3_RuntimePercent_submsgs[1] }; static const upb_msglayout_field envoy_config_core_v3_RuntimePercent__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RuntimePercent_msginit = { &envoy_config_core_v3_RuntimePercent_submsgs[0], &envoy_config_core_v3_RuntimePercent__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_RuntimeDouble__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RuntimeDouble_msginit = { NULL, &envoy_config_core_v3_RuntimeDouble__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_RuntimeFeatureFlag_submsgs[1] = { @@ -204,25 +204,25 @@ static const upb_msglayout *const envoy_config_core_v3_RuntimeFeatureFlag_submsg }; static const upb_msglayout_field envoy_config_core_v3_RuntimeFeatureFlag__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RuntimeFeatureFlag_msginit = { &envoy_config_core_v3_RuntimeFeatureFlag_submsgs[0], &envoy_config_core_v3_RuntimeFeatureFlag__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_HeaderValue__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HeaderValue_msginit = { NULL, &envoy_config_core_v3_HeaderValue__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_HeaderValueOption_submsgs[2] = { @@ -231,14 +231,14 @@ static const upb_msglayout *const envoy_config_core_v3_HeaderValueOption_submsgs }; static const upb_msglayout_field envoy_config_core_v3_HeaderValueOption__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HeaderValueOption_msginit = { &envoy_config_core_v3_HeaderValueOption_submsgs[0], &envoy_config_core_v3_HeaderValueOption__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_HeaderMap_submsgs[1] = { @@ -246,35 +246,35 @@ static const upb_msglayout *const envoy_config_core_v3_HeaderMap_submsgs[1] = { }; static const upb_msglayout_field envoy_config_core_v3_HeaderMap__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_HeaderMap_msginit = { &envoy_config_core_v3_HeaderMap_submsgs[0], &envoy_config_core_v3_HeaderMap__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_WatchedDirectory__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_WatchedDirectory_msginit = { NULL, &envoy_config_core_v3_WatchedDirectory__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_DataSource__fields[3] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 12, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_DataSource_msginit = { NULL, &envoy_config_core_v3_DataSource__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_RetryPolicy_submsgs[2] = { @@ -283,14 +283,14 @@ static const upb_msglayout *const envoy_config_core_v3_RetryPolicy_submsgs[2] = }; static const upb_msglayout_field envoy_config_core_v3_RetryPolicy__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RetryPolicy_msginit = { &envoy_config_core_v3_RetryPolicy_submsgs[0], &envoy_config_core_v3_RetryPolicy__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_RemoteDataSource_submsgs[2] = { @@ -299,15 +299,15 @@ static const upb_msglayout *const envoy_config_core_v3_RemoteDataSource_submsgs[ }; static const upb_msglayout_field envoy_config_core_v3_RemoteDataSource__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 2, 1, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RemoteDataSource_msginit = { &envoy_config_core_v3_RemoteDataSource_submsgs[0], &envoy_config_core_v3_RemoteDataSource__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_AsyncDataSource_submsgs[2] = { @@ -316,14 +316,14 @@ static const upb_msglayout *const envoy_config_core_v3_AsyncDataSource_submsgs[2 }; static const upb_msglayout_field envoy_config_core_v3_AsyncDataSource__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_AsyncDataSource_msginit = { &envoy_config_core_v3_AsyncDataSource_submsgs[0], &envoy_config_core_v3_AsyncDataSource__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_TransportSocket_submsgs[1] = { @@ -331,14 +331,14 @@ static const upb_msglayout *const envoy_config_core_v3_TransportSocket_submsgs[1 }; static const upb_msglayout_field envoy_config_core_v3_TransportSocket__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_TransportSocket_msginit = { &envoy_config_core_v3_TransportSocket_submsgs[0], &envoy_config_core_v3_TransportSocket__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout *const envoy_config_core_v3_RuntimeFractionalPercent_submsgs[1] = { @@ -346,24 +346,24 @@ static const upb_msglayout *const envoy_config_core_v3_RuntimeFractionalPercent_ }; static const upb_msglayout_field envoy_config_core_v3_RuntimeFractionalPercent__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RuntimeFractionalPercent_msginit = { &envoy_config_core_v3_RuntimeFractionalPercent_submsgs[0], &envoy_config_core_v3_RuntimeFractionalPercent__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_ControlPlane__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_ControlPlane_msginit = { NULL, &envoy_config_core_v3_ControlPlane__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h index 043c0b9ada0..8d36c96746f 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_BASE_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_BASE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -145,13 +145,19 @@ UPB_INLINE envoy_config_core_v3_Locality *envoy_config_core_v3_Locality_new(upb_ UPB_INLINE envoy_config_core_v3_Locality *envoy_config_core_v3_Locality_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Locality *ret = envoy_config_core_v3_Locality_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Locality_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Locality_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Locality *envoy_config_core_v3_Locality_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Locality *ret = envoy_config_core_v3_Locality_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Locality_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Locality_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Locality_serialize(const envoy_config_core_v3_Locality *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Locality_msginit, arena, len); @@ -179,13 +185,19 @@ UPB_INLINE envoy_config_core_v3_BuildVersion *envoy_config_core_v3_BuildVersion_ UPB_INLINE envoy_config_core_v3_BuildVersion *envoy_config_core_v3_BuildVersion_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_BuildVersion *ret = envoy_config_core_v3_BuildVersion_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_BuildVersion_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_BuildVersion_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_BuildVersion *envoy_config_core_v3_BuildVersion_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_BuildVersion *ret = envoy_config_core_v3_BuildVersion_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_BuildVersion_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_BuildVersion_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_BuildVersion_serialize(const envoy_config_core_v3_BuildVersion *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_BuildVersion_msginit, arena, len); @@ -231,13 +243,19 @@ UPB_INLINE envoy_config_core_v3_Extension *envoy_config_core_v3_Extension_new(up UPB_INLINE envoy_config_core_v3_Extension *envoy_config_core_v3_Extension_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Extension *ret = envoy_config_core_v3_Extension_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Extension_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Extension_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Extension *envoy_config_core_v3_Extension_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Extension *ret = envoy_config_core_v3_Extension_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Extension_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Extension_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Extension_serialize(const envoy_config_core_v3_Extension *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Extension_msginit, arena, len); @@ -284,13 +302,19 @@ UPB_INLINE envoy_config_core_v3_Node *envoy_config_core_v3_Node_new(upb_arena *a UPB_INLINE envoy_config_core_v3_Node *envoy_config_core_v3_Node_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Node *ret = envoy_config_core_v3_Node_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Node_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Node_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Node *envoy_config_core_v3_Node_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Node *ret = envoy_config_core_v3_Node_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Node_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Node_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Node_serialize(const envoy_config_core_v3_Node *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Node_msginit, arena, len); @@ -441,13 +465,19 @@ UPB_INLINE envoy_config_core_v3_Metadata *envoy_config_core_v3_Metadata_new(upb_ UPB_INLINE envoy_config_core_v3_Metadata *envoy_config_core_v3_Metadata_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Metadata *ret = envoy_config_core_v3_Metadata_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Metadata_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Metadata_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Metadata *envoy_config_core_v3_Metadata_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Metadata *ret = envoy_config_core_v3_Metadata_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Metadata_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Metadata_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Metadata_serialize(const envoy_config_core_v3_Metadata *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Metadata_msginit, arena, len); @@ -515,13 +545,19 @@ UPB_INLINE envoy_config_core_v3_RuntimeUInt32 *envoy_config_core_v3_RuntimeUInt3 UPB_INLINE envoy_config_core_v3_RuntimeUInt32 *envoy_config_core_v3_RuntimeUInt32_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RuntimeUInt32 *ret = envoy_config_core_v3_RuntimeUInt32_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeUInt32_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeUInt32_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RuntimeUInt32 *envoy_config_core_v3_RuntimeUInt32_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RuntimeUInt32 *ret = envoy_config_core_v3_RuntimeUInt32_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeUInt32_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeUInt32_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RuntimeUInt32_serialize(const envoy_config_core_v3_RuntimeUInt32 *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RuntimeUInt32_msginit, arena, len); @@ -545,13 +581,19 @@ UPB_INLINE envoy_config_core_v3_RuntimePercent *envoy_config_core_v3_RuntimePerc UPB_INLINE envoy_config_core_v3_RuntimePercent *envoy_config_core_v3_RuntimePercent_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RuntimePercent *ret = envoy_config_core_v3_RuntimePercent_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimePercent_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimePercent_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RuntimePercent *envoy_config_core_v3_RuntimePercent_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RuntimePercent *ret = envoy_config_core_v3_RuntimePercent_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimePercent_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimePercent_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RuntimePercent_serialize(const envoy_config_core_v3_RuntimePercent *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RuntimePercent_msginit, arena, len); @@ -586,13 +628,19 @@ UPB_INLINE envoy_config_core_v3_RuntimeDouble *envoy_config_core_v3_RuntimeDoubl UPB_INLINE envoy_config_core_v3_RuntimeDouble *envoy_config_core_v3_RuntimeDouble_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RuntimeDouble *ret = envoy_config_core_v3_RuntimeDouble_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeDouble_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeDouble_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RuntimeDouble *envoy_config_core_v3_RuntimeDouble_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RuntimeDouble *ret = envoy_config_core_v3_RuntimeDouble_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeDouble_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeDouble_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RuntimeDouble_serialize(const envoy_config_core_v3_RuntimeDouble *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RuntimeDouble_msginit, arena, len); @@ -616,13 +664,19 @@ UPB_INLINE envoy_config_core_v3_RuntimeFeatureFlag *envoy_config_core_v3_Runtime UPB_INLINE envoy_config_core_v3_RuntimeFeatureFlag *envoy_config_core_v3_RuntimeFeatureFlag_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RuntimeFeatureFlag *ret = envoy_config_core_v3_RuntimeFeatureFlag_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFeatureFlag_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFeatureFlag_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RuntimeFeatureFlag *envoy_config_core_v3_RuntimeFeatureFlag_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RuntimeFeatureFlag *ret = envoy_config_core_v3_RuntimeFeatureFlag_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFeatureFlag_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFeatureFlag_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RuntimeFeatureFlag_serialize(const envoy_config_core_v3_RuntimeFeatureFlag *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RuntimeFeatureFlag_msginit, arena, len); @@ -657,13 +711,19 @@ UPB_INLINE envoy_config_core_v3_HeaderValue *envoy_config_core_v3_HeaderValue_ne UPB_INLINE envoy_config_core_v3_HeaderValue *envoy_config_core_v3_HeaderValue_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HeaderValue *ret = envoy_config_core_v3_HeaderValue_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HeaderValue *envoy_config_core_v3_HeaderValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HeaderValue *ret = envoy_config_core_v3_HeaderValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HeaderValue_serialize(const envoy_config_core_v3_HeaderValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HeaderValue_msginit, arena, len); @@ -687,13 +747,19 @@ UPB_INLINE envoy_config_core_v3_HeaderValueOption *envoy_config_core_v3_HeaderVa UPB_INLINE envoy_config_core_v3_HeaderValueOption *envoy_config_core_v3_HeaderValueOption_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HeaderValueOption *ret = envoy_config_core_v3_HeaderValueOption_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValueOption_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValueOption_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HeaderValueOption *envoy_config_core_v3_HeaderValueOption_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HeaderValueOption *ret = envoy_config_core_v3_HeaderValueOption_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValueOption_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderValueOption_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HeaderValueOption_serialize(const envoy_config_core_v3_HeaderValueOption *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HeaderValueOption_msginit, arena, len); @@ -739,13 +805,19 @@ UPB_INLINE envoy_config_core_v3_HeaderMap *envoy_config_core_v3_HeaderMap_new(up UPB_INLINE envoy_config_core_v3_HeaderMap *envoy_config_core_v3_HeaderMap_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HeaderMap *ret = envoy_config_core_v3_HeaderMap_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderMap_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderMap_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HeaderMap *envoy_config_core_v3_HeaderMap_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HeaderMap *ret = envoy_config_core_v3_HeaderMap_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderMap_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HeaderMap_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HeaderMap_serialize(const envoy_config_core_v3_HeaderMap *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HeaderMap_msginit, arena, len); @@ -776,13 +848,19 @@ UPB_INLINE envoy_config_core_v3_WatchedDirectory *envoy_config_core_v3_WatchedDi UPB_INLINE envoy_config_core_v3_WatchedDirectory *envoy_config_core_v3_WatchedDirectory_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_WatchedDirectory *ret = envoy_config_core_v3_WatchedDirectory_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_WatchedDirectory_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_WatchedDirectory_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_WatchedDirectory *envoy_config_core_v3_WatchedDirectory_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_WatchedDirectory *ret = envoy_config_core_v3_WatchedDirectory_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_WatchedDirectory_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_WatchedDirectory_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_WatchedDirectory_serialize(const envoy_config_core_v3_WatchedDirectory *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_WatchedDirectory_msginit, arena, len); @@ -802,13 +880,19 @@ UPB_INLINE envoy_config_core_v3_DataSource *envoy_config_core_v3_DataSource_new( UPB_INLINE envoy_config_core_v3_DataSource *envoy_config_core_v3_DataSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_DataSource *ret = envoy_config_core_v3_DataSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_DataSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_DataSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_DataSource *envoy_config_core_v3_DataSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_DataSource *ret = envoy_config_core_v3_DataSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_DataSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_DataSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_DataSource_serialize(const envoy_config_core_v3_DataSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_DataSource_msginit, arena, len); @@ -847,13 +931,19 @@ UPB_INLINE envoy_config_core_v3_RetryPolicy *envoy_config_core_v3_RetryPolicy_ne UPB_INLINE envoy_config_core_v3_RetryPolicy *envoy_config_core_v3_RetryPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RetryPolicy *ret = envoy_config_core_v3_RetryPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RetryPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RetryPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RetryPolicy *envoy_config_core_v3_RetryPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RetryPolicy *ret = envoy_config_core_v3_RetryPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RetryPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RetryPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RetryPolicy_serialize(const envoy_config_core_v3_RetryPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RetryPolicy_msginit, arena, len); @@ -899,13 +989,19 @@ UPB_INLINE envoy_config_core_v3_RemoteDataSource *envoy_config_core_v3_RemoteDat UPB_INLINE envoy_config_core_v3_RemoteDataSource *envoy_config_core_v3_RemoteDataSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RemoteDataSource *ret = envoy_config_core_v3_RemoteDataSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RemoteDataSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RemoteDataSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RemoteDataSource *envoy_config_core_v3_RemoteDataSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RemoteDataSource *ret = envoy_config_core_v3_RemoteDataSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RemoteDataSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RemoteDataSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RemoteDataSource_serialize(const envoy_config_core_v3_RemoteDataSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RemoteDataSource_msginit, arena, len); @@ -955,13 +1051,19 @@ UPB_INLINE envoy_config_core_v3_AsyncDataSource *envoy_config_core_v3_AsyncDataS UPB_INLINE envoy_config_core_v3_AsyncDataSource *envoy_config_core_v3_AsyncDataSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_AsyncDataSource *ret = envoy_config_core_v3_AsyncDataSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_AsyncDataSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_AsyncDataSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_AsyncDataSource *envoy_config_core_v3_AsyncDataSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_AsyncDataSource *ret = envoy_config_core_v3_AsyncDataSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_AsyncDataSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_AsyncDataSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_AsyncDataSource_serialize(const envoy_config_core_v3_AsyncDataSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_AsyncDataSource_msginit, arena, len); @@ -1012,13 +1114,19 @@ UPB_INLINE envoy_config_core_v3_TransportSocket *envoy_config_core_v3_TransportS UPB_INLINE envoy_config_core_v3_TransportSocket *envoy_config_core_v3_TransportSocket_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_TransportSocket *ret = envoy_config_core_v3_TransportSocket_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_TransportSocket_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_TransportSocket_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_TransportSocket *envoy_config_core_v3_TransportSocket_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_TransportSocket *ret = envoy_config_core_v3_TransportSocket_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_TransportSocket_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_TransportSocket_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_TransportSocket_serialize(const envoy_config_core_v3_TransportSocket *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_TransportSocket_msginit, arena, len); @@ -1058,13 +1166,19 @@ UPB_INLINE envoy_config_core_v3_RuntimeFractionalPercent *envoy_config_core_v3_R UPB_INLINE envoy_config_core_v3_RuntimeFractionalPercent *envoy_config_core_v3_RuntimeFractionalPercent_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RuntimeFractionalPercent *ret = envoy_config_core_v3_RuntimeFractionalPercent_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFractionalPercent_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFractionalPercent_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RuntimeFractionalPercent *envoy_config_core_v3_RuntimeFractionalPercent_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RuntimeFractionalPercent *ret = envoy_config_core_v3_RuntimeFractionalPercent_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFractionalPercent_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RuntimeFractionalPercent_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RuntimeFractionalPercent_serialize(const envoy_config_core_v3_RuntimeFractionalPercent *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RuntimeFractionalPercent_msginit, arena, len); @@ -1099,13 +1213,19 @@ UPB_INLINE envoy_config_core_v3_ControlPlane *envoy_config_core_v3_ControlPlane_ UPB_INLINE envoy_config_core_v3_ControlPlane *envoy_config_core_v3_ControlPlane_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_ControlPlane *ret = envoy_config_core_v3_ControlPlane_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_ControlPlane_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_ControlPlane_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_ControlPlane *envoy_config_core_v3_ControlPlane_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_ControlPlane *ret = envoy_config_core_v3_ControlPlane_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_ControlPlane_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_ControlPlane_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_ControlPlane_serialize(const envoy_config_core_v3_ControlPlane *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_ControlPlane_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c index 30a2e754e92..91daff7a513 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/config_source.upb.h" #include "envoy/config/core/v3/grpc_service.upb.h" #include "google/protobuf/duration.upb.h" @@ -27,36 +27,36 @@ static const upb_msglayout *const envoy_config_core_v3_ApiConfigSource_submsgs[3 }; static const upb_msglayout_field envoy_config_core_v3_ApiConfigSource__fields[8] = { - {1, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {2, UPB_SIZE(28, 40), 0, 0, 9, 3}, - {3, UPB_SIZE(16, 16), 1, 2, 11, 1}, - {4, UPB_SIZE(32, 48), 0, 0, 11, 3}, - {5, UPB_SIZE(20, 24), 2, 2, 11, 1}, - {6, UPB_SIZE(24, 32), 3, 1, 11, 1}, - {7, UPB_SIZE(12, 12), 0, 0, 8, 1}, - {8, UPB_SIZE(8, 8), 0, 0, 14, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(28, 40), 0, 0, 9, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(16, 16), 1, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 48), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(20, 24), 2, 2, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 32), 3, 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(12, 12), 0, 0, 8, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_ApiConfigSource_msginit = { &envoy_config_core_v3_ApiConfigSource_submsgs[0], &envoy_config_core_v3_ApiConfigSource__fields[0], - UPB_SIZE(40, 56), 8, false, 255, + UPB_SIZE(40, 56), 8, false, 8, 255, }; const upb_msglayout envoy_config_core_v3_AggregatedConfigSource_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout_field envoy_config_core_v3_SelfConfigSource__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_SelfConfigSource_msginit = { NULL, &envoy_config_core_v3_SelfConfigSource__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_core_v3_RateLimitSettings_submsgs[2] = { @@ -65,14 +65,14 @@ static const upb_msglayout *const envoy_config_core_v3_RateLimitSettings_submsgs }; static const upb_msglayout_field envoy_config_core_v3_RateLimitSettings__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_RateLimitSettings_msginit = { &envoy_config_core_v3_RateLimitSettings_submsgs[0], &envoy_config_core_v3_RateLimitSettings__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_ConfigSource_submsgs[5] = { @@ -84,19 +84,19 @@ static const upb_msglayout *const envoy_config_core_v3_ConfigSource_submsgs[5] = }; static const upb_msglayout_field envoy_config_core_v3_ConfigSource__fields[7] = { - {1, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 0, 9, 1}, - {2, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 1, 11, 1}, - {3, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 0, 11, 1}, - {4, UPB_SIZE(8, 8), 1, 3, 11, 1}, - {5, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 2, 11, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {7, UPB_SIZE(12, 16), 0, 4, 11, 3}, + {1, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), 1, 3, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 2, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(12, 16), 0, 4, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_ConfigSource_msginit = { &envoy_config_core_v3_ConfigSource_submsgs[0], &envoy_config_core_v3_ConfigSource__fields[0], - UPB_SIZE(32, 48), 7, false, 255, + UPB_SIZE(32, 48), 7, false, 7, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h index 1fc85348903..3388402b5f1 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_CONFIG_SOURCE_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_CONFIG_SOURCE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -70,13 +70,19 @@ UPB_INLINE envoy_config_core_v3_ApiConfigSource *envoy_config_core_v3_ApiConfigS UPB_INLINE envoy_config_core_v3_ApiConfigSource *envoy_config_core_v3_ApiConfigSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_ApiConfigSource *ret = envoy_config_core_v3_ApiConfigSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_ApiConfigSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_ApiConfigSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_ApiConfigSource *envoy_config_core_v3_ApiConfigSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_ApiConfigSource *ret = envoy_config_core_v3_ApiConfigSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_ApiConfigSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_ApiConfigSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_ApiConfigSource_serialize(const envoy_config_core_v3_ApiConfigSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_ApiConfigSource_msginit, arena, len); @@ -175,13 +181,19 @@ UPB_INLINE envoy_config_core_v3_AggregatedConfigSource *envoy_config_core_v3_Agg UPB_INLINE envoy_config_core_v3_AggregatedConfigSource *envoy_config_core_v3_AggregatedConfigSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_AggregatedConfigSource *ret = envoy_config_core_v3_AggregatedConfigSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_AggregatedConfigSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_AggregatedConfigSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_AggregatedConfigSource *envoy_config_core_v3_AggregatedConfigSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_AggregatedConfigSource *ret = envoy_config_core_v3_AggregatedConfigSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_AggregatedConfigSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_AggregatedConfigSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_AggregatedConfigSource_serialize(const envoy_config_core_v3_AggregatedConfigSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_AggregatedConfigSource_msginit, arena, len); @@ -197,13 +209,19 @@ UPB_INLINE envoy_config_core_v3_SelfConfigSource *envoy_config_core_v3_SelfConfi UPB_INLINE envoy_config_core_v3_SelfConfigSource *envoy_config_core_v3_SelfConfigSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_SelfConfigSource *ret = envoy_config_core_v3_SelfConfigSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_SelfConfigSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_SelfConfigSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_SelfConfigSource *envoy_config_core_v3_SelfConfigSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_SelfConfigSource *ret = envoy_config_core_v3_SelfConfigSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_SelfConfigSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_SelfConfigSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_SelfConfigSource_serialize(const envoy_config_core_v3_SelfConfigSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_SelfConfigSource_msginit, arena, len); @@ -223,13 +241,19 @@ UPB_INLINE envoy_config_core_v3_RateLimitSettings *envoy_config_core_v3_RateLimi UPB_INLINE envoy_config_core_v3_RateLimitSettings *envoy_config_core_v3_RateLimitSettings_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_RateLimitSettings *ret = envoy_config_core_v3_RateLimitSettings_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_RateLimitSettings_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_RateLimitSettings_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_RateLimitSettings *envoy_config_core_v3_RateLimitSettings_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_RateLimitSettings *ret = envoy_config_core_v3_RateLimitSettings_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_RateLimitSettings_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_RateLimitSettings_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_RateLimitSettings_serialize(const envoy_config_core_v3_RateLimitSettings *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_RateLimitSettings_msginit, arena, len); @@ -275,13 +299,19 @@ UPB_INLINE envoy_config_core_v3_ConfigSource *envoy_config_core_v3_ConfigSource_ UPB_INLINE envoy_config_core_v3_ConfigSource *envoy_config_core_v3_ConfigSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_ConfigSource *ret = envoy_config_core_v3_ConfigSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_ConfigSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_ConfigSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_ConfigSource *envoy_config_core_v3_ConfigSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_ConfigSource *ret = envoy_config_core_v3_ConfigSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_ConfigSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_ConfigSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_ConfigSource_serialize(const envoy_config_core_v3_ConfigSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_ConfigSource_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c index 3f89247a7a5..9de7ac74608 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/event_service_config.upb.h" #include "envoy/config/core/v3/grpc_service.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,13 +21,13 @@ static const upb_msglayout *const envoy_config_core_v3_EventServiceConfig_submsg }; static const upb_msglayout_field envoy_config_core_v3_EventServiceConfig__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_EventServiceConfig_msginit = { &envoy_config_core_v3_EventServiceConfig_submsgs[0], &envoy_config_core_v3_EventServiceConfig__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h index 3069f4c3c77..25ae45e67a4 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_EVENT_SERVICE_CONFIG_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_EVENT_SERVICE_CONFIG_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_config_core_v3_EventServiceConfig *envoy_config_core_v3_EventSe UPB_INLINE envoy_config_core_v3_EventServiceConfig *envoy_config_core_v3_EventServiceConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_EventServiceConfig *ret = envoy_config_core_v3_EventServiceConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_EventServiceConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_EventServiceConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_EventServiceConfig *envoy_config_core_v3_EventServiceConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_EventServiceConfig *ret = envoy_config_core_v3_EventServiceConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_EventServiceConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_EventServiceConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_EventServiceConfig_serialize(const envoy_config_core_v3_EventServiceConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_EventServiceConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c index 47b8b32ecbd..beea24a4abe 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/extension.upb.h" #include "envoy/config/core/v3/config_source.upb.h" #include "google/protobuf/any.upb.h" @@ -21,14 +21,14 @@ static const upb_msglayout *const envoy_config_core_v3_TypedExtensionConfig_subm }; static const upb_msglayout_field envoy_config_core_v3_TypedExtensionConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_TypedExtensionConfig_msginit = { &envoy_config_core_v3_TypedExtensionConfig_submsgs[0], &envoy_config_core_v3_TypedExtensionConfig__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_ExtensionConfigSource_submsgs[2] = { @@ -37,16 +37,16 @@ static const upb_msglayout *const envoy_config_core_v3_ExtensionConfigSource_sub }; static const upb_msglayout_field envoy_config_core_v3_ExtensionConfigSource__fields[4] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {4, UPB_SIZE(12, 24), 0, 0, 9, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_ExtensionConfigSource_msginit = { &envoy_config_core_v3_ExtensionConfigSource_submsgs[0], &envoy_config_core_v3_ExtensionConfigSource__fields[0], - UPB_SIZE(16, 32), 4, false, 255, + UPB_SIZE(16, 32), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h index 8499bfc26ce..613689c4213 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_EXTENSION_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_EXTENSION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -40,13 +40,19 @@ UPB_INLINE envoy_config_core_v3_TypedExtensionConfig *envoy_config_core_v3_Typed UPB_INLINE envoy_config_core_v3_TypedExtensionConfig *envoy_config_core_v3_TypedExtensionConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_TypedExtensionConfig *ret = envoy_config_core_v3_TypedExtensionConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_TypedExtensionConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_TypedExtensionConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_TypedExtensionConfig *envoy_config_core_v3_TypedExtensionConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_TypedExtensionConfig *ret = envoy_config_core_v3_TypedExtensionConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_TypedExtensionConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_TypedExtensionConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_TypedExtensionConfig_serialize(const envoy_config_core_v3_TypedExtensionConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_TypedExtensionConfig_msginit, arena, len); @@ -81,13 +87,19 @@ UPB_INLINE envoy_config_core_v3_ExtensionConfigSource *envoy_config_core_v3_Exte UPB_INLINE envoy_config_core_v3_ExtensionConfigSource *envoy_config_core_v3_ExtensionConfigSource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_ExtensionConfigSource *ret = envoy_config_core_v3_ExtensionConfigSource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_ExtensionConfigSource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_ExtensionConfigSource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_ExtensionConfigSource *envoy_config_core_v3_ExtensionConfigSource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_ExtensionConfigSource *ret = envoy_config_core_v3_ExtensionConfigSource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_ExtensionConfigSource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_ExtensionConfigSource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_ExtensionConfigSource_serialize(const envoy_config_core_v3_ExtensionConfigSource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_ExtensionConfigSource_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c index b2e99df0649..478c5acb15b 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/grpc_service.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "google/protobuf/any.upb.h" @@ -30,27 +30,27 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_submsgs[4] = }; static const upb_msglayout_field envoy_config_core_v3_GrpcService__fields[4] = { - {1, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 0, 11, 1}, - {2, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 1, 11, 1}, - {3, UPB_SIZE(4, 8), 1, 3, 11, 1}, - {5, UPB_SIZE(8, 16), 0, 2, 11, 3}, + {1, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 1, 3, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), 0, 2, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_GrpcService_msginit = { &envoy_config_core_v3_GrpcService_submsgs[0], &envoy_config_core_v3_GrpcService__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 3, 255, }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_EnvoyGrpc__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_EnvoyGrpc_msginit = { NULL, &envoy_config_core_v3_GrpcService_EnvoyGrpc__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_submsgs[5] = { @@ -62,20 +62,20 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_su }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc__fields[8] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(28, 56), 1, 2, 11, 1}, - {3, UPB_SIZE(44, 88), 0, 0, 11, 3}, - {4, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {5, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {6, UPB_SIZE(32, 64), 2, 3, 11, 1}, - {7, UPB_SIZE(36, 72), 3, 4, 11, 1}, - {8, UPB_SIZE(40, 80), 4, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(28, 56), 1, 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(44, 88), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(32, 64), 2, 3, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(36, 72), 3, 4, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(40, 80), 4, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc__fields[0], - UPB_SIZE(48, 96), 8, false, 255, + UPB_SIZE(48, 96), 8, false, 8, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_submsgs[1] = { @@ -83,21 +83,21 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_Ss }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_submsgs[3] = { @@ -107,15 +107,15 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_Ch }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials__fields[3] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_submsgs[5] = { @@ -127,41 +127,41 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_Ca }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials__fields[7] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 4, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 2, 11, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 3, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 4, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 3, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials__fields[0], - UPB_SIZE(16, 32), 7, false, 255, + UPB_SIZE(16, 32), 7, false, 7, 255, }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__fields[2] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 4, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 4, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_msginit = { NULL, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_msginit = { NULL, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_submsgs[1] = { @@ -169,32 +169,32 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_Ca }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService__fields[9] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 0, 0, 9, 1}, - {4, UPB_SIZE(24, 48), 0, 0, 9, 1}, - {5, UPB_SIZE(32, 64), 0, 0, 9, 1}, - {6, UPB_SIZE(40, 80), 0, 0, 9, 1}, - {7, UPB_SIZE(48, 96), 0, 0, 9, 1}, - {8, UPB_SIZE(56, 112), 0, 0, 9, 1}, - {9, UPB_SIZE(64, 128), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 48), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 64), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(40, 80), 0, 0, 9, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(48, 96), 0, 0, 9, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(56, 112), 0, 0, 9, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(64, 128), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_msginit = { NULL, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService__fields[0], - UPB_SIZE(72, 144), 9, false, 255, + UPB_SIZE(72, 144), 9, false, 9, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_submsgs[1] = { @@ -202,24 +202,24 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_Ch }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 3, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 3, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_msginit = { NULL, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_ArgsEntry_submsgs[1] = { @@ -227,14 +227,14 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcService_GoogleGrpc_Ch }; static const upb_msglayout_field envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_ArgsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_ArgsEntry_msginit = { &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_ArgsEntry_submsgs[0], &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_ArgsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h index dd9913debf3..a59bdf09155 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_GRPC_SERVICE_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_GRPC_SERVICE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -86,13 +86,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService *envoy_config_core_v3_GrpcService_ne UPB_INLINE envoy_config_core_v3_GrpcService *envoy_config_core_v3_GrpcService_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService *ret = envoy_config_core_v3_GrpcService_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService *envoy_config_core_v3_GrpcService_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService *ret = envoy_config_core_v3_GrpcService_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_serialize(const envoy_config_core_v3_GrpcService *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_msginit, arena, len); @@ -173,13 +179,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_EnvoyGrpc *envoy_config_core_v3_Grpc UPB_INLINE envoy_config_core_v3_GrpcService_EnvoyGrpc *envoy_config_core_v3_GrpcService_EnvoyGrpc_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_EnvoyGrpc *ret = envoy_config_core_v3_GrpcService_EnvoyGrpc_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_EnvoyGrpc_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_EnvoyGrpc_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_EnvoyGrpc *envoy_config_core_v3_GrpcService_EnvoyGrpc_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_EnvoyGrpc *ret = envoy_config_core_v3_GrpcService_EnvoyGrpc_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_EnvoyGrpc_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_EnvoyGrpc_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_EnvoyGrpc_serialize(const envoy_config_core_v3_GrpcService_EnvoyGrpc *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_EnvoyGrpc_msginit, arena, len); @@ -203,13 +215,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc *envoy_config_core_v3_Grp UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc *envoy_config_core_v3_GrpcService_GoogleGrpc_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc *envoy_config_core_v3_GrpcService_GoogleGrpc_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_msginit, arena, len); @@ -312,13 +330,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials *envoy_con UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials_msginit, arena, len); @@ -379,13 +403,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials *e UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials_msginit, arena, len); @@ -401,13 +431,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials *envoy UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials_msginit, arena, len); @@ -473,13 +509,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials *envoy_co UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_msginit, arena, len); @@ -587,13 +629,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAc UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials_msginit, arena, len); @@ -617,13 +665,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAM UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials_msginit, arena, len); @@ -647,13 +701,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataC UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_msginit, arena, len); @@ -693,13 +753,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsServic UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService_msginit, arena, len); @@ -751,13 +817,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs *envoy_config UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_msginit, arena, len); @@ -781,13 +853,19 @@ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value *envoy_ UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value *ret = envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_serialize(const envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c index b0a5a642885..a1cb228d301 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/health_check.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/event_service_config.upb.h" @@ -38,46 +38,46 @@ static const upb_msglayout *const envoy_config_core_v3_HealthCheck_submsgs[10] = }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck__fields[23] = { - {1, UPB_SIZE(20, 32), 1, 7, 11, 1}, - {2, UPB_SIZE(24, 40), 2, 7, 11, 1}, - {3, UPB_SIZE(28, 48), 3, 7, 11, 1}, - {4, UPB_SIZE(32, 56), 4, 9, 11, 1}, - {5, UPB_SIZE(36, 64), 5, 9, 11, 1}, - {6, UPB_SIZE(40, 72), 6, 9, 11, 1}, - {7, UPB_SIZE(44, 80), 7, 6, 11, 1}, - {8, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 3, 11, 1}, - {9, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 4, 11, 1}, - {11, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 2, 11, 1}, - {12, UPB_SIZE(48, 88), 8, 7, 11, 1}, - {13, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 1, 11, 1}, - {14, UPB_SIZE(52, 96), 9, 7, 11, 1}, - {15, UPB_SIZE(56, 104), 10, 7, 11, 1}, - {16, UPB_SIZE(60, 112), 11, 7, 11, 1}, - {17, UPB_SIZE(12, 16), 0, 0, 9, 1}, - {18, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {19, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {20, UPB_SIZE(64, 120), 12, 7, 11, 1}, - {21, UPB_SIZE(68, 128), 13, 5, 11, 1}, - {22, UPB_SIZE(72, 136), 14, 0, 11, 1}, - {23, UPB_SIZE(76, 144), 15, 8, 11, 1}, - {24, UPB_SIZE(80, 152), 16, 7, 11, 1}, + {1, UPB_SIZE(20, 32), 1, 7, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 40), 2, 7, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 48), 3, 7, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 56), 4, 9, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(36, 64), 5, 9, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(40, 72), 6, 9, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(44, 80), 7, 6, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 3, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 4, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 2, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(48, 88), 8, 7, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(84, 160), UPB_SIZE(-89, -169), 1, 11, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(52, 96), 9, 7, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(56, 104), 10, 7, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(60, 112), 11, 7, 11, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(64, 120), 12, 7, 11, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(68, 128), 13, 5, 11, _UPB_MODE_SCALAR}, + {22, UPB_SIZE(72, 136), 14, 0, 11, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(76, 144), 15, 8, 11, _UPB_MODE_SCALAR}, + {24, UPB_SIZE(80, 152), 16, 7, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_msginit = { &envoy_config_core_v3_HealthCheck_submsgs[0], &envoy_config_core_v3_HealthCheck__fields[0], - UPB_SIZE(96, 176), 23, false, 255, + UPB_SIZE(96, 176), 23, false, 9, 255, }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_Payload__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 12, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_Payload_msginit = { NULL, &envoy_config_core_v3_HealthCheck_Payload__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_HealthCheck_HttpHealthCheck_submsgs[4] = { @@ -88,21 +88,21 @@ static const upb_msglayout *const envoy_config_core_v3_HealthCheck_HttpHealthChe }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_HttpHealthCheck__fields[9] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(24, 40), 1, 1, 11, 1}, - {4, UPB_SIZE(28, 48), 2, 1, 11, 1}, - {6, UPB_SIZE(36, 64), 0, 0, 11, 3}, - {8, UPB_SIZE(40, 72), 0, 0, 9, 3}, - {9, UPB_SIZE(44, 80), 0, 3, 11, 3}, - {10, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {11, UPB_SIZE(32, 56), 3, 2, 11, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 40), 1, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 48), 2, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(36, 64), 0, 0, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(40, 72), 0, 0, 9, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(44, 80), 0, 3, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(32, 56), 3, 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_HttpHealthCheck_msginit = { &envoy_config_core_v3_HealthCheck_HttpHealthCheck_submsgs[0], &envoy_config_core_v3_HealthCheck_HttpHealthCheck__fields[0], - UPB_SIZE(48, 96), 9, false, 255, + UPB_SIZE(48, 96), 9, false, 4, 255, }; static const upb_msglayout *const envoy_config_core_v3_HealthCheck_TcpHealthCheck_submsgs[1] = { @@ -110,35 +110,35 @@ static const upb_msglayout *const envoy_config_core_v3_HealthCheck_TcpHealthChec }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_TcpHealthCheck__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_TcpHealthCheck_msginit = { &envoy_config_core_v3_HealthCheck_TcpHealthCheck_submsgs[0], &envoy_config_core_v3_HealthCheck_TcpHealthCheck__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_RedisHealthCheck__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_RedisHealthCheck_msginit = { NULL, &envoy_config_core_v3_HealthCheck_RedisHealthCheck__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_GrpcHealthCheck__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_GrpcHealthCheck_msginit = { NULL, &envoy_config_core_v3_HealthCheck_GrpcHealthCheck__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_HealthCheck_CustomHealthCheck_submsgs[1] = { @@ -146,24 +146,24 @@ static const upb_msglayout *const envoy_config_core_v3_HealthCheck_CustomHealthC }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_CustomHealthCheck__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_CustomHealthCheck_msginit = { &envoy_config_core_v3_HealthCheck_CustomHealthCheck_submsgs[0], &envoy_config_core_v3_HealthCheck_CustomHealthCheck__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout_field envoy_config_core_v3_HealthCheck_TlsOptions__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_HealthCheck_TlsOptions_msginit = { NULL, &envoy_config_core_v3_HealthCheck_TlsOptions__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h index e4a803ab253..cc8b0f0da73 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_HEALTH_CHECK_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_HEALTH_CHECK_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -81,13 +81,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck *envoy_config_core_v3_HealthCheck_ne UPB_INLINE envoy_config_core_v3_HealthCheck *envoy_config_core_v3_HealthCheck_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck *ret = envoy_config_core_v3_HealthCheck_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck *envoy_config_core_v3_HealthCheck_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck *ret = envoy_config_core_v3_HealthCheck_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_serialize(const envoy_config_core_v3_HealthCheck *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_msginit, arena, len); @@ -420,13 +426,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_Payload *envoy_config_core_v3_Health UPB_INLINE envoy_config_core_v3_HealthCheck_Payload *envoy_config_core_v3_HealthCheck_Payload_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_Payload *ret = envoy_config_core_v3_HealthCheck_Payload_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_Payload_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_Payload_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_Payload *envoy_config_core_v3_HealthCheck_Payload_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_Payload *ret = envoy_config_core_v3_HealthCheck_Payload_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_Payload_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_Payload_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_Payload_serialize(const envoy_config_core_v3_HealthCheck_Payload *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_Payload_msginit, arena, len); @@ -459,13 +471,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_HttpHealthCheck *envoy_config_core_v UPB_INLINE envoy_config_core_v3_HealthCheck_HttpHealthCheck *envoy_config_core_v3_HealthCheck_HttpHealthCheck_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_HttpHealthCheck *ret = envoy_config_core_v3_HealthCheck_HttpHealthCheck_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_HttpHealthCheck_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_HttpHealthCheck_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_HttpHealthCheck *envoy_config_core_v3_HealthCheck_HttpHealthCheck_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_HttpHealthCheck *ret = envoy_config_core_v3_HealthCheck_HttpHealthCheck_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_HttpHealthCheck_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_HttpHealthCheck_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_HttpHealthCheck_serialize(const envoy_config_core_v3_HealthCheck_HttpHealthCheck *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_HttpHealthCheck_msginit, arena, len); @@ -579,13 +597,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_TcpHealthCheck *envoy_config_core_v3 UPB_INLINE envoy_config_core_v3_HealthCheck_TcpHealthCheck *envoy_config_core_v3_HealthCheck_TcpHealthCheck_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_TcpHealthCheck *ret = envoy_config_core_v3_HealthCheck_TcpHealthCheck_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TcpHealthCheck_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TcpHealthCheck_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_TcpHealthCheck *envoy_config_core_v3_HealthCheck_TcpHealthCheck_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_TcpHealthCheck *ret = envoy_config_core_v3_HealthCheck_TcpHealthCheck_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TcpHealthCheck_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TcpHealthCheck_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_TcpHealthCheck_serialize(const envoy_config_core_v3_HealthCheck_TcpHealthCheck *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_TcpHealthCheck_msginit, arena, len); @@ -631,13 +655,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_RedisHealthCheck *envoy_config_core_ UPB_INLINE envoy_config_core_v3_HealthCheck_RedisHealthCheck *envoy_config_core_v3_HealthCheck_RedisHealthCheck_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_RedisHealthCheck *ret = envoy_config_core_v3_HealthCheck_RedisHealthCheck_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_RedisHealthCheck_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_RedisHealthCheck_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_RedisHealthCheck *envoy_config_core_v3_HealthCheck_RedisHealthCheck_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_RedisHealthCheck *ret = envoy_config_core_v3_HealthCheck_RedisHealthCheck_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_RedisHealthCheck_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_RedisHealthCheck_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_RedisHealthCheck_serialize(const envoy_config_core_v3_HealthCheck_RedisHealthCheck *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_RedisHealthCheck_msginit, arena, len); @@ -657,13 +687,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_GrpcHealthCheck *envoy_config_core_v UPB_INLINE envoy_config_core_v3_HealthCheck_GrpcHealthCheck *envoy_config_core_v3_HealthCheck_GrpcHealthCheck_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_GrpcHealthCheck *ret = envoy_config_core_v3_HealthCheck_GrpcHealthCheck_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_GrpcHealthCheck_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_GrpcHealthCheck_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_GrpcHealthCheck *envoy_config_core_v3_HealthCheck_GrpcHealthCheck_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_GrpcHealthCheck *ret = envoy_config_core_v3_HealthCheck_GrpcHealthCheck_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_GrpcHealthCheck_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_GrpcHealthCheck_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_GrpcHealthCheck_serialize(const envoy_config_core_v3_HealthCheck_GrpcHealthCheck *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_GrpcHealthCheck_msginit, arena, len); @@ -687,13 +723,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_CustomHealthCheck *envoy_config_core UPB_INLINE envoy_config_core_v3_HealthCheck_CustomHealthCheck *envoy_config_core_v3_HealthCheck_CustomHealthCheck_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_CustomHealthCheck *ret = envoy_config_core_v3_HealthCheck_CustomHealthCheck_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_CustomHealthCheck_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_CustomHealthCheck_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_CustomHealthCheck *envoy_config_core_v3_HealthCheck_CustomHealthCheck_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_CustomHealthCheck *ret = envoy_config_core_v3_HealthCheck_CustomHealthCheck_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_CustomHealthCheck_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_CustomHealthCheck_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_CustomHealthCheck_serialize(const envoy_config_core_v3_HealthCheck_CustomHealthCheck *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_CustomHealthCheck_msginit, arena, len); @@ -733,13 +775,19 @@ UPB_INLINE envoy_config_core_v3_HealthCheck_TlsOptions *envoy_config_core_v3_Hea UPB_INLINE envoy_config_core_v3_HealthCheck_TlsOptions *envoy_config_core_v3_HealthCheck_TlsOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HealthCheck_TlsOptions *ret = envoy_config_core_v3_HealthCheck_TlsOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TlsOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TlsOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HealthCheck_TlsOptions *envoy_config_core_v3_HealthCheck_TlsOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HealthCheck_TlsOptions *ret = envoy_config_core_v3_HealthCheck_TlsOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TlsOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HealthCheck_TlsOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HealthCheck_TlsOptions_serialize(const envoy_config_core_v3_HealthCheck_TlsOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HealthCheck_TlsOptions_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c index c39ebef4c8c..840f6a80a5f 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/http_uri.upb.h" #include "google/protobuf/duration.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,15 +21,15 @@ static const upb_msglayout *const envoy_config_core_v3_HttpUri_submsgs[1] = { }; static const upb_msglayout_field envoy_config_core_v3_HttpUri__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 0, 9, 1}, - {3, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HttpUri_msginit = { &envoy_config_core_v3_HttpUri_submsgs[0], &envoy_config_core_v3_HttpUri__fields[0], - UPB_SIZE(32, 64), 3, false, 255, + UPB_SIZE(32, 64), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h index c49eec1f998..3cb1ba2cdc8 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_HTTP_URI_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_HTTP_URI_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_config_core_v3_HttpUri *envoy_config_core_v3_HttpUri_new(upb_ar UPB_INLINE envoy_config_core_v3_HttpUri *envoy_config_core_v3_HttpUri_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HttpUri *ret = envoy_config_core_v3_HttpUri_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HttpUri_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HttpUri_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HttpUri *envoy_config_core_v3_HttpUri_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HttpUri *ret = envoy_config_core_v3_HttpUri_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HttpUri_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HttpUri_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HttpUri_serialize(const envoy_config_core_v3_HttpUri *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HttpUri_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c index 827de063c1c..b1f1cd06dc5 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/protocol.upb.h" #include "envoy/config/core/v3/extension.upb.h" #include "envoy/type/v3/percent.upb.h" @@ -23,7 +23,7 @@ const upb_msglayout envoy_config_core_v3_TcpProtocolOptions_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_core_v3_QuicProtocolOptions_submsgs[1] = { @@ -31,26 +31,26 @@ static const upb_msglayout *const envoy_config_core_v3_QuicProtocolOptions_subms }; static const upb_msglayout_field envoy_config_core_v3_QuicProtocolOptions__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_QuicProtocolOptions_msginit = { &envoy_config_core_v3_QuicProtocolOptions_submsgs[0], &envoy_config_core_v3_QuicProtocolOptions__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout_field envoy_config_core_v3_UpstreamHttpProtocolOptions__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_UpstreamHttpProtocolOptions_msginit = { NULL, &envoy_config_core_v3_UpstreamHttpProtocolOptions__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_AlternateProtocolsCacheOptions_submsgs[1] = { @@ -58,14 +58,14 @@ static const upb_msglayout *const envoy_config_core_v3_AlternateProtocolsCacheOp }; static const upb_msglayout_field envoy_config_core_v3_AlternateProtocolsCacheOptions__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_AlternateProtocolsCacheOptions_msginit = { &envoy_config_core_v3_AlternateProtocolsCacheOptions_submsgs[0], &envoy_config_core_v3_AlternateProtocolsCacheOptions__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_HttpProtocolOptions_submsgs[2] = { @@ -74,18 +74,18 @@ static const upb_msglayout *const envoy_config_core_v3_HttpProtocolOptions_subms }; static const upb_msglayout_field envoy_config_core_v3_HttpProtocolOptions__fields[6] = { - {1, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(12, 16), 2, 1, 11, 1}, - {3, UPB_SIZE(16, 24), 3, 0, 11, 1}, - {4, UPB_SIZE(20, 32), 4, 0, 11, 1}, - {5, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {6, UPB_SIZE(24, 40), 5, 1, 11, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 16), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 3, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 32), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 40), 5, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_HttpProtocolOptions_msginit = { &envoy_config_core_v3_HttpProtocolOptions_submsgs[0], &envoy_config_core_v3_HttpProtocolOptions__fields[0], - UPB_SIZE(32, 48), 6, false, 255, + UPB_SIZE(32, 48), 6, false, 6, 255, }; static const upb_msglayout *const envoy_config_core_v3_Http1ProtocolOptions_submsgs[2] = { @@ -94,19 +94,19 @@ static const upb_msglayout *const envoy_config_core_v3_Http1ProtocolOptions_subm }; static const upb_msglayout_field envoy_config_core_v3_Http1ProtocolOptions__fields[7] = { - {1, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {4, UPB_SIZE(16, 32), 2, 0, 11, 1}, - {5, UPB_SIZE(2, 2), 0, 0, 8, 1}, - {6, UPB_SIZE(3, 3), 0, 0, 8, 1}, - {7, UPB_SIZE(20, 40), 3, 1, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(2, 2), 0, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(3, 3), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(20, 40), 3, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Http1ProtocolOptions_msginit = { &envoy_config_core_v3_Http1ProtocolOptions_submsgs[0], &envoy_config_core_v3_Http1ProtocolOptions__fields[0], - UPB_SIZE(24, 48), 7, false, 255, + UPB_SIZE(24, 48), 7, false, 7, 255, }; static const upb_msglayout *const envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_submsgs[2] = { @@ -115,20 +115,20 @@ static const upb_msglayout *const envoy_config_core_v3_Http1ProtocolOptions_Head }; static const upb_msglayout_field envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_msginit = { &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_submsgs[0], &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 1, 255, }; const upb_msglayout envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_core_v3_KeepaliveSettings_submsgs[2] = { @@ -137,16 +137,16 @@ static const upb_msglayout *const envoy_config_core_v3_KeepaliveSettings_submsgs }; static const upb_msglayout_field envoy_config_core_v3_KeepaliveSettings__fields[4] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_KeepaliveSettings_msginit = { &envoy_config_core_v3_KeepaliveSettings_submsgs[0], &envoy_config_core_v3_KeepaliveSettings__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_core_v3_Http2ProtocolOptions_submsgs[4] = { @@ -157,27 +157,27 @@ static const upb_msglayout *const envoy_config_core_v3_Http2ProtocolOptions_subm }; static const upb_msglayout_field envoy_config_core_v3_Http2ProtocolOptions__fields[15] = { - {1, UPB_SIZE(8, 8), 1, 3, 11, 1}, - {2, UPB_SIZE(12, 16), 2, 3, 11, 1}, - {3, UPB_SIZE(16, 24), 3, 3, 11, 1}, - {4, UPB_SIZE(20, 32), 4, 3, 11, 1}, - {5, UPB_SIZE(2, 2), 0, 0, 8, 1}, - {6, UPB_SIZE(3, 3), 0, 0, 8, 1}, - {7, UPB_SIZE(24, 40), 5, 3, 11, 1}, - {8, UPB_SIZE(28, 48), 6, 3, 11, 1}, - {9, UPB_SIZE(32, 56), 7, 3, 11, 1}, - {10, UPB_SIZE(36, 64), 8, 3, 11, 1}, - {11, UPB_SIZE(40, 72), 9, 3, 11, 1}, - {12, UPB_SIZE(4, 4), 0, 0, 8, 1}, - {13, UPB_SIZE(52, 96), 0, 0, 11, 3}, - {14, UPB_SIZE(44, 80), 10, 2, 11, 1}, - {15, UPB_SIZE(48, 88), 11, 1, 11, 1}, + {1, UPB_SIZE(8, 8), 1, 3, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 16), 2, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 3, 3, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 32), 4, 3, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(2, 2), 0, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(3, 3), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(24, 40), 5, 3, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(28, 48), 6, 3, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 56), 7, 3, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(36, 64), 8, 3, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(40, 72), 9, 3, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(52, 96), 0, 0, 11, _UPB_MODE_ARRAY}, + {14, UPB_SIZE(44, 80), 10, 2, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(48, 88), 11, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Http2ProtocolOptions_msginit = { &envoy_config_core_v3_Http2ProtocolOptions_submsgs[0], &envoy_config_core_v3_Http2ProtocolOptions__fields[0], - UPB_SIZE(56, 104), 15, false, 255, + UPB_SIZE(56, 104), 15, false, 15, 255, }; static const upb_msglayout *const envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_submsgs[1] = { @@ -185,14 +185,14 @@ static const upb_msglayout *const envoy_config_core_v3_Http2ProtocolOptions_Sett }; static const upb_msglayout_field envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_msginit = { &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_submsgs[0], &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_GrpcProtocolOptions_submsgs[1] = { @@ -200,13 +200,13 @@ static const upb_msglayout *const envoy_config_core_v3_GrpcProtocolOptions_subms }; static const upb_msglayout_field envoy_config_core_v3_GrpcProtocolOptions__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_GrpcProtocolOptions_msginit = { &envoy_config_core_v3_GrpcProtocolOptions_submsgs[0], &envoy_config_core_v3_GrpcProtocolOptions__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_core_v3_Http3ProtocolOptions_submsgs[2] = { @@ -215,24 +215,24 @@ static const upb_msglayout *const envoy_config_core_v3_Http3ProtocolOptions_subm }; static const upb_msglayout_field envoy_config_core_v3_Http3ProtocolOptions__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_Http3ProtocolOptions_msginit = { &envoy_config_core_v3_Http3ProtocolOptions_submsgs[0], &envoy_config_core_v3_Http3ProtocolOptions__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_core_v3_SchemeHeaderTransformation__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_SchemeHeaderTransformation_msginit = { NULL, &envoy_config_core_v3_SchemeHeaderTransformation__fields[0], - UPB_SIZE(16, 32), 1, false, 255, + UPB_SIZE(16, 32), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h index 8b277ef760b..891459bdb95 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_PROTOCOL_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_PROTOCOL_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -88,13 +88,19 @@ UPB_INLINE envoy_config_core_v3_TcpProtocolOptions *envoy_config_core_v3_TcpProt UPB_INLINE envoy_config_core_v3_TcpProtocolOptions *envoy_config_core_v3_TcpProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_TcpProtocolOptions *ret = envoy_config_core_v3_TcpProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_TcpProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_TcpProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_TcpProtocolOptions *envoy_config_core_v3_TcpProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_TcpProtocolOptions *ret = envoy_config_core_v3_TcpProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_TcpProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_TcpProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_TcpProtocolOptions_serialize(const envoy_config_core_v3_TcpProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_TcpProtocolOptions_msginit, arena, len); @@ -110,13 +116,19 @@ UPB_INLINE envoy_config_core_v3_QuicProtocolOptions *envoy_config_core_v3_QuicPr UPB_INLINE envoy_config_core_v3_QuicProtocolOptions *envoy_config_core_v3_QuicProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_QuicProtocolOptions *ret = envoy_config_core_v3_QuicProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_QuicProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_QuicProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_QuicProtocolOptions *envoy_config_core_v3_QuicProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_QuicProtocolOptions *ret = envoy_config_core_v3_QuicProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_QuicProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_QuicProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_QuicProtocolOptions_serialize(const envoy_config_core_v3_QuicProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_QuicProtocolOptions_msginit, arena, len); @@ -177,13 +189,19 @@ UPB_INLINE envoy_config_core_v3_UpstreamHttpProtocolOptions *envoy_config_core_v UPB_INLINE envoy_config_core_v3_UpstreamHttpProtocolOptions *envoy_config_core_v3_UpstreamHttpProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_UpstreamHttpProtocolOptions *ret = envoy_config_core_v3_UpstreamHttpProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_UpstreamHttpProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_UpstreamHttpProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_UpstreamHttpProtocolOptions *envoy_config_core_v3_UpstreamHttpProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_UpstreamHttpProtocolOptions *ret = envoy_config_core_v3_UpstreamHttpProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_UpstreamHttpProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_UpstreamHttpProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_UpstreamHttpProtocolOptions_serialize(const envoy_config_core_v3_UpstreamHttpProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_UpstreamHttpProtocolOptions_msginit, arena, len); @@ -207,13 +225,19 @@ UPB_INLINE envoy_config_core_v3_AlternateProtocolsCacheOptions *envoy_config_cor UPB_INLINE envoy_config_core_v3_AlternateProtocolsCacheOptions *envoy_config_core_v3_AlternateProtocolsCacheOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_AlternateProtocolsCacheOptions *ret = envoy_config_core_v3_AlternateProtocolsCacheOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_AlternateProtocolsCacheOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_AlternateProtocolsCacheOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_AlternateProtocolsCacheOptions *envoy_config_core_v3_AlternateProtocolsCacheOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_AlternateProtocolsCacheOptions *ret = envoy_config_core_v3_AlternateProtocolsCacheOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_AlternateProtocolsCacheOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_AlternateProtocolsCacheOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_AlternateProtocolsCacheOptions_serialize(const envoy_config_core_v3_AlternateProtocolsCacheOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_AlternateProtocolsCacheOptions_msginit, arena, len); @@ -248,13 +272,19 @@ UPB_INLINE envoy_config_core_v3_HttpProtocolOptions *envoy_config_core_v3_HttpPr UPB_INLINE envoy_config_core_v3_HttpProtocolOptions *envoy_config_core_v3_HttpProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_HttpProtocolOptions *ret = envoy_config_core_v3_HttpProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_HttpProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_HttpProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_HttpProtocolOptions *envoy_config_core_v3_HttpProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_HttpProtocolOptions *ret = envoy_config_core_v3_HttpProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_HttpProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_HttpProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_HttpProtocolOptions_serialize(const envoy_config_core_v3_HttpProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_HttpProtocolOptions_msginit, arena, len); @@ -349,13 +379,19 @@ UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions *envoy_config_core_v3_Http1 UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions *envoy_config_core_v3_Http1ProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Http1ProtocolOptions *ret = envoy_config_core_v3_Http1ProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions *envoy_config_core_v3_Http1ProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Http1ProtocolOptions *ret = envoy_config_core_v3_Http1ProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Http1ProtocolOptions_serialize(const envoy_config_core_v3_Http1ProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Http1ProtocolOptions_msginit, arena, len); @@ -432,13 +468,19 @@ UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat *envoy_conf UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat *envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat *ret = envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat *envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat *ret = envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_serialize(const envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_msginit, arena, len); @@ -489,13 +531,19 @@ UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseW UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords *envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords *ret = envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords *envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords *ret = envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_serialize(const envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_msginit, arena, len); @@ -511,13 +559,19 @@ UPB_INLINE envoy_config_core_v3_KeepaliveSettings *envoy_config_core_v3_Keepaliv UPB_INLINE envoy_config_core_v3_KeepaliveSettings *envoy_config_core_v3_KeepaliveSettings_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_KeepaliveSettings *ret = envoy_config_core_v3_KeepaliveSettings_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_KeepaliveSettings_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_KeepaliveSettings_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_KeepaliveSettings *envoy_config_core_v3_KeepaliveSettings_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_KeepaliveSettings *ret = envoy_config_core_v3_KeepaliveSettings_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_KeepaliveSettings_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_KeepaliveSettings_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_KeepaliveSettings_serialize(const envoy_config_core_v3_KeepaliveSettings *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_KeepaliveSettings_msginit, arena, len); @@ -593,13 +647,19 @@ UPB_INLINE envoy_config_core_v3_Http2ProtocolOptions *envoy_config_core_v3_Http2 UPB_INLINE envoy_config_core_v3_Http2ProtocolOptions *envoy_config_core_v3_Http2ProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Http2ProtocolOptions *ret = envoy_config_core_v3_Http2ProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Http2ProtocolOptions *envoy_config_core_v3_Http2ProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Http2ProtocolOptions *ret = envoy_config_core_v3_Http2ProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Http2ProtocolOptions_serialize(const envoy_config_core_v3_Http2ProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Http2ProtocolOptions_msginit, arena, len); @@ -807,13 +867,19 @@ UPB_INLINE envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter *envoy_co UPB_INLINE envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter *envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter *ret = envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter *envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter *ret = envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_serialize(const envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter_msginit, arena, len); @@ -859,13 +925,19 @@ UPB_INLINE envoy_config_core_v3_GrpcProtocolOptions *envoy_config_core_v3_GrpcPr UPB_INLINE envoy_config_core_v3_GrpcProtocolOptions *envoy_config_core_v3_GrpcProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_GrpcProtocolOptions *ret = envoy_config_core_v3_GrpcProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_GrpcProtocolOptions *envoy_config_core_v3_GrpcProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_GrpcProtocolOptions *ret = envoy_config_core_v3_GrpcProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_GrpcProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_GrpcProtocolOptions_serialize(const envoy_config_core_v3_GrpcProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_GrpcProtocolOptions_msginit, arena, len); @@ -896,13 +968,19 @@ UPB_INLINE envoy_config_core_v3_Http3ProtocolOptions *envoy_config_core_v3_Http3 UPB_INLINE envoy_config_core_v3_Http3ProtocolOptions *envoy_config_core_v3_Http3ProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_Http3ProtocolOptions *ret = envoy_config_core_v3_Http3ProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_Http3ProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_Http3ProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_Http3ProtocolOptions *envoy_config_core_v3_Http3ProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_Http3ProtocolOptions *ret = envoy_config_core_v3_Http3ProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_Http3ProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_Http3ProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_Http3ProtocolOptions_serialize(const envoy_config_core_v3_Http3ProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_Http3ProtocolOptions_msginit, arena, len); @@ -948,13 +1026,19 @@ UPB_INLINE envoy_config_core_v3_SchemeHeaderTransformation *envoy_config_core_v3 UPB_INLINE envoy_config_core_v3_SchemeHeaderTransformation *envoy_config_core_v3_SchemeHeaderTransformation_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_SchemeHeaderTransformation *ret = envoy_config_core_v3_SchemeHeaderTransformation_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_SchemeHeaderTransformation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_SchemeHeaderTransformation_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_SchemeHeaderTransformation *envoy_config_core_v3_SchemeHeaderTransformation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_SchemeHeaderTransformation *ret = envoy_config_core_v3_SchemeHeaderTransformation_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_SchemeHeaderTransformation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_SchemeHeaderTransformation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_SchemeHeaderTransformation_serialize(const envoy_config_core_v3_SchemeHeaderTransformation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_SchemeHeaderTransformation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c index 4c56e07b7f1..2cf1da392f8 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c @@ -7,20 +7,20 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/proxy_protocol.upb.h" #include "udpa/annotations/status.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field envoy_config_core_v3_ProxyProtocolConfig__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_ProxyProtocolConfig_msginit = { NULL, &envoy_config_core_v3_ProxyProtocolConfig__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h index bd56a644def..934ea952890 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_PROXY_PROTOCOL_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_PROXY_PROTOCOL_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE envoy_config_core_v3_ProxyProtocolConfig *envoy_config_core_v3_ProxyP UPB_INLINE envoy_config_core_v3_ProxyProtocolConfig *envoy_config_core_v3_ProxyProtocolConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_ProxyProtocolConfig *ret = envoy_config_core_v3_ProxyProtocolConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_ProxyProtocolConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_ProxyProtocolConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_ProxyProtocolConfig *envoy_config_core_v3_ProxyProtocolConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_ProxyProtocolConfig *ret = envoy_config_core_v3_ProxyProtocolConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_ProxyProtocolConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_ProxyProtocolConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_ProxyProtocolConfig_serialize(const envoy_config_core_v3_ProxyProtocolConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_ProxyProtocolConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c index 66b8a4ef795..77124824783 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/resolver.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "udpa/annotations/status.upb.h" @@ -16,14 +16,14 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_config_core_v3_DnsResolverOptions__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_DnsResolverOptions_msginit = { NULL, &envoy_config_core_v3_DnsResolverOptions__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_core_v3_DnsResolutionConfig_submsgs[2] = { @@ -32,14 +32,14 @@ static const upb_msglayout *const envoy_config_core_v3_DnsResolutionConfig_subms }; static const upb_msglayout_field envoy_config_core_v3_DnsResolutionConfig__fields[2] = { - {1, UPB_SIZE(8, 16), 0, 0, 11, 3}, - {2, UPB_SIZE(4, 8), 1, 1, 11, 1}, + {1, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_DnsResolutionConfig_msginit = { &envoy_config_core_v3_DnsResolutionConfig_submsgs[0], &envoy_config_core_v3_DnsResolutionConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h index c86e29ed0a8..e5afe57a3df 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_RESOLVER_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_RESOLVER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE envoy_config_core_v3_DnsResolverOptions *envoy_config_core_v3_DnsReso UPB_INLINE envoy_config_core_v3_DnsResolverOptions *envoy_config_core_v3_DnsResolverOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_DnsResolverOptions *ret = envoy_config_core_v3_DnsResolverOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolverOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolverOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_DnsResolverOptions *envoy_config_core_v3_DnsResolverOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_DnsResolverOptions *ret = envoy_config_core_v3_DnsResolverOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolverOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolverOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_DnsResolverOptions_serialize(const envoy_config_core_v3_DnsResolverOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_DnsResolverOptions_msginit, arena, len); @@ -68,13 +74,19 @@ UPB_INLINE envoy_config_core_v3_DnsResolutionConfig *envoy_config_core_v3_DnsRes UPB_INLINE envoy_config_core_v3_DnsResolutionConfig *envoy_config_core_v3_DnsResolutionConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_DnsResolutionConfig *ret = envoy_config_core_v3_DnsResolutionConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolutionConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolutionConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_DnsResolutionConfig *envoy_config_core_v3_DnsResolutionConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_DnsResolutionConfig *ret = envoy_config_core_v3_DnsResolutionConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolutionConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_DnsResolutionConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_DnsResolutionConfig_serialize(const envoy_config_core_v3_DnsResolutionConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_DnsResolutionConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c index d4c2ea14006..b90e52d0a96 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/socket_option.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -16,18 +16,18 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_config_core_v3_SocketOption__fields[6] = { - {1, UPB_SIZE(20, 24), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {3, UPB_SIZE(8, 8), 0, 0, 3, 1}, - {4, UPB_SIZE(32, 40), UPB_SIZE(-41, -57), 0, 3, 1}, - {5, UPB_SIZE(32, 40), UPB_SIZE(-41, -57), 0, 12, 1}, - {6, UPB_SIZE(16, 16), 0, 0, 14, 1}, + {1, UPB_SIZE(20, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), 0, 0, 3, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 40), UPB_SIZE(-41, -57), 0, 3, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 40), UPB_SIZE(-41, -57), 0, 12, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(16, 16), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_SocketOption_msginit = { NULL, &envoy_config_core_v3_SocketOption__fields[0], - UPB_SIZE(48, 64), 6, false, 255, + UPB_SIZE(48, 64), 6, false, 6, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h index 0347443069d..14378149673 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_SOCKET_OPTION_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_SOCKET_OPTION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE envoy_config_core_v3_SocketOption *envoy_config_core_v3_SocketOption_ UPB_INLINE envoy_config_core_v3_SocketOption *envoy_config_core_v3_SocketOption_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_SocketOption *ret = envoy_config_core_v3_SocketOption_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_SocketOption_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_SocketOption_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_SocketOption *envoy_config_core_v3_SocketOption_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_SocketOption *ret = envoy_config_core_v3_SocketOption_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_SocketOption_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_SocketOption_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_SocketOption_serialize(const envoy_config_core_v3_SocketOption *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_SocketOption_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c index 17c92619de8..cd4c6d2ab41 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/substitution_format_string.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/extension.upb.h" @@ -25,18 +25,18 @@ static const upb_msglayout *const envoy_config_core_v3_SubstitutionFormatString_ }; static const upb_msglayout_field envoy_config_core_v3_SubstitutionFormatString__fields[6] = { - {1, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 0, 9, 1}, - {2, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 2, 11, 1}, - {3, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {4, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {5, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 0, 11, 1}, - {6, UPB_SIZE(12, 24), 0, 1, 11, 3}, + {1, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 32), UPB_SIZE(-25, -49), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(12, 24), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_core_v3_SubstitutionFormatString_msginit = { &envoy_config_core_v3_SubstitutionFormatString_submsgs[0], &envoy_config_core_v3_SubstitutionFormatString__fields[0], - UPB_SIZE(32, 64), 6, false, 255, + UPB_SIZE(32, 64), 6, false, 6, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h index 3f450e9ad17..be910ee6fbe 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_SUBSTITUTION_FORMAT_STRING_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_SUBSTITUTION_FORMAT_STRING_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE envoy_config_core_v3_SubstitutionFormatString *envoy_config_core_v3_S UPB_INLINE envoy_config_core_v3_SubstitutionFormatString *envoy_config_core_v3_SubstitutionFormatString_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_SubstitutionFormatString *ret = envoy_config_core_v3_SubstitutionFormatString_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_SubstitutionFormatString_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_SubstitutionFormatString_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_SubstitutionFormatString *envoy_config_core_v3_SubstitutionFormatString_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_SubstitutionFormatString *ret = envoy_config_core_v3_SubstitutionFormatString_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_SubstitutionFormatString_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_SubstitutionFormatString_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_SubstitutionFormatString_serialize(const envoy_config_core_v3_SubstitutionFormatString *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_SubstitutionFormatString_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c b/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c index cd01106ce8e..33bc133c8d2 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +++ b/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/core/v3/udp_socket_config.upb.h" #include "google/protobuf/wrappers.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,14 +21,14 @@ static const upb_msglayout *const envoy_config_core_v3_UdpSocketConfig_submsgs[2 }; static const upb_msglayout_field envoy_config_core_v3_UdpSocketConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_core_v3_UdpSocketConfig_msginit = { &envoy_config_core_v3_UdpSocketConfig_submsgs[0], &envoy_config_core_v3_UdpSocketConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h b/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h index e61e18dbaab..b8ab9612457 100644 --- a/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +++ b/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_CORE_V3_UDP_SOCKET_CONFIG_PROTO_UPB_H_ #define ENVOY_CONFIG_CORE_V3_UDP_SOCKET_CONFIG_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -37,13 +37,19 @@ UPB_INLINE envoy_config_core_v3_UdpSocketConfig *envoy_config_core_v3_UdpSocketC UPB_INLINE envoy_config_core_v3_UdpSocketConfig *envoy_config_core_v3_UdpSocketConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_core_v3_UdpSocketConfig *ret = envoy_config_core_v3_UdpSocketConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_core_v3_UdpSocketConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_core_v3_UdpSocketConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_core_v3_UdpSocketConfig *envoy_config_core_v3_UdpSocketConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_core_v3_UdpSocketConfig *ret = envoy_config_core_v3_UdpSocketConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_core_v3_UdpSocketConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_core_v3_UdpSocketConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_core_v3_UdpSocketConfig_serialize(const envoy_config_core_v3_UdpSocketConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_core_v3_UdpSocketConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c index 3f9c789bf8d..ea8353edb74 100644 --- a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +++ b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/endpoint/v3/endpoint.upb.h" #include "envoy/config/endpoint/v3/endpoint_components.upb.h" #include "envoy/type/v3/percent.upb.h" @@ -26,16 +26,16 @@ static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment }; static const upb_msglayout_field envoy_config_endpoint_v3_ClusterLoadAssignment__fields[4] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 32), 0, 2, 11, 3}, - {4, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {5, UPB_SIZE(20, 40), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 2, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout envoy_config_endpoint_v3_ClusterLoadAssignment_msginit = { &envoy_config_endpoint_v3_ClusterLoadAssignment_submsgs[0], &envoy_config_endpoint_v3_ClusterLoadAssignment__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 2, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_submsgs[3] = { @@ -45,15 +45,15 @@ static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment }; static const upb_msglayout_field envoy_config_endpoint_v3_ClusterLoadAssignment_Policy__fields[3] = { - {2, UPB_SIZE(12, 24), 0, 0, 11, 3}, - {3, UPB_SIZE(4, 8), 1, 2, 11, 1}, - {4, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {2, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_msginit = { &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_submsgs[0], &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 0, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_submsgs[1] = { @@ -61,14 +61,14 @@ static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment }; static const upb_msglayout_field envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_msginit = { &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_submsgs[0], &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment_NamedEndpointsEntry_submsgs[1] = { @@ -76,14 +76,14 @@ static const upb_msglayout *const envoy_config_endpoint_v3_ClusterLoadAssignment }; static const upb_msglayout_field envoy_config_endpoint_v3_ClusterLoadAssignment_NamedEndpointsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_ClusterLoadAssignment_NamedEndpointsEntry_msginit = { &envoy_config_endpoint_v3_ClusterLoadAssignment_NamedEndpointsEntry_submsgs[0], &envoy_config_endpoint_v3_ClusterLoadAssignment_NamedEndpointsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h index c89e4a45721..b787ab68634 100644 --- a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +++ b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ENDPOINT_V3_ENDPOINT_PROTO_UPB_H_ #define ENVOY_CONFIG_ENDPOINT_V3_ENDPOINT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -52,13 +52,19 @@ UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment *envoy_config_endpoint UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment *envoy_config_endpoint_v3_ClusterLoadAssignment_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_ClusterLoadAssignment *ret = envoy_config_endpoint_v3_ClusterLoadAssignment_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment *envoy_config_endpoint_v3_ClusterLoadAssignment_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_ClusterLoadAssignment *ret = envoy_config_endpoint_v3_ClusterLoadAssignment_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_ClusterLoadAssignment_serialize(const envoy_config_endpoint_v3_ClusterLoadAssignment *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_ClusterLoadAssignment_msginit, arena, len); @@ -116,13 +122,19 @@ UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment_Policy *envoy_config_e UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment_Policy *envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_ClusterLoadAssignment_Policy *ret = envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment_Policy *envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_ClusterLoadAssignment_Policy *ret = envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_serialize(const envoy_config_endpoint_v3_ClusterLoadAssignment_Policy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_msginit, arena, len); @@ -183,13 +195,19 @@ UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload *e UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload *envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload *ret = envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload *envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload *ret = envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_serialize(const envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_ClusterLoadAssignment_Policy_DropOverload_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c index f12e49bdafc..f120aafb12b 100644 --- a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +++ b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/endpoint/v3/endpoint_components.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/config/core/v3/base.upb.h" @@ -25,26 +25,26 @@ static const upb_msglayout *const envoy_config_endpoint_v3_Endpoint_submsgs[2] = }; static const upb_msglayout_field envoy_config_endpoint_v3_Endpoint__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(16, 32), 2, 1, 11, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_Endpoint_msginit = { &envoy_config_endpoint_v3_Endpoint_submsgs[0], &envoy_config_endpoint_v3_Endpoint__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout_field envoy_config_endpoint_v3_Endpoint_HealthCheckConfig__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 13, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_msginit = { NULL, &envoy_config_endpoint_v3_Endpoint_HealthCheckConfig__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_LbEndpoint_submsgs[3] = { @@ -54,17 +54,17 @@ static const upb_msglayout *const envoy_config_endpoint_v3_LbEndpoint_submsgs[3] }; static const upb_msglayout_field envoy_config_endpoint_v3_LbEndpoint__fields[5] = { - {1, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 1, 11, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {3, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {4, UPB_SIZE(12, 16), 2, 2, 11, 1}, - {5, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 0, 9, 1}, + {1, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 16), 2, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 24), UPB_SIZE(-25, -41), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_LbEndpoint_msginit = { &envoy_config_endpoint_v3_LbEndpoint_submsgs[0], &envoy_config_endpoint_v3_LbEndpoint__fields[0], - UPB_SIZE(32, 48), 5, false, 255, + UPB_SIZE(32, 48), 5, false, 5, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_LocalityLbEndpoints_submsgs[3] = { @@ -74,17 +74,17 @@ static const upb_msglayout *const envoy_config_endpoint_v3_LocalityLbEndpoints_s }; static const upb_msglayout_field envoy_config_endpoint_v3_LocalityLbEndpoints__fields[5] = { - {1, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(20, 32), 0, 1, 11, 3}, - {3, UPB_SIZE(12, 16), 2, 2, 11, 1}, - {5, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {6, UPB_SIZE(16, 24), 3, 2, 11, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 32), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 16), 2, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(16, 24), 3, 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_LocalityLbEndpoints_msginit = { &envoy_config_endpoint_v3_LocalityLbEndpoints_submsgs[0], &envoy_config_endpoint_v3_LocalityLbEndpoints__fields[0], - UPB_SIZE(24, 40), 5, false, 255, + UPB_SIZE(24, 40), 5, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h index b6ad981cacc..6fddea45653 100644 --- a/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +++ b/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ENDPOINT_V3_ENDPOINT_COMPONENTS_PROTO_UPB_H_ #define ENVOY_CONFIG_ENDPOINT_V3_ENDPOINT_COMPONENTS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -50,13 +50,19 @@ UPB_INLINE envoy_config_endpoint_v3_Endpoint *envoy_config_endpoint_v3_Endpoint_ UPB_INLINE envoy_config_endpoint_v3_Endpoint *envoy_config_endpoint_v3_Endpoint_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_Endpoint *ret = envoy_config_endpoint_v3_Endpoint_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_Endpoint *envoy_config_endpoint_v3_Endpoint_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_Endpoint *ret = envoy_config_endpoint_v3_Endpoint_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_Endpoint_serialize(const envoy_config_endpoint_v3_Endpoint *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_Endpoint_msginit, arena, len); @@ -106,13 +112,19 @@ UPB_INLINE envoy_config_endpoint_v3_Endpoint_HealthCheckConfig *envoy_config_end UPB_INLINE envoy_config_endpoint_v3_Endpoint_HealthCheckConfig *envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_Endpoint_HealthCheckConfig *ret = envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_Endpoint_HealthCheckConfig *envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_Endpoint_HealthCheckConfig *ret = envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_serialize(const envoy_config_endpoint_v3_Endpoint_HealthCheckConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_Endpoint_HealthCheckConfig_msginit, arena, len); @@ -136,13 +148,19 @@ UPB_INLINE envoy_config_endpoint_v3_LbEndpoint *envoy_config_endpoint_v3_LbEndpo UPB_INLINE envoy_config_endpoint_v3_LbEndpoint *envoy_config_endpoint_v3_LbEndpoint_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_LbEndpoint *ret = envoy_config_endpoint_v3_LbEndpoint_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LbEndpoint_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LbEndpoint_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_LbEndpoint *envoy_config_endpoint_v3_LbEndpoint_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_LbEndpoint *ret = envoy_config_endpoint_v3_LbEndpoint_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LbEndpoint_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LbEndpoint_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_LbEndpoint_serialize(const envoy_config_endpoint_v3_LbEndpoint *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_LbEndpoint_msginit, arena, len); @@ -218,13 +236,19 @@ UPB_INLINE envoy_config_endpoint_v3_LocalityLbEndpoints *envoy_config_endpoint_v UPB_INLINE envoy_config_endpoint_v3_LocalityLbEndpoints *envoy_config_endpoint_v3_LocalityLbEndpoints_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_LocalityLbEndpoints *ret = envoy_config_endpoint_v3_LocalityLbEndpoints_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LocalityLbEndpoints_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LocalityLbEndpoints_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_LocalityLbEndpoints *envoy_config_endpoint_v3_LocalityLbEndpoints_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_LocalityLbEndpoints *ret = envoy_config_endpoint_v3_LocalityLbEndpoints_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LocalityLbEndpoints_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_LocalityLbEndpoints_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_LocalityLbEndpoints_serialize(const envoy_config_endpoint_v3_LocalityLbEndpoints *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_LocalityLbEndpoints_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c b/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c index 560826ed31b..303f91e56e8 100644 --- a/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +++ b/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/endpoint/v3/load_report.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/config/core/v3/base.upb.h" @@ -26,20 +26,20 @@ static const upb_msglayout *const envoy_config_endpoint_v3_UpstreamLocalityStats }; static const upb_msglayout_field envoy_config_endpoint_v3_UpstreamLocalityStats__fields[8] = { - {1, UPB_SIZE(44, 48), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 4, 1}, - {3, UPB_SIZE(16, 16), 0, 0, 4, 1}, - {4, UPB_SIZE(24, 24), 0, 0, 4, 1}, - {5, UPB_SIZE(48, 56), 0, 1, 11, 3}, - {6, UPB_SIZE(40, 40), 0, 0, 13, 1}, - {7, UPB_SIZE(52, 64), 0, 2, 11, 3}, - {8, UPB_SIZE(32, 32), 0, 0, 4, 1}, + {1, UPB_SIZE(44, 48), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 16), 0, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 24), 0, 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(48, 56), 0, 1, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(40, 40), 0, 0, 13, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(52, 64), 0, 2, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(32, 32), 0, 0, 4, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_UpstreamLocalityStats_msginit = { &envoy_config_endpoint_v3_UpstreamLocalityStats_submsgs[0], &envoy_config_endpoint_v3_UpstreamLocalityStats__fields[0], - UPB_SIZE(56, 72), 8, false, 255, + UPB_SIZE(56, 72), 8, false, 8, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_UpstreamEndpointStats_submsgs[3] = { @@ -49,31 +49,31 @@ static const upb_msglayout *const envoy_config_endpoint_v3_UpstreamEndpointStats }; static const upb_msglayout_field envoy_config_endpoint_v3_UpstreamEndpointStats__fields[7] = { - {1, UPB_SIZE(40, 40), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 4, 1}, - {3, UPB_SIZE(16, 16), 0, 0, 4, 1}, - {4, UPB_SIZE(24, 24), 0, 0, 4, 1}, - {5, UPB_SIZE(48, 56), 0, 1, 11, 3}, - {6, UPB_SIZE(44, 48), 2, 2, 11, 1}, - {7, UPB_SIZE(32, 32), 0, 0, 4, 1}, + {1, UPB_SIZE(40, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 16), 0, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 24), 0, 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(48, 56), 0, 1, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(44, 48), 2, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(32, 32), 0, 0, 4, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_UpstreamEndpointStats_msginit = { &envoy_config_endpoint_v3_UpstreamEndpointStats_submsgs[0], &envoy_config_endpoint_v3_UpstreamEndpointStats__fields[0], - UPB_SIZE(56, 64), 7, false, 255, + UPB_SIZE(56, 64), 7, false, 7, 255, }; static const upb_msglayout_field envoy_config_endpoint_v3_EndpointLoadMetricStats__fields[3] = { - {1, UPB_SIZE(16, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 4, 1}, - {3, UPB_SIZE(8, 8), 0, 0, 1, 1}, + {1, UPB_SIZE(16, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_EndpointLoadMetricStats_msginit = { NULL, &envoy_config_endpoint_v3_EndpointLoadMetricStats__fields[0], - UPB_SIZE(24, 32), 3, false, 255, + UPB_SIZE(24, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_endpoint_v3_ClusterStats_submsgs[3] = { @@ -83,29 +83,29 @@ static const upb_msglayout *const envoy_config_endpoint_v3_ClusterStats_submsgs[ }; static const upb_msglayout_field envoy_config_endpoint_v3_ClusterStats__fields[6] = { - {1, UPB_SIZE(16, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(36, 56), 0, 1, 11, 3}, - {3, UPB_SIZE(8, 8), 0, 0, 4, 1}, - {4, UPB_SIZE(32, 48), 1, 2, 11, 1}, - {5, UPB_SIZE(40, 64), 0, 0, 11, 3}, - {6, UPB_SIZE(24, 32), 0, 0, 9, 1}, + {1, UPB_SIZE(16, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(36, 56), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(8, 8), 0, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 48), 1, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 64), 0, 0, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(24, 32), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_ClusterStats_msginit = { &envoy_config_endpoint_v3_ClusterStats_submsgs[0], &envoy_config_endpoint_v3_ClusterStats__fields[0], - UPB_SIZE(48, 80), 6, false, 255, + UPB_SIZE(48, 80), 6, false, 6, 255, }; static const upb_msglayout_field envoy_config_endpoint_v3_ClusterStats_DroppedRequests__fields[2] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 4, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 4, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_endpoint_v3_ClusterStats_DroppedRequests_msginit = { NULL, &envoy_config_endpoint_v3_ClusterStats_DroppedRequests__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h b/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h index d986e182407..0819b4a1b1a 100644 --- a/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +++ b/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ENDPOINT_V3_LOAD_REPORT_PROTO_UPB_H_ #define ENVOY_CONFIG_ENDPOINT_V3_LOAD_REPORT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -53,13 +53,19 @@ UPB_INLINE envoy_config_endpoint_v3_UpstreamLocalityStats *envoy_config_endpoint UPB_INLINE envoy_config_endpoint_v3_UpstreamLocalityStats *envoy_config_endpoint_v3_UpstreamLocalityStats_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_UpstreamLocalityStats *ret = envoy_config_endpoint_v3_UpstreamLocalityStats_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamLocalityStats_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamLocalityStats_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_UpstreamLocalityStats *envoy_config_endpoint_v3_UpstreamLocalityStats_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_UpstreamLocalityStats *ret = envoy_config_endpoint_v3_UpstreamLocalityStats_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamLocalityStats_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamLocalityStats_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_UpstreamLocalityStats_serialize(const envoy_config_endpoint_v3_UpstreamLocalityStats *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_UpstreamLocalityStats_msginit, arena, len); @@ -140,13 +146,19 @@ UPB_INLINE envoy_config_endpoint_v3_UpstreamEndpointStats *envoy_config_endpoint UPB_INLINE envoy_config_endpoint_v3_UpstreamEndpointStats *envoy_config_endpoint_v3_UpstreamEndpointStats_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_UpstreamEndpointStats *ret = envoy_config_endpoint_v3_UpstreamEndpointStats_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamEndpointStats_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamEndpointStats_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_UpstreamEndpointStats *envoy_config_endpoint_v3_UpstreamEndpointStats_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_UpstreamEndpointStats *ret = envoy_config_endpoint_v3_UpstreamEndpointStats_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamEndpointStats_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_UpstreamEndpointStats_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_UpstreamEndpointStats_serialize(const envoy_config_endpoint_v3_UpstreamEndpointStats *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_UpstreamEndpointStats_msginit, arena, len); @@ -223,13 +235,19 @@ UPB_INLINE envoy_config_endpoint_v3_EndpointLoadMetricStats *envoy_config_endpoi UPB_INLINE envoy_config_endpoint_v3_EndpointLoadMetricStats *envoy_config_endpoint_v3_EndpointLoadMetricStats_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_EndpointLoadMetricStats *ret = envoy_config_endpoint_v3_EndpointLoadMetricStats_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_EndpointLoadMetricStats_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_EndpointLoadMetricStats_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_EndpointLoadMetricStats *envoy_config_endpoint_v3_EndpointLoadMetricStats_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_EndpointLoadMetricStats *ret = envoy_config_endpoint_v3_EndpointLoadMetricStats_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_EndpointLoadMetricStats_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_EndpointLoadMetricStats_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_EndpointLoadMetricStats_serialize(const envoy_config_endpoint_v3_EndpointLoadMetricStats *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_EndpointLoadMetricStats_msginit, arena, len); @@ -257,13 +275,19 @@ UPB_INLINE envoy_config_endpoint_v3_ClusterStats *envoy_config_endpoint_v3_Clust UPB_INLINE envoy_config_endpoint_v3_ClusterStats *envoy_config_endpoint_v3_ClusterStats_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_ClusterStats *ret = envoy_config_endpoint_v3_ClusterStats_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_ClusterStats *envoy_config_endpoint_v3_ClusterStats_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_ClusterStats *ret = envoy_config_endpoint_v3_ClusterStats_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_ClusterStats_serialize(const envoy_config_endpoint_v3_ClusterStats *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_ClusterStats_msginit, arena, len); @@ -336,13 +360,19 @@ UPB_INLINE envoy_config_endpoint_v3_ClusterStats_DroppedRequests *envoy_config_e UPB_INLINE envoy_config_endpoint_v3_ClusterStats_DroppedRequests *envoy_config_endpoint_v3_ClusterStats_DroppedRequests_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_endpoint_v3_ClusterStats_DroppedRequests *ret = envoy_config_endpoint_v3_ClusterStats_DroppedRequests_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_DroppedRequests_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_DroppedRequests_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_endpoint_v3_ClusterStats_DroppedRequests *envoy_config_endpoint_v3_ClusterStats_DroppedRequests_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_endpoint_v3_ClusterStats_DroppedRequests *ret = envoy_config_endpoint_v3_ClusterStats_DroppedRequests_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_DroppedRequests_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_endpoint_v3_ClusterStats_DroppedRequests_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_endpoint_v3_ClusterStats_DroppedRequests_serialize(const envoy_config_endpoint_v3_ClusterStats_DroppedRequests *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_endpoint_v3_ClusterStats_DroppedRequests_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c b/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c index e016fffa22a..0c19654923c 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/listener/v3/api_listener.upb.h" #include "google/protobuf/any.upb.h" #include "udpa/annotations/status.upb.h" @@ -20,13 +20,13 @@ static const upb_msglayout *const envoy_config_listener_v3_ApiListener_submsgs[1 }; static const upb_msglayout_field envoy_config_listener_v3_ApiListener__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_ApiListener_msginit = { &envoy_config_listener_v3_ApiListener_submsgs[0], &envoy_config_listener_v3_ApiListener__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h b/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h index 9d1372b4e82..ba821ff9d1d 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_LISTENER_V3_API_LISTENER_PROTO_UPB_H_ #define ENVOY_CONFIG_LISTENER_V3_API_LISTENER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_config_listener_v3_ApiListener *envoy_config_listener_v3_ApiLis UPB_INLINE envoy_config_listener_v3_ApiListener *envoy_config_listener_v3_ApiListener_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_ApiListener *ret = envoy_config_listener_v3_ApiListener_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_ApiListener_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_ApiListener_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_ApiListener *envoy_config_listener_v3_ApiListener_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_ApiListener *ret = envoy_config_listener_v3_ApiListener_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_ApiListener_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_ApiListener_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_ApiListener_serialize(const envoy_config_listener_v3_ApiListener *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_ApiListener_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c b/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c index a75126bb587..ad006ed69ad 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/listener/v3/listener.upb.h" #include "envoy/config/accesslog/v3/accesslog.upb.h" #include "envoy/config/core/v3/address.upb.h" @@ -32,13 +32,13 @@ static const upb_msglayout *const envoy_config_listener_v3_ListenerCollection_su }; static const upb_msglayout_field envoy_config_listener_v3_ListenerCollection__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_listener_v3_ListenerCollection_msginit = { &envoy_config_listener_v3_ListenerCollection_submsgs[0], &envoy_config_listener_v3_ListenerCollection__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_listener_v3_Listener_submsgs[14] = { @@ -59,39 +59,39 @@ static const upb_msglayout *const envoy_config_listener_v3_Listener_submsgs[14] }; static const upb_msglayout_field envoy_config_listener_v3_Listener__fields[27] = { - {1, UPB_SIZE(16, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(32, 48), 1, 1, 11, 1}, - {3, UPB_SIZE(96, 176), 0, 5, 11, 3}, - {4, UPB_SIZE(36, 56), 2, 11, 11, 1}, - {5, UPB_SIZE(40, 64), 3, 13, 11, 1}, - {6, UPB_SIZE(44, 72), 4, 2, 11, 1}, - {7, UPB_SIZE(48, 80), 5, 7, 11, 1}, - {8, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {9, UPB_SIZE(100, 184), 0, 9, 11, 3}, - {10, UPB_SIZE(52, 88), 6, 11, 11, 1}, - {11, UPB_SIZE(56, 96), 7, 11, 11, 1}, - {12, UPB_SIZE(60, 104), 8, 13, 11, 1}, - {13, UPB_SIZE(104, 192), 0, 3, 11, 3}, - {15, UPB_SIZE(64, 112), 9, 12, 11, 1}, - {16, UPB_SIZE(8, 8), 0, 0, 14, 1}, - {17, UPB_SIZE(12, 12), 0, 0, 8, 1}, - {18, UPB_SIZE(68, 120), 10, 10, 11, 1}, - {19, UPB_SIZE(72, 128), 11, 4, 11, 1}, - {20, UPB_SIZE(76, 136), 12, 6, 11, 1}, - {21, UPB_SIZE(13, 13), 0, 0, 8, 1}, - {22, UPB_SIZE(108, 200), 0, 0, 11, 3}, - {24, UPB_SIZE(80, 144), 13, 13, 11, 1}, - {25, UPB_SIZE(84, 152), 14, 5, 11, 1}, - {26, UPB_SIZE(88, 160), 15, 11, 11, 1}, - {27, UPB_SIZE(112, 208), UPB_SIZE(-117, -217), 8, 11, 1}, - {28, UPB_SIZE(24, 32), 0, 0, 9, 1}, - {29, UPB_SIZE(92, 168), 16, 11, 11, 1}, + {1, UPB_SIZE(16, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 48), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(96, 176), 0, 5, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(36, 56), 2, 11, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 64), 3, 13, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(44, 72), 4, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(48, 80), 5, 7, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(100, 184), 0, 9, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(52, 88), 6, 11, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(56, 96), 7, 11, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(60, 104), 8, 13, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(104, 192), 0, 3, 11, _UPB_MODE_ARRAY}, + {15, UPB_SIZE(64, 112), 9, 12, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(12, 12), 0, 0, 8, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(68, 120), 10, 10, 11, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(72, 128), 11, 4, 11, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(76, 136), 12, 6, 11, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(13, 13), 0, 0, 8, _UPB_MODE_SCALAR}, + {22, UPB_SIZE(108, 200), 0, 0, 11, _UPB_MODE_ARRAY}, + {24, UPB_SIZE(80, 144), 13, 13, 11, _UPB_MODE_SCALAR}, + {25, UPB_SIZE(84, 152), 14, 5, 11, _UPB_MODE_SCALAR}, + {26, UPB_SIZE(88, 160), 15, 11, 11, _UPB_MODE_SCALAR}, + {27, UPB_SIZE(112, 208), UPB_SIZE(-117, -217), 8, 11, _UPB_MODE_SCALAR}, + {28, UPB_SIZE(24, 32), 0, 0, 9, _UPB_MODE_SCALAR}, + {29, UPB_SIZE(92, 168), 16, 11, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_Listener_msginit = { &envoy_config_listener_v3_Listener_submsgs[0], &envoy_config_listener_v3_Listener__fields[0], - UPB_SIZE(120, 224), 27, false, 255, + UPB_SIZE(120, 224), 27, false, 13, 255, }; static const upb_msglayout *const envoy_config_listener_v3_Listener_DeprecatedV1_submsgs[1] = { @@ -99,13 +99,13 @@ static const upb_msglayout *const envoy_config_listener_v3_Listener_DeprecatedV1 }; static const upb_msglayout_field envoy_config_listener_v3_Listener_DeprecatedV1__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_Listener_DeprecatedV1_msginit = { &envoy_config_listener_v3_Listener_DeprecatedV1_submsgs[0], &envoy_config_listener_v3_Listener_DeprecatedV1__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_listener_v3_Listener_ConnectionBalanceConfig_submsgs[1] = { @@ -113,25 +113,25 @@ static const upb_msglayout *const envoy_config_listener_v3_Listener_ConnectionBa }; static const upb_msglayout_field envoy_config_listener_v3_Listener_ConnectionBalanceConfig__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_Listener_ConnectionBalanceConfig_msginit = { &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_submsgs[0], &envoy_config_listener_v3_Listener_ConnectionBalanceConfig__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; const upb_msglayout envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_config_listener_v3_Listener_InternalListenerConfig_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h b/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h index 56a7f7c6907..3842168355f 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_LISTENER_V3_LISTENER_PROTO_UPB_H_ #define ENVOY_CONFIG_LISTENER_V3_LISTENER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -77,13 +77,19 @@ UPB_INLINE envoy_config_listener_v3_ListenerCollection *envoy_config_listener_v3 UPB_INLINE envoy_config_listener_v3_ListenerCollection *envoy_config_listener_v3_ListenerCollection_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_ListenerCollection *ret = envoy_config_listener_v3_ListenerCollection_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerCollection_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerCollection_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_ListenerCollection *envoy_config_listener_v3_ListenerCollection_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_ListenerCollection *ret = envoy_config_listener_v3_ListenerCollection_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerCollection_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerCollection_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_ListenerCollection_serialize(const envoy_config_listener_v3_ListenerCollection *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_ListenerCollection_msginit, arena, len); @@ -114,13 +120,19 @@ UPB_INLINE envoy_config_listener_v3_Listener *envoy_config_listener_v3_Listener_ UPB_INLINE envoy_config_listener_v3_Listener *envoy_config_listener_v3_Listener_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_Listener *ret = envoy_config_listener_v3_Listener_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_Listener *envoy_config_listener_v3_Listener_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_Listener *ret = envoy_config_listener_v3_Listener_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_Listener_serialize(const envoy_config_listener_v3_Listener *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_Listener_msginit, arena, len); @@ -480,13 +492,19 @@ UPB_INLINE envoy_config_listener_v3_Listener_DeprecatedV1 *envoy_config_listener UPB_INLINE envoy_config_listener_v3_Listener_DeprecatedV1 *envoy_config_listener_v3_Listener_DeprecatedV1_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_Listener_DeprecatedV1 *ret = envoy_config_listener_v3_Listener_DeprecatedV1_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_DeprecatedV1_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_DeprecatedV1_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_Listener_DeprecatedV1 *envoy_config_listener_v3_Listener_DeprecatedV1_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_Listener_DeprecatedV1 *ret = envoy_config_listener_v3_Listener_DeprecatedV1_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_DeprecatedV1_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_DeprecatedV1_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_Listener_DeprecatedV1_serialize(const envoy_config_listener_v3_Listener_DeprecatedV1 *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_Listener_DeprecatedV1_msginit, arena, len); @@ -517,13 +535,19 @@ UPB_INLINE envoy_config_listener_v3_Listener_ConnectionBalanceConfig *envoy_conf UPB_INLINE envoy_config_listener_v3_Listener_ConnectionBalanceConfig *envoy_config_listener_v3_Listener_ConnectionBalanceConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_Listener_ConnectionBalanceConfig *ret = envoy_config_listener_v3_Listener_ConnectionBalanceConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_Listener_ConnectionBalanceConfig *envoy_config_listener_v3_Listener_ConnectionBalanceConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_Listener_ConnectionBalanceConfig *ret = envoy_config_listener_v3_Listener_ConnectionBalanceConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_Listener_ConnectionBalanceConfig_serialize(const envoy_config_listener_v3_Listener_ConnectionBalanceConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_msginit, arena, len); @@ -559,13 +583,19 @@ UPB_INLINE envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalanc UPB_INLINE envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance *envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance *ret = envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance *envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance *ret = envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_serialize(const envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_Listener_ConnectionBalanceConfig_ExactBalance_msginit, arena, len); @@ -581,13 +611,19 @@ UPB_INLINE envoy_config_listener_v3_Listener_InternalListenerConfig *envoy_confi UPB_INLINE envoy_config_listener_v3_Listener_InternalListenerConfig *envoy_config_listener_v3_Listener_InternalListenerConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_Listener_InternalListenerConfig *ret = envoy_config_listener_v3_Listener_InternalListenerConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_InternalListenerConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_InternalListenerConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_Listener_InternalListenerConfig *envoy_config_listener_v3_Listener_InternalListenerConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_Listener_InternalListenerConfig *ret = envoy_config_listener_v3_Listener_InternalListenerConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_InternalListenerConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_Listener_InternalListenerConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_Listener_InternalListenerConfig_serialize(const envoy_config_listener_v3_Listener_InternalListenerConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_Listener_InternalListenerConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c b/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c index e31eab43b40..dda5ed7d674 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/listener/v3/listener_components.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/config/core/v3/base.upb.h" @@ -29,15 +29,15 @@ static const upb_msglayout *const envoy_config_listener_v3_Filter_submsgs[2] = { }; static const upb_msglayout_field envoy_config_listener_v3_Filter__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_Filter_msginit = { &envoy_config_listener_v3_Filter_submsgs[0], &envoy_config_listener_v3_Filter__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 1, 255, }; static const upb_msglayout *const envoy_config_listener_v3_FilterChainMatch_submsgs[2] = { @@ -46,23 +46,23 @@ static const upb_msglayout *const envoy_config_listener_v3_FilterChainMatch_subm }; static const upb_msglayout_field envoy_config_listener_v3_FilterChainMatch__fields[11] = { - {3, UPB_SIZE(32, 56), 0, 0, 11, 3}, - {4, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {5, UPB_SIZE(24, 40), 1, 1, 11, 1}, - {6, UPB_SIZE(36, 64), 0, 0, 11, 3}, - {7, UPB_SIZE(40, 72), 0, 0, 13, _UPB_LABEL_PACKED}, - {8, UPB_SIZE(28, 48), 2, 1, 11, 1}, - {9, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {10, UPB_SIZE(44, 80), 0, 0, 9, 3}, - {11, UPB_SIZE(48, 88), 0, 0, 9, 3}, - {12, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {13, UPB_SIZE(52, 96), 0, 0, 11, 3}, + {3, UPB_SIZE(32, 56), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(24, 40), 1, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(36, 64), 0, 0, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(40, 72), 0, 0, 13, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {8, UPB_SIZE(28, 48), 2, 1, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(44, 80), 0, 0, 9, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(48, 88), 0, 0, 9, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(52, 96), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_listener_v3_FilterChainMatch_msginit = { &envoy_config_listener_v3_FilterChainMatch_submsgs[0], &envoy_config_listener_v3_FilterChainMatch__fields[0], - UPB_SIZE(56, 112), 11, false, 255, + UPB_SIZE(56, 112), 11, false, 0, 255, }; static const upb_msglayout *const envoy_config_listener_v3_FilterChain_submsgs[7] = { @@ -76,20 +76,20 @@ static const upb_msglayout *const envoy_config_listener_v3_FilterChain_submsgs[7 }; static const upb_msglayout_field envoy_config_listener_v3_FilterChain__fields[8] = { - {1, UPB_SIZE(12, 24), 1, 4, 11, 1}, - {3, UPB_SIZE(36, 72), 0, 2, 11, 3}, - {4, UPB_SIZE(16, 32), 2, 5, 11, 1}, - {5, UPB_SIZE(20, 40), 3, 0, 11, 1}, - {6, UPB_SIZE(24, 48), 4, 1, 11, 1}, - {7, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {8, UPB_SIZE(28, 56), 5, 3, 11, 1}, - {9, UPB_SIZE(32, 64), 6, 6, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 4, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(36, 72), 0, 2, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(16, 32), 2, 5, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 3, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 48), 4, 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(28, 56), 5, 3, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 64), 6, 6, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_FilterChain_msginit = { &envoy_config_listener_v3_FilterChain_submsgs[0], &envoy_config_listener_v3_FilterChain__fields[0], - UPB_SIZE(40, 80), 8, false, 255, + UPB_SIZE(40, 80), 8, false, 1, 255, }; static const upb_msglayout *const envoy_config_listener_v3_FilterChain_OnDemandConfiguration_submsgs[1] = { @@ -97,13 +97,13 @@ static const upb_msglayout *const envoy_config_listener_v3_FilterChain_OnDemandC }; static const upb_msglayout_field envoy_config_listener_v3_FilterChain_OnDemandConfiguration__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_FilterChain_OnDemandConfiguration_msginit = { &envoy_config_listener_v3_FilterChain_OnDemandConfiguration_submsgs[0], &envoy_config_listener_v3_FilterChain_OnDemandConfiguration__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_listener_v3_ListenerFilterChainMatchPredicate_submsgs[3] = { @@ -113,17 +113,17 @@ static const upb_msglayout *const envoy_config_listener_v3_ListenerFilterChainMa }; static const upb_msglayout_field envoy_config_listener_v3_ListenerFilterChainMatchPredicate__fields[5] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_ListenerFilterChainMatchPredicate_msginit = { &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_submsgs[0], &envoy_config_listener_v3_ListenerFilterChainMatchPredicate__fields[0], - UPB_SIZE(8, 16), 5, false, 255, + UPB_SIZE(8, 16), 5, false, 5, 255, }; static const upb_msglayout *const envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_submsgs[1] = { @@ -131,13 +131,13 @@ static const upb_msglayout *const envoy_config_listener_v3_ListenerFilterChainMa }; static const upb_msglayout_field envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_msginit = { &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_submsgs[0], &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_listener_v3_ListenerFilter_submsgs[2] = { @@ -146,15 +146,15 @@ static const upb_msglayout *const envoy_config_listener_v3_ListenerFilter_submsg }; static const upb_msglayout_field envoy_config_listener_v3_ListenerFilter__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 1, 11, 1}, - {4, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_ListenerFilter_msginit = { &envoy_config_listener_v3_ListenerFilter_submsgs[0], &envoy_config_listener_v3_ListenerFilter__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h b/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h index f8ff80885f6..17afbdc227a 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_LISTENER_V3_LISTENER_COMPONENTS_PROTO_UPB_H_ #define ENVOY_CONFIG_LISTENER_V3_LISTENER_COMPONENTS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -75,13 +75,19 @@ UPB_INLINE envoy_config_listener_v3_Filter *envoy_config_listener_v3_Filter_new( UPB_INLINE envoy_config_listener_v3_Filter *envoy_config_listener_v3_Filter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_Filter *ret = envoy_config_listener_v3_Filter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_Filter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_Filter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_Filter *envoy_config_listener_v3_Filter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_Filter *ret = envoy_config_listener_v3_Filter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_Filter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_Filter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_Filter_serialize(const envoy_config_listener_v3_Filter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_Filter_msginit, arena, len); @@ -136,13 +142,19 @@ UPB_INLINE envoy_config_listener_v3_FilterChainMatch *envoy_config_listener_v3_F UPB_INLINE envoy_config_listener_v3_FilterChainMatch *envoy_config_listener_v3_FilterChainMatch_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_FilterChainMatch *ret = envoy_config_listener_v3_FilterChainMatch_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChainMatch_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChainMatch_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_FilterChainMatch *envoy_config_listener_v3_FilterChainMatch_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_FilterChainMatch *ret = envoy_config_listener_v3_FilterChainMatch_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChainMatch_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChainMatch_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_FilterChainMatch_serialize(const envoy_config_listener_v3_FilterChainMatch *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_FilterChainMatch_msginit, arena, len); @@ -278,13 +290,19 @@ UPB_INLINE envoy_config_listener_v3_FilterChain *envoy_config_listener_v3_Filter UPB_INLINE envoy_config_listener_v3_FilterChain *envoy_config_listener_v3_FilterChain_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_FilterChain *ret = envoy_config_listener_v3_FilterChain_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_FilterChain *envoy_config_listener_v3_FilterChain_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_FilterChain *ret = envoy_config_listener_v3_FilterChain_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_FilterChain_serialize(const envoy_config_listener_v3_FilterChain *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_FilterChain_msginit, arena, len); @@ -409,13 +427,19 @@ UPB_INLINE envoy_config_listener_v3_FilterChain_OnDemandConfiguration *envoy_con UPB_INLINE envoy_config_listener_v3_FilterChain_OnDemandConfiguration *envoy_config_listener_v3_FilterChain_OnDemandConfiguration_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_FilterChain_OnDemandConfiguration *ret = envoy_config_listener_v3_FilterChain_OnDemandConfiguration_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_OnDemandConfiguration_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_OnDemandConfiguration_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_FilterChain_OnDemandConfiguration *envoy_config_listener_v3_FilterChain_OnDemandConfiguration_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_FilterChain_OnDemandConfiguration *ret = envoy_config_listener_v3_FilterChain_OnDemandConfiguration_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_OnDemandConfiguration_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_FilterChain_OnDemandConfiguration_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_FilterChain_OnDemandConfiguration_serialize(const envoy_config_listener_v3_FilterChain_OnDemandConfiguration *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_FilterChain_OnDemandConfiguration_msginit, arena, len); @@ -446,13 +470,19 @@ UPB_INLINE envoy_config_listener_v3_ListenerFilterChainMatchPredicate *envoy_con UPB_INLINE envoy_config_listener_v3_ListenerFilterChainMatchPredicate *envoy_config_listener_v3_ListenerFilterChainMatchPredicate_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_ListenerFilterChainMatchPredicate *ret = envoy_config_listener_v3_ListenerFilterChainMatchPredicate_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_ListenerFilterChainMatchPredicate *envoy_config_listener_v3_ListenerFilterChainMatchPredicate_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_ListenerFilterChainMatchPredicate *ret = envoy_config_listener_v3_ListenerFilterChainMatchPredicate_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_ListenerFilterChainMatchPredicate_serialize(const envoy_config_listener_v3_ListenerFilterChainMatchPredicate *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_msginit, arena, len); @@ -539,13 +569,19 @@ UPB_INLINE envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet * UPB_INLINE envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet *envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet *ret = envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet *envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet *ret = envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_serialize(const envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_ListenerFilterChainMatchPredicate_MatchSet_msginit, arena, len); @@ -576,13 +612,19 @@ UPB_INLINE envoy_config_listener_v3_ListenerFilter *envoy_config_listener_v3_Lis UPB_INLINE envoy_config_listener_v3_ListenerFilter *envoy_config_listener_v3_ListenerFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_ListenerFilter *ret = envoy_config_listener_v3_ListenerFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_ListenerFilter *envoy_config_listener_v3_ListenerFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_ListenerFilter *ret = envoy_config_listener_v3_ListenerFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_ListenerFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_ListenerFilter_serialize(const envoy_config_listener_v3_ListenerFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_ListenerFilter_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c b/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c index 5ecd130fd39..7e3cdb0a84e 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/listener/v3/quic_config.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/extension.upb.h" @@ -29,19 +29,19 @@ static const upb_msglayout *const envoy_config_listener_v3_QuicProtocolOptions_s }; static const upb_msglayout_field envoy_config_listener_v3_QuicProtocolOptions__fields[7] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 3, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 3, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 1, 11, 1}, - {5, UPB_SIZE(20, 40), 5, 4, 11, 1}, - {6, UPB_SIZE(24, 48), 6, 2, 11, 1}, - {7, UPB_SIZE(28, 56), 7, 2, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 3, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 5, 4, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 48), 6, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(28, 56), 7, 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_QuicProtocolOptions_msginit = { &envoy_config_listener_v3_QuicProtocolOptions_submsgs[0], &envoy_config_listener_v3_QuicProtocolOptions__fields[0], - UPB_SIZE(32, 64), 7, false, 255, + UPB_SIZE(32, 64), 7, false, 7, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h b/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h index a2fb9167667..8a0f954c486 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_LISTENER_V3_QUIC_CONFIG_PROTO_UPB_H_ #define ENVOY_CONFIG_LISTENER_V3_QUIC_CONFIG_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -43,13 +43,19 @@ UPB_INLINE envoy_config_listener_v3_QuicProtocolOptions *envoy_config_listener_v UPB_INLINE envoy_config_listener_v3_QuicProtocolOptions *envoy_config_listener_v3_QuicProtocolOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_QuicProtocolOptions *ret = envoy_config_listener_v3_QuicProtocolOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_QuicProtocolOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_QuicProtocolOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_QuicProtocolOptions *envoy_config_listener_v3_QuicProtocolOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_QuicProtocolOptions *ret = envoy_config_listener_v3_QuicProtocolOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_QuicProtocolOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_QuicProtocolOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_QuicProtocolOptions_serialize(const envoy_config_listener_v3_QuicProtocolOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_QuicProtocolOptions_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c b/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c index 14dcdbfcd66..b34cac3a312 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/listener/v3/udp_listener_config.upb.h" #include "envoy/config/core/v3/udp_socket_config.upb.h" #include "envoy/config/listener/v3/quic_config.upb.h" @@ -22,20 +22,20 @@ static const upb_msglayout *const envoy_config_listener_v3_UdpListenerConfig_sub }; static const upb_msglayout_field envoy_config_listener_v3_UdpListenerConfig__fields[2] = { - {5, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {7, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {5, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_listener_v3_UdpListenerConfig_msginit = { &envoy_config_listener_v3_UdpListenerConfig_submsgs[0], &envoy_config_listener_v3_UdpListenerConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 0, 255, }; const upb_msglayout envoy_config_listener_v3_ActiveRawUdpListenerConfig_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h b/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h index 7dc472dc225..0f284678c77 100644 --- a/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +++ b/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_LISTENER_V3_UDP_LISTENER_CONFIG_PROTO_UPB_H_ #define ENVOY_CONFIG_LISTENER_V3_UDP_LISTENER_CONFIG_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -40,13 +40,19 @@ UPB_INLINE envoy_config_listener_v3_UdpListenerConfig *envoy_config_listener_v3_ UPB_INLINE envoy_config_listener_v3_UdpListenerConfig *envoy_config_listener_v3_UdpListenerConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_UdpListenerConfig *ret = envoy_config_listener_v3_UdpListenerConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_UdpListenerConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_UdpListenerConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_UdpListenerConfig *envoy_config_listener_v3_UdpListenerConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_UdpListenerConfig *ret = envoy_config_listener_v3_UdpListenerConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_UdpListenerConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_UdpListenerConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_UdpListenerConfig_serialize(const envoy_config_listener_v3_UdpListenerConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_UdpListenerConfig_msginit, arena, len); @@ -92,13 +98,19 @@ UPB_INLINE envoy_config_listener_v3_ActiveRawUdpListenerConfig *envoy_config_lis UPB_INLINE envoy_config_listener_v3_ActiveRawUdpListenerConfig *envoy_config_listener_v3_ActiveRawUdpListenerConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_listener_v3_ActiveRawUdpListenerConfig *ret = envoy_config_listener_v3_ActiveRawUdpListenerConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_listener_v3_ActiveRawUdpListenerConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_listener_v3_ActiveRawUdpListenerConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_listener_v3_ActiveRawUdpListenerConfig *envoy_config_listener_v3_ActiveRawUdpListenerConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_listener_v3_ActiveRawUdpListenerConfig *ret = envoy_config_listener_v3_ActiveRawUdpListenerConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_listener_v3_ActiveRawUdpListenerConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_listener_v3_ActiveRawUdpListenerConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_listener_v3_ActiveRawUdpListenerConfig_serialize(const envoy_config_listener_v3_ActiveRawUdpListenerConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_listener_v3_ActiveRawUdpListenerConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c index 26d00f14ea8..d92cf58aa34 100644 --- a/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +++ b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/metrics/v3/stats.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/type/matcher/v3/string.upb.h" @@ -24,14 +24,14 @@ static const upb_msglayout *const envoy_config_metrics_v3_StatsSink_submsgs[1] = }; static const upb_msglayout_field envoy_config_metrics_v3_StatsSink__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_metrics_v3_StatsSink_msginit = { &envoy_config_metrics_v3_StatsSink_submsgs[0], &envoy_config_metrics_v3_StatsSink__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout *const envoy_config_metrics_v3_StatsConfig_submsgs[4] = { @@ -42,16 +42,16 @@ static const upb_msglayout *const envoy_config_metrics_v3_StatsConfig_submsgs[4] }; static const upb_msglayout_field envoy_config_metrics_v3_StatsConfig__fields[4] = { - {1, UPB_SIZE(12, 24), 0, 2, 11, 3}, - {2, UPB_SIZE(4, 8), 1, 3, 11, 1}, - {3, UPB_SIZE(8, 16), 2, 1, 11, 1}, - {4, UPB_SIZE(16, 32), 0, 0, 11, 3}, + {1, UPB_SIZE(12, 24), 0, 2, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 1, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_metrics_v3_StatsConfig_msginit = { &envoy_config_metrics_v3_StatsConfig_submsgs[0], &envoy_config_metrics_v3_StatsConfig__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_metrics_v3_StatsMatcher_submsgs[1] = { @@ -59,27 +59,27 @@ static const upb_msglayout *const envoy_config_metrics_v3_StatsMatcher_submsgs[1 }; static const upb_msglayout_field envoy_config_metrics_v3_StatsMatcher__fields[3] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_metrics_v3_StatsMatcher_msginit = { &envoy_config_metrics_v3_StatsMatcher_submsgs[0], &envoy_config_metrics_v3_StatsMatcher__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 3, 255, }; static const upb_msglayout_field envoy_config_metrics_v3_TagSpecifier__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_metrics_v3_TagSpecifier_msginit = { NULL, &envoy_config_metrics_v3_TagSpecifier__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_metrics_v3_HistogramBucketSettings_submsgs[1] = { @@ -87,14 +87,14 @@ static const upb_msglayout *const envoy_config_metrics_v3_HistogramBucketSetting }; static const upb_msglayout_field envoy_config_metrics_v3_HistogramBucketSettings__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 1, _UPB_LABEL_PACKED}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 1, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, }; const upb_msglayout envoy_config_metrics_v3_HistogramBucketSettings_msginit = { &envoy_config_metrics_v3_HistogramBucketSettings_submsgs[0], &envoy_config_metrics_v3_HistogramBucketSettings__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_metrics_v3_StatsdSink_submsgs[1] = { @@ -102,15 +102,15 @@ static const upb_msglayout *const envoy_config_metrics_v3_StatsdSink_submsgs[1] }; static const upb_msglayout_field envoy_config_metrics_v3_StatsdSink__fields[3] = { - {1, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 11, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, 1}, - {3, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_metrics_v3_StatsdSink_msginit = { &envoy_config_metrics_v3_StatsdSink_submsgs[0], &envoy_config_metrics_v3_StatsdSink__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_metrics_v3_DogStatsdSink_submsgs[2] = { @@ -119,25 +119,25 @@ static const upb_msglayout *const envoy_config_metrics_v3_DogStatsdSink_submsgs[ }; static const upb_msglayout_field envoy_config_metrics_v3_DogStatsdSink__fields[3] = { - {1, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 11, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {4, UPB_SIZE(12, 24), 1, 1, 11, 1}, + {1, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_metrics_v3_DogStatsdSink_msginit = { &envoy_config_metrics_v3_DogStatsdSink_submsgs[0], &envoy_config_metrics_v3_DogStatsdSink__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 1, 255, }; static const upb_msglayout_field envoy_config_metrics_v3_HystrixSink__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_metrics_v3_HystrixSink_msginit = { NULL, &envoy_config_metrics_v3_HystrixSink__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h index dab0415ed60..4172af8bccb 100644 --- a/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +++ b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPB_H_ #define ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -66,13 +66,19 @@ UPB_INLINE envoy_config_metrics_v3_StatsSink *envoy_config_metrics_v3_StatsSink_ UPB_INLINE envoy_config_metrics_v3_StatsSink *envoy_config_metrics_v3_StatsSink_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_StatsSink *ret = envoy_config_metrics_v3_StatsSink_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsSink_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsSink_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_StatsSink *envoy_config_metrics_v3_StatsSink_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_StatsSink *ret = envoy_config_metrics_v3_StatsSink_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsSink_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsSink_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_StatsSink_serialize(const envoy_config_metrics_v3_StatsSink *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_StatsSink_msginit, arena, len); @@ -112,13 +118,19 @@ UPB_INLINE envoy_config_metrics_v3_StatsConfig *envoy_config_metrics_v3_StatsCon UPB_INLINE envoy_config_metrics_v3_StatsConfig *envoy_config_metrics_v3_StatsConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_StatsConfig *ret = envoy_config_metrics_v3_StatsConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_StatsConfig *envoy_config_metrics_v3_StatsConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_StatsConfig *ret = envoy_config_metrics_v3_StatsConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_StatsConfig_serialize(const envoy_config_metrics_v3_StatsConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_StatsConfig_msginit, arena, len); @@ -194,13 +206,19 @@ UPB_INLINE envoy_config_metrics_v3_StatsMatcher *envoy_config_metrics_v3_StatsMa UPB_INLINE envoy_config_metrics_v3_StatsMatcher *envoy_config_metrics_v3_StatsMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_StatsMatcher *ret = envoy_config_metrics_v3_StatsMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_StatsMatcher *envoy_config_metrics_v3_StatsMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_StatsMatcher *ret = envoy_config_metrics_v3_StatsMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_StatsMatcher_serialize(const envoy_config_metrics_v3_StatsMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_StatsMatcher_msginit, arena, len); @@ -257,13 +275,19 @@ UPB_INLINE envoy_config_metrics_v3_TagSpecifier *envoy_config_metrics_v3_TagSpec UPB_INLINE envoy_config_metrics_v3_TagSpecifier *envoy_config_metrics_v3_TagSpecifier_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_TagSpecifier *ret = envoy_config_metrics_v3_TagSpecifier_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_TagSpecifier_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_TagSpecifier_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_TagSpecifier *envoy_config_metrics_v3_TagSpecifier_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_TagSpecifier *ret = envoy_config_metrics_v3_TagSpecifier_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_TagSpecifier_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_TagSpecifier_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_TagSpecifier_serialize(const envoy_config_metrics_v3_TagSpecifier *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_TagSpecifier_msginit, arena, len); @@ -300,13 +324,19 @@ UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings *envoy_config_metrics UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings *envoy_config_metrics_v3_HistogramBucketSettings_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_HistogramBucketSettings *ret = envoy_config_metrics_v3_HistogramBucketSettings_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings *envoy_config_metrics_v3_HistogramBucketSettings_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_HistogramBucketSettings *ret = envoy_config_metrics_v3_HistogramBucketSettings_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_HistogramBucketSettings_serialize(const envoy_config_metrics_v3_HistogramBucketSettings *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena, len); @@ -348,13 +378,19 @@ UPB_INLINE envoy_config_metrics_v3_StatsdSink *envoy_config_metrics_v3_StatsdSin UPB_INLINE envoy_config_metrics_v3_StatsdSink *envoy_config_metrics_v3_StatsdSink_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_StatsdSink *ret = envoy_config_metrics_v3_StatsdSink_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsdSink_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsdSink_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_StatsdSink *envoy_config_metrics_v3_StatsdSink_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_StatsdSink *ret = envoy_config_metrics_v3_StatsdSink_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsdSink_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsdSink_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_StatsdSink_serialize(const envoy_config_metrics_v3_StatsdSink *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_StatsdSink_msginit, arena, len); @@ -400,13 +436,19 @@ UPB_INLINE envoy_config_metrics_v3_DogStatsdSink *envoy_config_metrics_v3_DogSta UPB_INLINE envoy_config_metrics_v3_DogStatsdSink *envoy_config_metrics_v3_DogStatsdSink_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_DogStatsdSink *ret = envoy_config_metrics_v3_DogStatsdSink_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_DogStatsdSink *envoy_config_metrics_v3_DogStatsdSink_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_DogStatsdSink *ret = envoy_config_metrics_v3_DogStatsdSink_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_DogStatsdSink_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_DogStatsdSink_serialize(const envoy_config_metrics_v3_DogStatsdSink *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena, len); @@ -461,13 +503,19 @@ UPB_INLINE envoy_config_metrics_v3_HystrixSink *envoy_config_metrics_v3_HystrixS UPB_INLINE envoy_config_metrics_v3_HystrixSink *envoy_config_metrics_v3_HystrixSink_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_metrics_v3_HystrixSink *ret = envoy_config_metrics_v3_HystrixSink_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_HystrixSink_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_metrics_v3_HystrixSink_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_metrics_v3_HystrixSink *envoy_config_metrics_v3_HystrixSink_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_metrics_v3_HystrixSink *ret = envoy_config_metrics_v3_HystrixSink_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_HystrixSink_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_metrics_v3_HystrixSink_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_metrics_v3_HystrixSink_serialize(const envoy_config_metrics_v3_HystrixSink *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_metrics_v3_HystrixSink_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c index a306e71e8ac..832d33985b0 100644 --- a/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +++ b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/overload/v3/overload.upb.h" #include "envoy/type/v3/percent.upb.h" #include "google/protobuf/any.upb.h" @@ -23,35 +23,35 @@ static const upb_msglayout *const envoy_config_overload_v3_ResourceMonitor_subms }; static const upb_msglayout_field envoy_config_overload_v3_ResourceMonitor__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_overload_v3_ResourceMonitor_msginit = { &envoy_config_overload_v3_ResourceMonitor_submsgs[0], &envoy_config_overload_v3_ResourceMonitor__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout_field envoy_config_overload_v3_ThresholdTrigger__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_overload_v3_ThresholdTrigger_msginit = { NULL, &envoy_config_overload_v3_ThresholdTrigger__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_overload_v3_ScaledTrigger__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_overload_v3_ScaledTrigger_msginit = { NULL, &envoy_config_overload_v3_ScaledTrigger__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_overload_v3_Trigger_submsgs[2] = { @@ -60,15 +60,15 @@ static const upb_msglayout *const envoy_config_overload_v3_Trigger_submsgs[2] = }; static const upb_msglayout_field envoy_config_overload_v3_Trigger__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_overload_v3_Trigger_msginit = { &envoy_config_overload_v3_Trigger_submsgs[0], &envoy_config_overload_v3_Trigger__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_submsgs[1] = { @@ -76,13 +76,13 @@ static const upb_msglayout *const envoy_config_overload_v3_ScaleTimersOverloadAc }; static const upb_msglayout_field envoy_config_overload_v3_ScaleTimersOverloadActionConfig__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit = { &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_submsgs[0], &envoy_config_overload_v3_ScaleTimersOverloadActionConfig__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_submsgs[2] = { @@ -91,15 +91,15 @@ static const upb_msglayout *const envoy_config_overload_v3_ScaleTimersOverloadAc }; static const upb_msglayout_field envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {2, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 1, 11, 1}, - {3, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit = { &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_submsgs[0], &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_overload_v3_OverloadAction_submsgs[2] = { @@ -108,15 +108,15 @@ static const upb_msglayout *const envoy_config_overload_v3_OverloadAction_submsg }; static const upb_msglayout_field envoy_config_overload_v3_OverloadAction__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {3, UPB_SIZE(12, 24), 1, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_overload_v3_OverloadAction_msginit = { &envoy_config_overload_v3_OverloadAction_submsgs[0], &envoy_config_overload_v3_OverloadAction__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_overload_v3_OverloadManager_submsgs[3] = { @@ -126,15 +126,15 @@ static const upb_msglayout *const envoy_config_overload_v3_OverloadManager_subms }; static const upb_msglayout_field envoy_config_overload_v3_OverloadManager__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 2, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 1, 11, 3}, - {3, UPB_SIZE(12, 24), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_overload_v3_OverloadManager_msginit = { &envoy_config_overload_v3_OverloadManager_submsgs[0], &envoy_config_overload_v3_OverloadManager__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h index d800aa9736f..71baa8fcf43 100644 --- a/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +++ b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPB_H_ #define ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -67,13 +67,19 @@ UPB_INLINE envoy_config_overload_v3_ResourceMonitor *envoy_config_overload_v3_Re UPB_INLINE envoy_config_overload_v3_ResourceMonitor *envoy_config_overload_v3_ResourceMonitor_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_ResourceMonitor *ret = envoy_config_overload_v3_ResourceMonitor_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ResourceMonitor_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_ResourceMonitor_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_ResourceMonitor *envoy_config_overload_v3_ResourceMonitor_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_ResourceMonitor *ret = envoy_config_overload_v3_ResourceMonitor_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ResourceMonitor_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_ResourceMonitor_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_ResourceMonitor_serialize(const envoy_config_overload_v3_ResourceMonitor *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_ResourceMonitor_msginit, arena, len); @@ -113,13 +119,19 @@ UPB_INLINE envoy_config_overload_v3_ThresholdTrigger *envoy_config_overload_v3_T UPB_INLINE envoy_config_overload_v3_ThresholdTrigger *envoy_config_overload_v3_ThresholdTrigger_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_ThresholdTrigger *ret = envoy_config_overload_v3_ThresholdTrigger_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_ThresholdTrigger *envoy_config_overload_v3_ThresholdTrigger_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_ThresholdTrigger *ret = envoy_config_overload_v3_ThresholdTrigger_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_ThresholdTrigger_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_ThresholdTrigger_serialize(const envoy_config_overload_v3_ThresholdTrigger *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena, len); @@ -139,13 +151,19 @@ UPB_INLINE envoy_config_overload_v3_ScaledTrigger *envoy_config_overload_v3_Scal UPB_INLINE envoy_config_overload_v3_ScaledTrigger *envoy_config_overload_v3_ScaledTrigger_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_ScaledTrigger *ret = envoy_config_overload_v3_ScaledTrigger_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaledTrigger_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaledTrigger_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_ScaledTrigger *envoy_config_overload_v3_ScaledTrigger_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_ScaledTrigger *ret = envoy_config_overload_v3_ScaledTrigger_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaledTrigger_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaledTrigger_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_ScaledTrigger_serialize(const envoy_config_overload_v3_ScaledTrigger *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_ScaledTrigger_msginit, arena, len); @@ -169,13 +187,19 @@ UPB_INLINE envoy_config_overload_v3_Trigger *envoy_config_overload_v3_Trigger_ne UPB_INLINE envoy_config_overload_v3_Trigger *envoy_config_overload_v3_Trigger_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_Trigger *ret = envoy_config_overload_v3_Trigger_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_Trigger_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_Trigger_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_Trigger *envoy_config_overload_v3_Trigger_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_Trigger *ret = envoy_config_overload_v3_Trigger_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_Trigger_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_Trigger_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_Trigger_serialize(const envoy_config_overload_v3_Trigger *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_Trigger_msginit, arena, len); @@ -230,13 +254,19 @@ UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig *envoy_confi UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_ScaleTimersOverloadActionConfig *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_ScaleTimersOverloadActionConfig *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_serialize(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena, len); @@ -267,13 +297,19 @@ UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer * UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_serialize(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena, len); @@ -328,13 +364,19 @@ UPB_INLINE envoy_config_overload_v3_OverloadAction *envoy_config_overload_v3_Ove UPB_INLINE envoy_config_overload_v3_OverloadAction *envoy_config_overload_v3_OverloadAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_OverloadAction *ret = envoy_config_overload_v3_OverloadAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_OverloadAction *envoy_config_overload_v3_OverloadAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_OverloadAction *ret = envoy_config_overload_v3_OverloadAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_OverloadAction_serialize(const envoy_config_overload_v3_OverloadAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_OverloadAction_msginit, arena, len); @@ -384,13 +426,19 @@ UPB_INLINE envoy_config_overload_v3_OverloadManager *envoy_config_overload_v3_Ov UPB_INLINE envoy_config_overload_v3_OverloadManager *envoy_config_overload_v3_OverloadManager_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_overload_v3_OverloadManager *ret = envoy_config_overload_v3_OverloadManager_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadManager_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadManager_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_overload_v3_OverloadManager *envoy_config_overload_v3_OverloadManager_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_overload_v3_OverloadManager *ret = envoy_config_overload_v3_OverloadManager_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadManager_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadManager_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_overload_v3_OverloadManager_serialize(const envoy_config_overload_v3_OverloadManager *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_overload_v3_OverloadManager_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c b/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c index d4c81d1a5e7..ccecd646093 100644 --- a/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +++ b/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/rbac/v3/rbac.upb.h" #include "envoy/config/core/v3/address.upb.h" #include "envoy/config/route/v3/route_components.upb.h" @@ -29,14 +29,14 @@ static const upb_msglayout *const envoy_config_rbac_v3_RBAC_submsgs[1] = { }; static const upb_msglayout_field envoy_config_rbac_v3_RBAC__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout envoy_config_rbac_v3_RBAC_msginit = { &envoy_config_rbac_v3_RBAC_submsgs[0], &envoy_config_rbac_v3_RBAC__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_RBAC_PoliciesEntry_submsgs[1] = { @@ -44,14 +44,14 @@ static const upb_msglayout *const envoy_config_rbac_v3_RBAC_PoliciesEntry_submsg }; static const upb_msglayout_field envoy_config_rbac_v3_RBAC_PoliciesEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_rbac_v3_RBAC_PoliciesEntry_msginit = { &envoy_config_rbac_v3_RBAC_PoliciesEntry_submsgs[0], &envoy_config_rbac_v3_RBAC_PoliciesEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_Policy_submsgs[4] = { @@ -62,16 +62,16 @@ static const upb_msglayout *const envoy_config_rbac_v3_Policy_submsgs[4] = { }; static const upb_msglayout_field envoy_config_rbac_v3_Policy__fields[4] = { - {1, UPB_SIZE(12, 24), 0, 0, 11, 3}, - {2, UPB_SIZE(16, 32), 0, 1, 11, 3}, - {3, UPB_SIZE(4, 8), 1, 3, 11, 1}, - {4, UPB_SIZE(8, 16), 2, 2, 11, 1}, + {1, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(16, 32), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(4, 8), 1, 3, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), 2, 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_rbac_v3_Policy_msginit = { &envoy_config_rbac_v3_Policy_submsgs[0], &envoy_config_rbac_v3_Policy__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_Permission_submsgs[7] = { @@ -85,22 +85,22 @@ static const upb_msglayout *const envoy_config_rbac_v3_Permission_submsgs[7] = { }; static const upb_msglayout_field envoy_config_rbac_v3_Permission__fields[10] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 13, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, 1}, - {10, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 13, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_rbac_v3_Permission_msginit = { &envoy_config_rbac_v3_Permission_submsgs[0], &envoy_config_rbac_v3_Permission__fields[0], - UPB_SIZE(8, 16), 10, false, 255, + UPB_SIZE(8, 16), 10, false, 10, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_Permission_Set_submsgs[1] = { @@ -108,13 +108,13 @@ static const upb_msglayout *const envoy_config_rbac_v3_Permission_Set_submsgs[1] }; static const upb_msglayout_field envoy_config_rbac_v3_Permission_Set__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_rbac_v3_Permission_Set_msginit = { &envoy_config_rbac_v3_Permission_Set_submsgs[0], &envoy_config_rbac_v3_Permission_Set__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_Principal_submsgs[7] = { @@ -128,23 +128,23 @@ static const upb_msglayout *const envoy_config_rbac_v3_Principal_submsgs[7] = { }; static const upb_msglayout_field envoy_config_rbac_v3_Principal__fields[11] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, 1}, - {10, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {11, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_rbac_v3_Principal_msginit = { &envoy_config_rbac_v3_Principal_submsgs[0], &envoy_config_rbac_v3_Principal__fields[0], - UPB_SIZE(8, 16), 11, false, 255, + UPB_SIZE(8, 16), 11, false, 11, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_Principal_Set_submsgs[1] = { @@ -152,13 +152,13 @@ static const upb_msglayout *const envoy_config_rbac_v3_Principal_Set_submsgs[1] }; static const upb_msglayout_field envoy_config_rbac_v3_Principal_Set__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_rbac_v3_Principal_Set_msginit = { &envoy_config_rbac_v3_Principal_Set_submsgs[0], &envoy_config_rbac_v3_Principal_Set__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_rbac_v3_Principal_Authenticated_submsgs[1] = { @@ -166,13 +166,13 @@ static const upb_msglayout *const envoy_config_rbac_v3_Principal_Authenticated_s }; static const upb_msglayout_field envoy_config_rbac_v3_Principal_Authenticated__fields[1] = { - {2, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {2, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_rbac_v3_Principal_Authenticated_msginit = { &envoy_config_rbac_v3_Principal_Authenticated_submsgs[0], &envoy_config_rbac_v3_Principal_Authenticated__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h b/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h index befa31f625e..e651df89f07 100644 --- a/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +++ b/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_RBAC_V3_RBAC_PROTO_UPB_H_ #define ENVOY_CONFIG_RBAC_V3_RBAC_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -74,13 +74,19 @@ UPB_INLINE envoy_config_rbac_v3_RBAC *envoy_config_rbac_v3_RBAC_new(upb_arena *a UPB_INLINE envoy_config_rbac_v3_RBAC *envoy_config_rbac_v3_RBAC_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_RBAC *ret = envoy_config_rbac_v3_RBAC_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_RBAC_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_RBAC_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_RBAC *envoy_config_rbac_v3_RBAC_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_RBAC *ret = envoy_config_rbac_v3_RBAC_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_RBAC_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_RBAC_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_RBAC_serialize(const envoy_config_rbac_v3_RBAC *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_RBAC_msginit, arena, len); @@ -126,13 +132,19 @@ UPB_INLINE envoy_config_rbac_v3_Policy *envoy_config_rbac_v3_Policy_new(upb_aren UPB_INLINE envoy_config_rbac_v3_Policy *envoy_config_rbac_v3_Policy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_Policy *ret = envoy_config_rbac_v3_Policy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_Policy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_Policy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_Policy *envoy_config_rbac_v3_Policy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_Policy *ret = envoy_config_rbac_v3_Policy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_Policy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_Policy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_Policy_serialize(const envoy_config_rbac_v3_Policy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_Policy_msginit, arena, len); @@ -208,13 +220,19 @@ UPB_INLINE envoy_config_rbac_v3_Permission *envoy_config_rbac_v3_Permission_new( UPB_INLINE envoy_config_rbac_v3_Permission *envoy_config_rbac_v3_Permission_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_Permission *ret = envoy_config_rbac_v3_Permission_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_Permission *envoy_config_rbac_v3_Permission_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_Permission *ret = envoy_config_rbac_v3_Permission_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_Permission_serialize(const envoy_config_rbac_v3_Permission *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_Permission_msginit, arena, len); @@ -367,13 +385,19 @@ UPB_INLINE envoy_config_rbac_v3_Permission_Set *envoy_config_rbac_v3_Permission_ UPB_INLINE envoy_config_rbac_v3_Permission_Set *envoy_config_rbac_v3_Permission_Set_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_Permission_Set *ret = envoy_config_rbac_v3_Permission_Set_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_Set_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_Set_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_Permission_Set *envoy_config_rbac_v3_Permission_Set_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_Permission_Set *ret = envoy_config_rbac_v3_Permission_Set_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_Set_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_Permission_Set_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_Permission_Set_serialize(const envoy_config_rbac_v3_Permission_Set *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_Permission_Set_msginit, arena, len); @@ -404,13 +428,19 @@ UPB_INLINE envoy_config_rbac_v3_Principal *envoy_config_rbac_v3_Principal_new(up UPB_INLINE envoy_config_rbac_v3_Principal *envoy_config_rbac_v3_Principal_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_Principal *ret = envoy_config_rbac_v3_Principal_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_Principal *envoy_config_rbac_v3_Principal_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_Principal *ret = envoy_config_rbac_v3_Principal_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_Principal_serialize(const envoy_config_rbac_v3_Principal *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_Principal_msginit, arena, len); @@ -587,13 +617,19 @@ UPB_INLINE envoy_config_rbac_v3_Principal_Set *envoy_config_rbac_v3_Principal_Se UPB_INLINE envoy_config_rbac_v3_Principal_Set *envoy_config_rbac_v3_Principal_Set_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_Principal_Set *ret = envoy_config_rbac_v3_Principal_Set_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Set_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Set_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_Principal_Set *envoy_config_rbac_v3_Principal_Set_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_Principal_Set *ret = envoy_config_rbac_v3_Principal_Set_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Set_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Set_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_Principal_Set_serialize(const envoy_config_rbac_v3_Principal_Set *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_Principal_Set_msginit, arena, len); @@ -624,13 +660,19 @@ UPB_INLINE envoy_config_rbac_v3_Principal_Authenticated *envoy_config_rbac_v3_Pr UPB_INLINE envoy_config_rbac_v3_Principal_Authenticated *envoy_config_rbac_v3_Principal_Authenticated_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_rbac_v3_Principal_Authenticated *ret = envoy_config_rbac_v3_Principal_Authenticated_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Authenticated_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Authenticated_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_rbac_v3_Principal_Authenticated *envoy_config_rbac_v3_Principal_Authenticated_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_rbac_v3_Principal_Authenticated *ret = envoy_config_rbac_v3_Principal_Authenticated_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Authenticated_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_rbac_v3_Principal_Authenticated_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_rbac_v3_Principal_Authenticated_serialize(const envoy_config_rbac_v3_Principal_Authenticated *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_rbac_v3_Principal_Authenticated_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c b/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c index d82eb1de413..4bd3447b677 100644 --- a/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +++ b/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/route/v3/route.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/config_source.upb.h" @@ -30,24 +30,24 @@ static const upb_msglayout *const envoy_config_route_v3_RouteConfiguration_subms }; static const upb_msglayout_field envoy_config_route_v3_RouteConfiguration__fields[12] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(24, 48), 0, 3, 11, 3}, - {3, UPB_SIZE(28, 56), 0, 0, 9, 3}, - {4, UPB_SIZE(32, 64), 0, 0, 11, 3}, - {5, UPB_SIZE(36, 72), 0, 0, 9, 3}, - {6, UPB_SIZE(40, 80), 0, 0, 11, 3}, - {7, UPB_SIZE(12, 24), 1, 4, 11, 1}, - {8, UPB_SIZE(44, 88), 0, 0, 9, 3}, - {9, UPB_SIZE(16, 32), 2, 2, 11, 1}, - {10, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {11, UPB_SIZE(20, 40), 3, 5, 11, 1}, - {12, UPB_SIZE(48, 96), 0, 1, 11, 3}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 48), 0, 3, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(28, 56), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(32, 64), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(36, 72), 0, 0, 9, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(40, 80), 0, 0, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(12, 24), 1, 4, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(44, 88), 0, 0, 9, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(16, 32), 2, 2, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(20, 40), 3, 5, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(48, 96), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_route_v3_RouteConfiguration_msginit = { &envoy_config_route_v3_RouteConfiguration_submsgs[0], &envoy_config_route_v3_RouteConfiguration__fields[0], - UPB_SIZE(56, 112), 12, false, 255, + UPB_SIZE(56, 112), 12, false, 12, 255, }; static const upb_msglayout *const envoy_config_route_v3_ClusterSpecifierPlugin_submsgs[1] = { @@ -55,13 +55,13 @@ static const upb_msglayout *const envoy_config_route_v3_ClusterSpecifierPlugin_s }; static const upb_msglayout_field envoy_config_route_v3_ClusterSpecifierPlugin__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_ClusterSpecifierPlugin_msginit = { &envoy_config_route_v3_ClusterSpecifierPlugin_submsgs[0], &envoy_config_route_v3_ClusterSpecifierPlugin__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_Vhds_submsgs[1] = { @@ -69,13 +69,13 @@ static const upb_msglayout *const envoy_config_route_v3_Vhds_submsgs[1] = { }; static const upb_msglayout_field envoy_config_route_v3_Vhds__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_Vhds_msginit = { &envoy_config_route_v3_Vhds_submsgs[0], &envoy_config_route_v3_Vhds__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h b/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h index af2ed7ea87e..c9127c48a34 100644 --- a/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +++ b/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ROUTE_V3_ROUTE_PROTO_UPB_H_ #define ENVOY_CONFIG_ROUTE_V3_ROUTE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -51,13 +51,19 @@ UPB_INLINE envoy_config_route_v3_RouteConfiguration *envoy_config_route_v3_Route UPB_INLINE envoy_config_route_v3_RouteConfiguration *envoy_config_route_v3_RouteConfiguration_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteConfiguration *ret = envoy_config_route_v3_RouteConfiguration_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteConfiguration_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteConfiguration_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteConfiguration *envoy_config_route_v3_RouteConfiguration_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteConfiguration *ret = envoy_config_route_v3_RouteConfiguration_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteConfiguration_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteConfiguration_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteConfiguration_serialize(const envoy_config_route_v3_RouteConfiguration *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteConfiguration_msginit, arena, len); @@ -219,13 +225,19 @@ UPB_INLINE envoy_config_route_v3_ClusterSpecifierPlugin *envoy_config_route_v3_C UPB_INLINE envoy_config_route_v3_ClusterSpecifierPlugin *envoy_config_route_v3_ClusterSpecifierPlugin_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_ClusterSpecifierPlugin *ret = envoy_config_route_v3_ClusterSpecifierPlugin_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_ClusterSpecifierPlugin_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_ClusterSpecifierPlugin_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_ClusterSpecifierPlugin *envoy_config_route_v3_ClusterSpecifierPlugin_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_ClusterSpecifierPlugin *ret = envoy_config_route_v3_ClusterSpecifierPlugin_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_ClusterSpecifierPlugin_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_ClusterSpecifierPlugin_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_ClusterSpecifierPlugin_serialize(const envoy_config_route_v3_ClusterSpecifierPlugin *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_ClusterSpecifierPlugin_msginit, arena, len); @@ -256,13 +268,19 @@ UPB_INLINE envoy_config_route_v3_Vhds *envoy_config_route_v3_Vhds_new(upb_arena UPB_INLINE envoy_config_route_v3_Vhds *envoy_config_route_v3_Vhds_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_Vhds *ret = envoy_config_route_v3_Vhds_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_Vhds_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_Vhds_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_Vhds *envoy_config_route_v3_Vhds_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_Vhds *ret = envoy_config_route_v3_Vhds_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_Vhds_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_Vhds_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_Vhds_serialize(const envoy_config_route_v3_Vhds *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_Vhds_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c b/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c index ca05b29d7b7..308a374702e 100644 --- a/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +++ b/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/route/v3/route_components.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/extension.upb.h" @@ -43,30 +43,30 @@ static const upb_msglayout *const envoy_config_route_v3_VirtualHost_submsgs[10] }; static const upb_msglayout_field envoy_config_route_v3_VirtualHost__fields[18] = { - {1, UPB_SIZE(12, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(40, 72), 0, 0, 9, 3}, - {3, UPB_SIZE(44, 80), 0, 5, 11, 3}, - {4, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {5, UPB_SIZE(48, 88), 0, 6, 11, 3}, - {6, UPB_SIZE(52, 96), 0, 3, 11, 3}, - {7, UPB_SIZE(56, 104), 0, 0, 11, 3}, - {8, UPB_SIZE(20, 32), 1, 1, 11, 1}, - {10, UPB_SIZE(60, 112), 0, 0, 11, 3}, - {11, UPB_SIZE(64, 120), 0, 0, 9, 3}, - {13, UPB_SIZE(68, 128), 0, 0, 9, 3}, - {14, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {15, UPB_SIZE(72, 136), 0, 7, 11, _UPB_LABEL_MAP}, - {16, UPB_SIZE(24, 40), 2, 4, 11, 1}, - {17, UPB_SIZE(28, 48), 3, 2, 11, 1}, - {18, UPB_SIZE(32, 56), 4, 9, 11, 1}, - {19, UPB_SIZE(9, 9), 0, 0, 8, 1}, - {20, UPB_SIZE(36, 64), 5, 8, 11, 1}, + {1, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(40, 72), 0, 0, 9, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(44, 80), 0, 5, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(48, 88), 0, 6, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(52, 96), 0, 3, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 104), 0, 0, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(20, 32), 1, 1, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(60, 112), 0, 0, 11, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(64, 120), 0, 0, 9, _UPB_MODE_ARRAY}, + {13, UPB_SIZE(68, 128), 0, 0, 9, _UPB_MODE_ARRAY}, + {14, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(72, 136), 0, 7, 11, _UPB_MODE_MAP}, + {16, UPB_SIZE(24, 40), 2, 4, 11, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(28, 48), 3, 2, 11, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(32, 56), 4, 9, 11, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(9, 9), 0, 0, 8, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(36, 64), 5, 8, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_VirtualHost_msginit = { &envoy_config_route_v3_VirtualHost_submsgs[0], &envoy_config_route_v3_VirtualHost__fields[0], - UPB_SIZE(80, 144), 18, false, 255, + UPB_SIZE(80, 144), 18, false, 8, 255, }; static const upb_msglayout *const envoy_config_route_v3_VirtualHost_TypedPerFilterConfigEntry_submsgs[1] = { @@ -74,14 +74,14 @@ static const upb_msglayout *const envoy_config_route_v3_VirtualHost_TypedPerFilt }; static const upb_msglayout_field envoy_config_route_v3_VirtualHost_TypedPerFilterConfigEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_VirtualHost_TypedPerFilterConfigEntry_msginit = { &envoy_config_route_v3_VirtualHost_TypedPerFilterConfigEntry_submsgs[0], &envoy_config_route_v3_VirtualHost_TypedPerFilterConfigEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_FilterAction_submsgs[1] = { @@ -89,13 +89,13 @@ static const upb_msglayout *const envoy_config_route_v3_FilterAction_submsgs[1] }; static const upb_msglayout_field envoy_config_route_v3_FilterAction__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_FilterAction_msginit = { &envoy_config_route_v3_FilterAction_submsgs[0], &envoy_config_route_v3_FilterAction__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_Route_submsgs[12] = { @@ -114,28 +114,28 @@ static const upb_msglayout *const envoy_config_route_v3_Route_submsgs[12] = { }; static const upb_msglayout_field envoy_config_route_v3_Route__fields[16] = { - {1, UPB_SIZE(12, 24), 1, 9, 11, 1}, - {2, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 8, 11, 1}, - {3, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 6, 11, 1}, - {4, UPB_SIZE(16, 32), 2, 1, 11, 1}, - {5, UPB_SIZE(20, 40), 3, 2, 11, 1}, - {7, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 3, 11, 1}, - {9, UPB_SIZE(32, 64), 0, 0, 11, 3}, - {10, UPB_SIZE(36, 72), 0, 0, 11, 3}, - {11, UPB_SIZE(40, 80), 0, 0, 9, 3}, - {12, UPB_SIZE(44, 88), 0, 0, 9, 3}, - {13, UPB_SIZE(48, 96), 0, 7, 11, _UPB_LABEL_MAP}, - {14, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {15, UPB_SIZE(24, 48), 4, 10, 11, 1}, - {16, UPB_SIZE(28, 56), 5, 11, 11, 1}, - {17, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 4, 11, 1}, - {18, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 5, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 9, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 8, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 6, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 3, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 3, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 64), 0, 0, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(36, 72), 0, 0, 11, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(40, 80), 0, 0, 9, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(44, 88), 0, 0, 9, _UPB_MODE_ARRAY}, + {13, UPB_SIZE(48, 96), 0, 7, 11, _UPB_MODE_MAP}, + {14, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(24, 48), 4, 10, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(28, 56), 5, 11, 11, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 4, 11, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(52, 104), UPB_SIZE(-57, -113), 5, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_Route_msginit = { &envoy_config_route_v3_Route_submsgs[0], &envoy_config_route_v3_Route__fields[0], - UPB_SIZE(64, 128), 16, false, 255, + UPB_SIZE(64, 128), 16, false, 5, 255, }; static const upb_msglayout *const envoy_config_route_v3_Route_TypedPerFilterConfigEntry_submsgs[1] = { @@ -143,14 +143,14 @@ static const upb_msglayout *const envoy_config_route_v3_Route_TypedPerFilterConf }; static const upb_msglayout_field envoy_config_route_v3_Route_TypedPerFilterConfigEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_Route_TypedPerFilterConfigEntry_msginit = { &envoy_config_route_v3_Route_TypedPerFilterConfigEntry_submsgs[0], &envoy_config_route_v3_Route_TypedPerFilterConfigEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_WeightedCluster_submsgs[2] = { @@ -159,15 +159,15 @@ static const upb_msglayout *const envoy_config_route_v3_WeightedCluster_submsgs[ }; static const upb_msglayout_field envoy_config_route_v3_WeightedCluster__fields[3] = { - {1, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(12, 24), 1, 1, 11, 1}, + {1, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_WeightedCluster_msginit = { &envoy_config_route_v3_WeightedCluster_submsgs[0], &envoy_config_route_v3_WeightedCluster__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_route_v3_WeightedCluster_ClusterWeight_submsgs[4] = { @@ -178,21 +178,21 @@ static const upb_msglayout *const envoy_config_route_v3_WeightedCluster_ClusterW }; static const upb_msglayout_field envoy_config_route_v3_WeightedCluster_ClusterWeight__fields[9] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 3, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 1, 11, 1}, - {4, UPB_SIZE(20, 40), 0, 0, 11, 3}, - {5, UPB_SIZE(24, 48), 0, 0, 11, 3}, - {6, UPB_SIZE(28, 56), 0, 0, 9, 3}, - {9, UPB_SIZE(32, 64), 0, 0, 9, 3}, - {10, UPB_SIZE(36, 72), 0, 2, 11, _UPB_LABEL_MAP}, - {11, UPB_SIZE(40, 80), UPB_SIZE(-49, -97), 0, 9, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(24, 48), 0, 0, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(28, 56), 0, 0, 9, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(32, 64), 0, 0, 9, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(36, 72), 0, 2, 11, _UPB_MODE_MAP}, + {11, UPB_SIZE(40, 80), UPB_SIZE(-49, -97), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_WeightedCluster_ClusterWeight_msginit = { &envoy_config_route_v3_WeightedCluster_ClusterWeight_submsgs[0], &envoy_config_route_v3_WeightedCluster_ClusterWeight__fields[0], - UPB_SIZE(56, 112), 9, false, 255, + UPB_SIZE(56, 112), 9, false, 6, 255, }; static const upb_msglayout *const envoy_config_route_v3_WeightedCluster_ClusterWeight_TypedPerFilterConfigEntry_submsgs[1] = { @@ -200,14 +200,14 @@ static const upb_msglayout *const envoy_config_route_v3_WeightedCluster_ClusterW }; static const upb_msglayout_field envoy_config_route_v3_WeightedCluster_ClusterWeight_TypedPerFilterConfigEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_WeightedCluster_ClusterWeight_TypedPerFilterConfigEntry_msginit = { &envoy_config_route_v3_WeightedCluster_ClusterWeight_TypedPerFilterConfigEntry_submsgs[0], &envoy_config_route_v3_WeightedCluster_ClusterWeight_TypedPerFilterConfigEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteMatch_submsgs[8] = { @@ -222,28 +222,28 @@ static const upb_msglayout *const envoy_config_route_v3_RouteMatch_submsgs[8] = }; static const upb_msglayout_field envoy_config_route_v3_RouteMatch__fields[10] = { - {1, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {2, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {4, UPB_SIZE(4, 8), 1, 7, 11, 1}, - {6, UPB_SIZE(20, 40), 0, 1, 11, 3}, - {7, UPB_SIZE(24, 48), 0, 2, 11, 3}, - {8, UPB_SIZE(8, 16), 2, 4, 11, 1}, - {9, UPB_SIZE(12, 24), 3, 0, 11, 1}, - {10, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 6, 11, 1}, - {11, UPB_SIZE(16, 32), 4, 5, 11, 1}, - {12, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 3, 11, 1}, + {1, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 8), 1, 7, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(20, 40), 0, 1, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(24, 48), 0, 2, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(8, 16), 2, 4, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 6, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(16, 32), 4, 5, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 3, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteMatch_msginit = { &envoy_config_route_v3_RouteMatch_submsgs[0], &envoy_config_route_v3_RouteMatch__fields[0], - UPB_SIZE(40, 80), 10, false, 255, + UPB_SIZE(40, 80), 10, false, 2, 255, }; const upb_msglayout envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_submsgs[1] = { @@ -251,20 +251,20 @@ static const upb_msglayout *const envoy_config_route_v3_RouteMatch_TlsContextMat }; static const upb_msglayout_field envoy_config_route_v3_RouteMatch_TlsContextMatchOptions__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_msginit = { &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_submsgs[0], &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; const upb_msglayout envoy_config_route_v3_RouteMatch_ConnectMatcher_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_route_v3_CorsPolicy_submsgs[3] = { @@ -274,20 +274,20 @@ static const upb_msglayout *const envoy_config_route_v3_CorsPolicy_submsgs[3] = }; static const upb_msglayout_field envoy_config_route_v3_CorsPolicy__fields[8] = { - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {4, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {5, UPB_SIZE(28, 56), 0, 0, 9, 1}, - {6, UPB_SIZE(36, 72), 1, 2, 11, 1}, - {9, UPB_SIZE(48, 96), UPB_SIZE(-53, -105), 0, 11, 1}, - {10, UPB_SIZE(40, 80), 2, 0, 11, 1}, - {11, UPB_SIZE(44, 88), 0, 1, 11, 3}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(28, 56), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(36, 72), 1, 2, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(48, 96), UPB_SIZE(-53, -105), 0, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(40, 80), 2, 0, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(44, 88), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_route_v3_CorsPolicy_msginit = { &envoy_config_route_v3_CorsPolicy_submsgs[0], &envoy_config_route_v3_CorsPolicy__fields[0], - UPB_SIZE(56, 112), 8, false, 255, + UPB_SIZE(56, 112), 8, false, 0, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_submsgs[16] = { @@ -310,42 +310,42 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_submsgs[16] }; static const upb_msglayout_field envoy_config_route_v3_RouteAction__fields[30] = { - {1, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 0, 9, 1}, - {2, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 0, 9, 1}, - {3, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 10, 11, 1}, - {4, UPB_SIZE(24, 32), 1, 0, 11, 1}, - {5, UPB_SIZE(16, 16), 0, 0, 9, 1}, - {6, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 0, 9, 1}, - {7, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 13, 11, 1}, - {8, UPB_SIZE(28, 40), 2, 14, 11, 1}, - {9, UPB_SIZE(32, 48), 3, 5, 11, 1}, - {11, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {13, UPB_SIZE(80, 144), 0, 4, 11, 3}, - {14, UPB_SIZE(36, 56), 4, 13, 11, 1}, - {15, UPB_SIZE(84, 152), 0, 6, 11, 3}, - {17, UPB_SIZE(40, 64), 5, 1, 11, 1}, - {20, UPB_SIZE(8, 8), 0, 0, 14, 1}, - {23, UPB_SIZE(44, 72), 6, 14, 11, 1}, - {24, UPB_SIZE(48, 80), 7, 14, 11, 1}, - {25, UPB_SIZE(88, 160), 0, 9, 11, 3}, - {26, UPB_SIZE(12, 12), 0, 0, 14, 1}, - {27, UPB_SIZE(52, 88), 8, 2, 11, 1}, - {28, UPB_SIZE(56, 96), 9, 14, 11, 1}, - {29, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 0, 9, 1}, - {30, UPB_SIZE(92, 168), 0, 8, 11, 3}, - {31, UPB_SIZE(60, 104), 10, 15, 11, 1}, - {32, UPB_SIZE(64, 112), 11, 11, 11, 1}, - {33, UPB_SIZE(68, 120), 12, 12, 11, 1}, - {34, UPB_SIZE(72, 128), 13, 3, 11, 1}, - {35, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 11, 11, 1}, - {36, UPB_SIZE(76, 136), 14, 7, 11, 1}, - {37, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 0, 9, 1}, + {1, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 10, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 32), 1, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 0, 9, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 13, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(28, 40), 2, 14, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 48), 3, 5, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(80, 144), 0, 4, 11, _UPB_MODE_ARRAY}, + {14, UPB_SIZE(36, 56), 4, 13, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(84, 152), 0, 6, 11, _UPB_MODE_ARRAY}, + {17, UPB_SIZE(40, 64), 5, 1, 11, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(44, 72), 6, 14, 11, _UPB_MODE_SCALAR}, + {24, UPB_SIZE(48, 80), 7, 14, 11, _UPB_MODE_SCALAR}, + {25, UPB_SIZE(88, 160), 0, 9, 11, _UPB_MODE_ARRAY}, + {26, UPB_SIZE(12, 12), 0, 0, 14, _UPB_MODE_SCALAR}, + {27, UPB_SIZE(52, 88), 8, 2, 11, _UPB_MODE_SCALAR}, + {28, UPB_SIZE(56, 96), 9, 14, 11, _UPB_MODE_SCALAR}, + {29, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 0, 9, _UPB_MODE_SCALAR}, + {30, UPB_SIZE(92, 168), 0, 8, 11, _UPB_MODE_ARRAY}, + {31, UPB_SIZE(60, 104), 10, 15, 11, _UPB_MODE_SCALAR}, + {32, UPB_SIZE(64, 112), 11, 11, 11, _UPB_MODE_SCALAR}, + {33, UPB_SIZE(68, 120), 12, 12, 11, _UPB_MODE_SCALAR}, + {34, UPB_SIZE(72, 128), 13, 3, 11, _UPB_MODE_SCALAR}, + {35, UPB_SIZE(108, 200), UPB_SIZE(-117, -217), 11, 11, _UPB_MODE_SCALAR}, + {36, UPB_SIZE(76, 136), 14, 7, 11, _UPB_MODE_SCALAR}, + {37, UPB_SIZE(96, 176), UPB_SIZE(-105, -193), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_msginit = { &envoy_config_route_v3_RouteAction_submsgs[0], &envoy_config_route_v3_RouteAction__fields[0], - UPB_SIZE(120, 224), 30, false, 255, + UPB_SIZE(120, 224), 30, false, 9, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_RequestMirrorPolicy_submsgs[2] = { @@ -354,15 +354,15 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_RequestMirro }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_RequestMirrorPolicy__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {4, UPB_SIZE(16, 32), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_RequestMirrorPolicy_msginit = { &envoy_config_route_v3_RouteAction_RequestMirrorPolicy_submsgs[0], &envoy_config_route_v3_RouteAction_RequestMirrorPolicy__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_HashPolicy_submsgs[5] = { @@ -374,18 +374,18 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_HashPolicy_s }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_HashPolicy__fields[6] = { - {1, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 3, 11, 1}, - {2, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 1, 11, 1}, - {3, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 0, 11, 1}, - {4, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {5, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 4, 11, 1}, - {6, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 2, 11, 1}, + {1, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 3, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 4, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_HashPolicy_msginit = { &envoy_config_route_v3_RouteAction_HashPolicy_submsgs[0], &envoy_config_route_v3_RouteAction_HashPolicy__fields[0], - UPB_SIZE(16, 24), 6, false, 255, + UPB_SIZE(16, 24), 6, false, 6, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_HashPolicy_Header_submsgs[1] = { @@ -393,14 +393,14 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_HashPolicy_H }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_HashPolicy_Header__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_HashPolicy_Header_msginit = { &envoy_config_route_v3_RouteAction_HashPolicy_Header_submsgs[0], &envoy_config_route_v3_RouteAction_HashPolicy_Header__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_HashPolicy_Cookie_submsgs[1] = { @@ -408,45 +408,45 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_HashPolicy_C }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_HashPolicy_Cookie__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_HashPolicy_Cookie_msginit = { &envoy_config_route_v3_RouteAction_HashPolicy_Cookie_submsgs[0], &envoy_config_route_v3_RouteAction_HashPolicy_Cookie__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_msginit = { NULL, &envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_msginit = { NULL, &envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_HashPolicy_FilterState__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_HashPolicy_FilterState_msginit = { NULL, &envoy_config_route_v3_RouteAction_HashPolicy_FilterState__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_UpgradeConfig_submsgs[2] = { @@ -455,15 +455,15 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_UpgradeConfi }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_UpgradeConfig__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_UpgradeConfig_msginit = { &envoy_config_route_v3_RouteAction_UpgradeConfig_submsgs[0], &envoy_config_route_v3_RouteAction_UpgradeConfig__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_submsgs[1] = { @@ -471,14 +471,14 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_UpgradeConfi }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_msginit = { &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_submsgs[0], &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_RouteAction_MaxStreamDuration_submsgs[1] = { @@ -486,15 +486,15 @@ static const upb_msglayout *const envoy_config_route_v3_RouteAction_MaxStreamDur }; static const upb_msglayout_field envoy_config_route_v3_RouteAction_MaxStreamDuration__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RouteAction_MaxStreamDuration_msginit = { &envoy_config_route_v3_RouteAction_MaxStreamDuration_submsgs[0], &envoy_config_route_v3_RouteAction_MaxStreamDuration__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_submsgs[7] = { @@ -508,23 +508,23 @@ static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_submsgs[7] = }; static const upb_msglayout_field envoy_config_route_v3_RetryPolicy__fields[11] = { - {1, UPB_SIZE(16, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(24, 32), 1, 6, 11, 1}, - {3, UPB_SIZE(28, 40), 2, 5, 11, 1}, - {4, UPB_SIZE(32, 48), 3, 4, 11, 1}, - {5, UPB_SIZE(44, 72), 0, 3, 11, 3}, - {6, UPB_SIZE(8, 8), 0, 0, 3, 1}, - {7, UPB_SIZE(48, 80), 0, 0, 13, _UPB_LABEL_PACKED}, - {8, UPB_SIZE(36, 56), 4, 2, 11, 1}, - {9, UPB_SIZE(52, 88), 0, 0, 11, 3}, - {10, UPB_SIZE(56, 96), 0, 0, 11, 3}, - {11, UPB_SIZE(40, 64), 5, 1, 11, 1}, + {1, UPB_SIZE(16, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 32), 1, 6, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 40), 2, 5, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 48), 3, 4, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(44, 72), 0, 3, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(8, 8), 0, 0, 3, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(48, 80), 0, 0, 13, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {8, UPB_SIZE(36, 56), 4, 2, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(52, 88), 0, 0, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(56, 96), 0, 0, 11, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(40, 64), 5, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RetryPolicy_msginit = { &envoy_config_route_v3_RetryPolicy_submsgs[0], &envoy_config_route_v3_RetryPolicy__fields[0], - UPB_SIZE(64, 112), 11, false, 255, + UPB_SIZE(64, 112), 11, false, 11, 255, }; static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RetryPriority_submsgs[1] = { @@ -532,14 +532,14 @@ static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RetryPriorit }; static const upb_msglayout_field envoy_config_route_v3_RetryPolicy_RetryPriority__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RetryPolicy_RetryPriority_msginit = { &envoy_config_route_v3_RetryPolicy_RetryPriority_submsgs[0], &envoy_config_route_v3_RetryPolicy_RetryPriority__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RetryHostPredicate_submsgs[1] = { @@ -547,14 +547,14 @@ static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RetryHostPre }; static const upb_msglayout_field envoy_config_route_v3_RetryPolicy_RetryHostPredicate__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RetryPolicy_RetryHostPredicate_msginit = { &envoy_config_route_v3_RetryPolicy_RetryHostPredicate_submsgs[0], &envoy_config_route_v3_RetryPolicy_RetryHostPredicate__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RetryBackOff_submsgs[1] = { @@ -562,25 +562,25 @@ static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RetryBackOff }; static const upb_msglayout_field envoy_config_route_v3_RetryPolicy_RetryBackOff__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RetryPolicy_RetryBackOff_msginit = { &envoy_config_route_v3_RetryPolicy_RetryBackOff_submsgs[0], &envoy_config_route_v3_RetryPolicy_RetryBackOff__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout_field envoy_config_route_v3_RetryPolicy_ResetHeader__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RetryPolicy_ResetHeader_msginit = { NULL, &envoy_config_route_v3_RetryPolicy_ResetHeader__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_submsgs[2] = { @@ -589,14 +589,14 @@ static const upb_msglayout *const envoy_config_route_v3_RetryPolicy_RateLimitedR }; static const upb_msglayout_field envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff__fields[2] = { - {1, UPB_SIZE(8, 16), 0, 0, 11, 3}, - {2, UPB_SIZE(4, 8), 1, 1, 11, 1}, + {1, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_msginit = { &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_submsgs[0], &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_HedgePolicy_submsgs[2] = { @@ -605,15 +605,15 @@ static const upb_msglayout *const envoy_config_route_v3_HedgePolicy_submsgs[2] = }; static const upb_msglayout_field envoy_config_route_v3_HedgePolicy__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_HedgePolicy_msginit = { &envoy_config_route_v3_HedgePolicy_submsgs[0], &envoy_config_route_v3_HedgePolicy__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_route_v3_RedirectAction_submsgs[1] = { @@ -621,21 +621,21 @@ static const upb_msglayout *const envoy_config_route_v3_RedirectAction_submsgs[1 }; static const upb_msglayout_field envoy_config_route_v3_RedirectAction__fields[9] = { - {1, UPB_SIZE(12, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(20, 32), UPB_SIZE(-29, -49), 0, 9, 1}, - {3, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {4, UPB_SIZE(32, 56), UPB_SIZE(-41, -73), 0, 8, 1}, - {5, UPB_SIZE(20, 32), UPB_SIZE(-29, -49), 0, 9, 1}, - {6, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {7, UPB_SIZE(32, 56), UPB_SIZE(-41, -73), 0, 9, 1}, - {8, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {9, UPB_SIZE(20, 32), UPB_SIZE(-29, -49), 0, 11, 1}, + {1, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 32), UPB_SIZE(-29, -49), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 56), UPB_SIZE(-41, -73), 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 32), UPB_SIZE(-29, -49), 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(32, 56), UPB_SIZE(-41, -73), 0, 9, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(20, 32), UPB_SIZE(-29, -49), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RedirectAction_msginit = { &envoy_config_route_v3_RedirectAction_submsgs[0], &envoy_config_route_v3_RedirectAction__fields[0], - UPB_SIZE(48, 80), 9, false, 255, + UPB_SIZE(48, 80), 9, false, 9, 255, }; static const upb_msglayout *const envoy_config_route_v3_DirectResponseAction_submsgs[1] = { @@ -643,20 +643,20 @@ static const upb_msglayout *const envoy_config_route_v3_DirectResponseAction_sub }; static const upb_msglayout_field envoy_config_route_v3_DirectResponseAction__fields[2] = { - {1, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {2, UPB_SIZE(8, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_DirectResponseAction_msginit = { &envoy_config_route_v3_DirectResponseAction_submsgs[0], &envoy_config_route_v3_DirectResponseAction__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; const upb_msglayout envoy_config_route_v3_NonForwardingAction_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_config_route_v3_Decorator_submsgs[1] = { @@ -664,14 +664,14 @@ static const upb_msglayout *const envoy_config_route_v3_Decorator_submsgs[1] = { }; static const upb_msglayout_field envoy_config_route_v3_Decorator__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_Decorator_msginit = { &envoy_config_route_v3_Decorator_submsgs[0], &envoy_config_route_v3_Decorator__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_Tracing_submsgs[2] = { @@ -680,16 +680,16 @@ static const upb_msglayout *const envoy_config_route_v3_Tracing_submsgs[2] = { }; static const upb_msglayout_field envoy_config_route_v3_Tracing__fields[4] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 1, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 1, 11, 1}, - {4, UPB_SIZE(16, 32), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_route_v3_Tracing_msginit = { &envoy_config_route_v3_Tracing_submsgs[0], &envoy_config_route_v3_Tracing__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_route_v3_VirtualCluster_submsgs[1] = { @@ -697,14 +697,14 @@ static const upb_msglayout *const envoy_config_route_v3_VirtualCluster_submsgs[1 }; static const upb_msglayout_field envoy_config_route_v3_VirtualCluster__fields[2] = { - {2, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {4, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {2, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_route_v3_VirtualCluster_msginit = { &envoy_config_route_v3_VirtualCluster_submsgs[0], &envoy_config_route_v3_VirtualCluster__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 0, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_submsgs[3] = { @@ -714,16 +714,16 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_submsgs[3] = { }; static const upb_msglayout_field envoy_config_route_v3_RateLimit__fields[4] = { - {1, UPB_SIZE(12, 24), 1, 2, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 0, 0, 11, 3}, - {4, UPB_SIZE(16, 32), 2, 1, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 2, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_msginit = { &envoy_config_route_v3_RateLimit_submsgs[0], &envoy_config_route_v3_RateLimit__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_submsgs[9] = { @@ -739,62 +739,62 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_submsgs }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Action__fields[9] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 8, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 7, 11, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, 1}, - {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 8, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 7, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 6, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 4, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 5, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_msginit = { &envoy_config_route_v3_RateLimit_Action_submsgs[0], &envoy_config_route_v3_RateLimit_Action__fields[0], - UPB_SIZE(8, 16), 9, false, 255, + UPB_SIZE(8, 16), 9, false, 9, 255, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_SourceCluster_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_DestinationCluster_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Action_RequestHeaders__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_RequestHeaders_msginit = { NULL, &envoy_config_route_v3_RateLimit_Action_RequestHeaders__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_RemoteAddress_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Action_GenericKey__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_GenericKey_msginit = { NULL, &envoy_config_route_v3_RateLimit_Action_GenericKey__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_submsgs[2] = { @@ -803,15 +803,15 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_HeaderV }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Action_HeaderValueMatch__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {3, UPB_SIZE(16, 32), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_msginit = { &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_submsgs[0], &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_DynamicMetaData_submsgs[1] = { @@ -819,15 +819,15 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_Dynamic }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Action_DynamicMetaData__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_DynamicMetaData_msginit = { &envoy_config_route_v3_RateLimit_Action_DynamicMetaData_submsgs[0], &envoy_config_route_v3_RateLimit_Action_DynamicMetaData__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_MetaData_submsgs[1] = { @@ -835,16 +835,16 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_Action_MetaDat }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Action_MetaData__fields[4] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(24, 40), 1, 0, 11, 1}, - {3, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {4, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Action_MetaData_msginit = { &envoy_config_route_v3_RateLimit_Action_MetaData_submsgs[0], &envoy_config_route_v3_RateLimit_Action_MetaData__fields[0], - UPB_SIZE(32, 48), 4, false, 255, + UPB_SIZE(32, 48), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_Override_submsgs[1] = { @@ -852,13 +852,13 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_Override_subms }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Override__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Override_msginit = { &envoy_config_route_v3_RateLimit_Override_submsgs[0], &envoy_config_route_v3_RateLimit_Override__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_RateLimit_Override_DynamicMetadata_submsgs[1] = { @@ -866,13 +866,13 @@ static const upb_msglayout *const envoy_config_route_v3_RateLimit_Override_Dynam }; static const upb_msglayout_field envoy_config_route_v3_RateLimit_Override_DynamicMetadata__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_RateLimit_Override_DynamicMetadata_msginit = { &envoy_config_route_v3_RateLimit_Override_DynamicMetadata_submsgs[0], &envoy_config_route_v3_RateLimit_Override_DynamicMetadata__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_HeaderMatcher_submsgs[3] = { @@ -882,22 +882,22 @@ static const upb_msglayout *const envoy_config_route_v3_HeaderMatcher_submsgs[3] }; static const upb_msglayout_field envoy_config_route_v3_HeaderMatcher__fields[10] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {4, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, 1}, - {6, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 2, 11, 1}, - {7, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 8, 1}, - {8, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {9, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, 1}, - {10, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, 1}, - {11, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 11, 1}, - {12, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, 1}, - {13, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 8, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 0, 9, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(12, 24), UPB_SIZE(-21, -41), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_HeaderMatcher_msginit = { &envoy_config_route_v3_HeaderMatcher_submsgs[0], &envoy_config_route_v3_HeaderMatcher__fields[0], - UPB_SIZE(24, 48), 10, false, 255, + UPB_SIZE(24, 48), 10, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_QueryParameterMatcher_submsgs[1] = { @@ -905,15 +905,15 @@ static const upb_msglayout *const envoy_config_route_v3_QueryParameterMatcher_su }; static const upb_msglayout_field envoy_config_route_v3_QueryParameterMatcher__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {6, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_QueryParameterMatcher_msginit = { &envoy_config_route_v3_QueryParameterMatcher_submsgs[0], &envoy_config_route_v3_QueryParameterMatcher__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 1, 255, }; static const upb_msglayout *const envoy_config_route_v3_InternalRedirectPolicy_submsgs[2] = { @@ -922,16 +922,16 @@ static const upb_msglayout *const envoy_config_route_v3_InternalRedirectPolicy_s }; static const upb_msglayout_field envoy_config_route_v3_InternalRedirectPolicy__fields[4] = { - {1, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 13, _UPB_LABEL_PACKED}, - {3, UPB_SIZE(12, 24), 0, 0, 11, 3}, - {4, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 13, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {3, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_InternalRedirectPolicy_msginit = { &envoy_config_route_v3_InternalRedirectPolicy_submsgs[0], &envoy_config_route_v3_InternalRedirectPolicy__fields[0], - UPB_SIZE(16, 32), 4, false, 255, + UPB_SIZE(16, 32), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_route_v3_FilterConfig_submsgs[1] = { @@ -939,14 +939,14 @@ static const upb_msglayout *const envoy_config_route_v3_FilterConfig_submsgs[1] }; static const upb_msglayout_field envoy_config_route_v3_FilterConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_FilterConfig_msginit = { &envoy_config_route_v3_FilterConfig_submsgs[0], &envoy_config_route_v3_FilterConfig__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h b/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h index f01e3596b2f..00d2d251f4e 100644 --- a/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +++ b/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ROUTE_V3_ROUTE_COMPONENTS_PROTO_UPB_H_ #define ENVOY_CONFIG_ROUTE_V3_ROUTE_COMPONENTS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -257,13 +257,19 @@ UPB_INLINE envoy_config_route_v3_VirtualHost *envoy_config_route_v3_VirtualHost_ UPB_INLINE envoy_config_route_v3_VirtualHost *envoy_config_route_v3_VirtualHost_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_VirtualHost *ret = envoy_config_route_v3_VirtualHost_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualHost_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualHost_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_VirtualHost *envoy_config_route_v3_VirtualHost_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_VirtualHost *ret = envoy_config_route_v3_VirtualHost_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualHost_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualHost_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_VirtualHost_serialize(const envoy_config_route_v3_VirtualHost *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_VirtualHost_msginit, arena, len); @@ -504,13 +510,19 @@ UPB_INLINE envoy_config_route_v3_FilterAction *envoy_config_route_v3_FilterActio UPB_INLINE envoy_config_route_v3_FilterAction *envoy_config_route_v3_FilterAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_FilterAction *ret = envoy_config_route_v3_FilterAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_FilterAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_FilterAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_FilterAction *envoy_config_route_v3_FilterAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_FilterAction *ret = envoy_config_route_v3_FilterAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_FilterAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_FilterAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_FilterAction_serialize(const envoy_config_route_v3_FilterAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_FilterAction_msginit, arena, len); @@ -541,13 +553,19 @@ UPB_INLINE envoy_config_route_v3_Route *envoy_config_route_v3_Route_new(upb_aren UPB_INLINE envoy_config_route_v3_Route *envoy_config_route_v3_Route_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_Route *ret = envoy_config_route_v3_Route_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_Route_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_Route_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_Route *envoy_config_route_v3_Route_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_Route *ret = envoy_config_route_v3_Route_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_Route_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_Route_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_Route_serialize(const envoy_config_route_v3_Route *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_Route_msginit, arena, len); @@ -800,13 +818,19 @@ UPB_INLINE envoy_config_route_v3_WeightedCluster *envoy_config_route_v3_Weighted UPB_INLINE envoy_config_route_v3_WeightedCluster *envoy_config_route_v3_WeightedCluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_WeightedCluster *ret = envoy_config_route_v3_WeightedCluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_WeightedCluster *envoy_config_route_v3_WeightedCluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_WeightedCluster *ret = envoy_config_route_v3_WeightedCluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_WeightedCluster_serialize(const envoy_config_route_v3_WeightedCluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_WeightedCluster_msginit, arena, len); @@ -856,13 +880,19 @@ UPB_INLINE envoy_config_route_v3_WeightedCluster_ClusterWeight *envoy_config_rou UPB_INLINE envoy_config_route_v3_WeightedCluster_ClusterWeight *envoy_config_route_v3_WeightedCluster_ClusterWeight_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_WeightedCluster_ClusterWeight *ret = envoy_config_route_v3_WeightedCluster_ClusterWeight_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_ClusterWeight_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_ClusterWeight_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_WeightedCluster_ClusterWeight *envoy_config_route_v3_WeightedCluster_ClusterWeight_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_WeightedCluster_ClusterWeight *ret = envoy_config_route_v3_WeightedCluster_ClusterWeight_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_ClusterWeight_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_WeightedCluster_ClusterWeight_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_WeightedCluster_ClusterWeight_serialize(const envoy_config_route_v3_WeightedCluster_ClusterWeight *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_WeightedCluster_ClusterWeight_msginit, arena, len); @@ -1001,13 +1031,19 @@ UPB_INLINE envoy_config_route_v3_RouteMatch *envoy_config_route_v3_RouteMatch_ne UPB_INLINE envoy_config_route_v3_RouteMatch *envoy_config_route_v3_RouteMatch_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteMatch *ret = envoy_config_route_v3_RouteMatch_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteMatch *envoy_config_route_v3_RouteMatch_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteMatch *ret = envoy_config_route_v3_RouteMatch_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteMatch_serialize(const envoy_config_route_v3_RouteMatch *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteMatch_msginit, arena, len); @@ -1160,13 +1196,19 @@ UPB_INLINE envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions *envoy_config_ UPB_INLINE envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions *envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions *ret = envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions *envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions *ret = envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_serialize(const envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_msginit, arena, len); @@ -1182,13 +1224,19 @@ UPB_INLINE envoy_config_route_v3_RouteMatch_TlsContextMatchOptions *envoy_config UPB_INLINE envoy_config_route_v3_RouteMatch_TlsContextMatchOptions *envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteMatch_TlsContextMatchOptions *ret = envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteMatch_TlsContextMatchOptions *envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteMatch_TlsContextMatchOptions *ret = envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_serialize(const envoy_config_route_v3_RouteMatch_TlsContextMatchOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_msginit, arena, len); @@ -1234,13 +1282,19 @@ UPB_INLINE envoy_config_route_v3_RouteMatch_ConnectMatcher *envoy_config_route_v UPB_INLINE envoy_config_route_v3_RouteMatch_ConnectMatcher *envoy_config_route_v3_RouteMatch_ConnectMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteMatch_ConnectMatcher *ret = envoy_config_route_v3_RouteMatch_ConnectMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_ConnectMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_ConnectMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteMatch_ConnectMatcher *envoy_config_route_v3_RouteMatch_ConnectMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteMatch_ConnectMatcher *ret = envoy_config_route_v3_RouteMatch_ConnectMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_ConnectMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteMatch_ConnectMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteMatch_ConnectMatcher_serialize(const envoy_config_route_v3_RouteMatch_ConnectMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteMatch_ConnectMatcher_msginit, arena, len); @@ -1256,13 +1310,19 @@ UPB_INLINE envoy_config_route_v3_CorsPolicy *envoy_config_route_v3_CorsPolicy_ne UPB_INLINE envoy_config_route_v3_CorsPolicy *envoy_config_route_v3_CorsPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_CorsPolicy *ret = envoy_config_route_v3_CorsPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_CorsPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_CorsPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_CorsPolicy *envoy_config_route_v3_CorsPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_CorsPolicy *ret = envoy_config_route_v3_CorsPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_CorsPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_CorsPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_CorsPolicy_serialize(const envoy_config_route_v3_CorsPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_CorsPolicy_msginit, arena, len); @@ -1359,13 +1419,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction *envoy_config_route_v3_RouteAction_ UPB_INLINE envoy_config_route_v3_RouteAction *envoy_config_route_v3_RouteAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction *ret = envoy_config_route_v3_RouteAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction *envoy_config_route_v3_RouteAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction *ret = envoy_config_route_v3_RouteAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_serialize(const envoy_config_route_v3_RouteAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_msginit, arena, len); @@ -1752,13 +1818,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_RequestMirrorPolicy *envoy_config_r UPB_INLINE envoy_config_route_v3_RouteAction_RequestMirrorPolicy *envoy_config_route_v3_RouteAction_RequestMirrorPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_RequestMirrorPolicy *ret = envoy_config_route_v3_RouteAction_RequestMirrorPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_RequestMirrorPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_RequestMirrorPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_RequestMirrorPolicy *envoy_config_route_v3_RouteAction_RequestMirrorPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_RequestMirrorPolicy *ret = envoy_config_route_v3_RouteAction_RequestMirrorPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_RequestMirrorPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_RequestMirrorPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_RequestMirrorPolicy_serialize(const envoy_config_route_v3_RouteAction_RequestMirrorPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_RequestMirrorPolicy_msginit, arena, len); @@ -1808,13 +1880,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy *envoy_config_route_v3_R UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy *envoy_config_route_v3_RouteAction_HashPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy *ret = envoy_config_route_v3_RouteAction_HashPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy *envoy_config_route_v3_RouteAction_HashPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy *ret = envoy_config_route_v3_RouteAction_HashPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_HashPolicy_serialize(const envoy_config_route_v3_RouteAction_HashPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_HashPolicy_msginit, arena, len); @@ -1914,13 +1992,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_Header *envoy_config_rou UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_Header *envoy_config_route_v3_RouteAction_HashPolicy_Header_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_Header *ret = envoy_config_route_v3_RouteAction_HashPolicy_Header_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Header_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Header_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_Header *envoy_config_route_v3_RouteAction_HashPolicy_Header_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_Header *ret = envoy_config_route_v3_RouteAction_HashPolicy_Header_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Header_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Header_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_HashPolicy_Header_serialize(const envoy_config_route_v3_RouteAction_HashPolicy_Header *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_HashPolicy_Header_msginit, arena, len); @@ -1955,13 +2039,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_Cookie *envoy_config_rou UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_Cookie *envoy_config_route_v3_RouteAction_HashPolicy_Cookie_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_Cookie *ret = envoy_config_route_v3_RouteAction_HashPolicy_Cookie_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Cookie_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Cookie_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_Cookie *envoy_config_route_v3_RouteAction_HashPolicy_Cookie_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_Cookie *ret = envoy_config_route_v3_RouteAction_HashPolicy_Cookie_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Cookie_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_Cookie_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_HashPolicy_Cookie_serialize(const envoy_config_route_v3_RouteAction_HashPolicy_Cookie *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_HashPolicy_Cookie_msginit, arena, len); @@ -2000,13 +2090,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties *en UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties *envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties *ret = envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties *envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties *ret = envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_serialize(const envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_msginit, arena, len); @@ -2026,13 +2122,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter *envoy_co UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter *envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter *ret = envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter *envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter *ret = envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_serialize(const envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_msginit, arena, len); @@ -2052,13 +2154,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_FilterState *envoy_confi UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_FilterState *envoy_config_route_v3_RouteAction_HashPolicy_FilterState_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_FilterState *ret = envoy_config_route_v3_RouteAction_HashPolicy_FilterState_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_FilterState_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_FilterState_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_HashPolicy_FilterState *envoy_config_route_v3_RouteAction_HashPolicy_FilterState_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_HashPolicy_FilterState *ret = envoy_config_route_v3_RouteAction_HashPolicy_FilterState_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_FilterState_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_HashPolicy_FilterState_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_HashPolicy_FilterState_serialize(const envoy_config_route_v3_RouteAction_HashPolicy_FilterState *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_HashPolicy_FilterState_msginit, arena, len); @@ -2078,13 +2186,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_UpgradeConfig *envoy_config_route_v UPB_INLINE envoy_config_route_v3_RouteAction_UpgradeConfig *envoy_config_route_v3_RouteAction_UpgradeConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_UpgradeConfig *ret = envoy_config_route_v3_RouteAction_UpgradeConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_UpgradeConfig *envoy_config_route_v3_RouteAction_UpgradeConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_UpgradeConfig *ret = envoy_config_route_v3_RouteAction_UpgradeConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_UpgradeConfig_serialize(const envoy_config_route_v3_RouteAction_UpgradeConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_UpgradeConfig_msginit, arena, len); @@ -2134,13 +2248,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig *envoy_ UPB_INLINE envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig *envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig *ret = envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig *envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig *ret = envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_serialize(const envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_msginit, arena, len); @@ -2175,13 +2295,19 @@ UPB_INLINE envoy_config_route_v3_RouteAction_MaxStreamDuration *envoy_config_rou UPB_INLINE envoy_config_route_v3_RouteAction_MaxStreamDuration *envoy_config_route_v3_RouteAction_MaxStreamDuration_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RouteAction_MaxStreamDuration *ret = envoy_config_route_v3_RouteAction_MaxStreamDuration_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_MaxStreamDuration_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_MaxStreamDuration_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RouteAction_MaxStreamDuration *envoy_config_route_v3_RouteAction_MaxStreamDuration_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RouteAction_MaxStreamDuration *ret = envoy_config_route_v3_RouteAction_MaxStreamDuration_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_MaxStreamDuration_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RouteAction_MaxStreamDuration_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RouteAction_MaxStreamDuration_serialize(const envoy_config_route_v3_RouteAction_MaxStreamDuration *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RouteAction_MaxStreamDuration_msginit, arena, len); @@ -2242,13 +2368,19 @@ UPB_INLINE envoy_config_route_v3_RetryPolicy *envoy_config_route_v3_RetryPolicy_ UPB_INLINE envoy_config_route_v3_RetryPolicy *envoy_config_route_v3_RetryPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RetryPolicy *ret = envoy_config_route_v3_RetryPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RetryPolicy *envoy_config_route_v3_RetryPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RetryPolicy *ret = envoy_config_route_v3_RetryPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RetryPolicy_serialize(const envoy_config_route_v3_RetryPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RetryPolicy_msginit, arena, len); @@ -2403,13 +2535,19 @@ UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryPriority *envoy_config_route_v UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryPriority *envoy_config_route_v3_RetryPolicy_RetryPriority_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RetryPriority *ret = envoy_config_route_v3_RetryPolicy_RetryPriority_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryPriority_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryPriority_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryPriority *envoy_config_route_v3_RetryPolicy_RetryPriority_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RetryPriority *ret = envoy_config_route_v3_RetryPolicy_RetryPriority_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryPriority_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryPriority_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RetryPolicy_RetryPriority_serialize(const envoy_config_route_v3_RetryPolicy_RetryPriority *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RetryPolicy_RetryPriority_msginit, arena, len); @@ -2449,13 +2587,19 @@ UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryHostPredicate *envoy_config_ro UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryHostPredicate *envoy_config_route_v3_RetryPolicy_RetryHostPredicate_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RetryHostPredicate *ret = envoy_config_route_v3_RetryPolicy_RetryHostPredicate_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryHostPredicate_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryHostPredicate_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryHostPredicate *envoy_config_route_v3_RetryPolicy_RetryHostPredicate_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RetryHostPredicate *ret = envoy_config_route_v3_RetryPolicy_RetryHostPredicate_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryHostPredicate_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryHostPredicate_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RetryPolicy_RetryHostPredicate_serialize(const envoy_config_route_v3_RetryPolicy_RetryHostPredicate *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RetryPolicy_RetryHostPredicate_msginit, arena, len); @@ -2495,13 +2639,19 @@ UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryBackOff *envoy_config_route_v3 UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryBackOff *envoy_config_route_v3_RetryPolicy_RetryBackOff_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RetryBackOff *ret = envoy_config_route_v3_RetryPolicy_RetryBackOff_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryBackOff_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryBackOff_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RetryPolicy_RetryBackOff *envoy_config_route_v3_RetryPolicy_RetryBackOff_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RetryBackOff *ret = envoy_config_route_v3_RetryPolicy_RetryBackOff_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryBackOff_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RetryBackOff_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RetryPolicy_RetryBackOff_serialize(const envoy_config_route_v3_RetryPolicy_RetryBackOff *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RetryPolicy_RetryBackOff_msginit, arena, len); @@ -2547,13 +2697,19 @@ UPB_INLINE envoy_config_route_v3_RetryPolicy_ResetHeader *envoy_config_route_v3_ UPB_INLINE envoy_config_route_v3_RetryPolicy_ResetHeader *envoy_config_route_v3_RetryPolicy_ResetHeader_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RetryPolicy_ResetHeader *ret = envoy_config_route_v3_RetryPolicy_ResetHeader_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_ResetHeader_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_ResetHeader_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RetryPolicy_ResetHeader *envoy_config_route_v3_RetryPolicy_ResetHeader_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RetryPolicy_ResetHeader *ret = envoy_config_route_v3_RetryPolicy_ResetHeader_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_ResetHeader_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_ResetHeader_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RetryPolicy_ResetHeader_serialize(const envoy_config_route_v3_RetryPolicy_ResetHeader *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RetryPolicy_ResetHeader_msginit, arena, len); @@ -2577,13 +2733,19 @@ UPB_INLINE envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff *envoy_conf UPB_INLINE envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff *envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff *ret = envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff *envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff *ret = envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_serialize(const envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RetryPolicy_RateLimitedRetryBackOff_msginit, arena, len); @@ -2629,13 +2791,19 @@ UPB_INLINE envoy_config_route_v3_HedgePolicy *envoy_config_route_v3_HedgePolicy_ UPB_INLINE envoy_config_route_v3_HedgePolicy *envoy_config_route_v3_HedgePolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_HedgePolicy *ret = envoy_config_route_v3_HedgePolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_HedgePolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_HedgePolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_HedgePolicy *envoy_config_route_v3_HedgePolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_HedgePolicy *ret = envoy_config_route_v3_HedgePolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_HedgePolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_HedgePolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_HedgePolicy_serialize(const envoy_config_route_v3_HedgePolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_HedgePolicy_msginit, arena, len); @@ -2685,13 +2853,19 @@ UPB_INLINE envoy_config_route_v3_RedirectAction *envoy_config_route_v3_RedirectA UPB_INLINE envoy_config_route_v3_RedirectAction *envoy_config_route_v3_RedirectAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RedirectAction *ret = envoy_config_route_v3_RedirectAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RedirectAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RedirectAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RedirectAction *envoy_config_route_v3_RedirectAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RedirectAction *ret = envoy_config_route_v3_RedirectAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RedirectAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RedirectAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RedirectAction_serialize(const envoy_config_route_v3_RedirectAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RedirectAction_msginit, arena, len); @@ -2772,13 +2946,19 @@ UPB_INLINE envoy_config_route_v3_DirectResponseAction *envoy_config_route_v3_Dir UPB_INLINE envoy_config_route_v3_DirectResponseAction *envoy_config_route_v3_DirectResponseAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_DirectResponseAction *ret = envoy_config_route_v3_DirectResponseAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_DirectResponseAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_DirectResponseAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_DirectResponseAction *envoy_config_route_v3_DirectResponseAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_DirectResponseAction *ret = envoy_config_route_v3_DirectResponseAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_DirectResponseAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_DirectResponseAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_DirectResponseAction_serialize(const envoy_config_route_v3_DirectResponseAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_DirectResponseAction_msginit, arena, len); @@ -2813,13 +2993,19 @@ UPB_INLINE envoy_config_route_v3_NonForwardingAction *envoy_config_route_v3_NonF UPB_INLINE envoy_config_route_v3_NonForwardingAction *envoy_config_route_v3_NonForwardingAction_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_NonForwardingAction *ret = envoy_config_route_v3_NonForwardingAction_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_NonForwardingAction_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_NonForwardingAction_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_NonForwardingAction *envoy_config_route_v3_NonForwardingAction_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_NonForwardingAction *ret = envoy_config_route_v3_NonForwardingAction_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_NonForwardingAction_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_NonForwardingAction_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_NonForwardingAction_serialize(const envoy_config_route_v3_NonForwardingAction *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_NonForwardingAction_msginit, arena, len); @@ -2835,13 +3021,19 @@ UPB_INLINE envoy_config_route_v3_Decorator *envoy_config_route_v3_Decorator_new( UPB_INLINE envoy_config_route_v3_Decorator *envoy_config_route_v3_Decorator_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_Decorator *ret = envoy_config_route_v3_Decorator_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_Decorator_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_Decorator_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_Decorator *envoy_config_route_v3_Decorator_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_Decorator *ret = envoy_config_route_v3_Decorator_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_Decorator_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_Decorator_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_Decorator_serialize(const envoy_config_route_v3_Decorator *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_Decorator_msginit, arena, len); @@ -2876,13 +3068,19 @@ UPB_INLINE envoy_config_route_v3_Tracing *envoy_config_route_v3_Tracing_new(upb_ UPB_INLINE envoy_config_route_v3_Tracing *envoy_config_route_v3_Tracing_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_Tracing *ret = envoy_config_route_v3_Tracing_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_Tracing_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_Tracing_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_Tracing *envoy_config_route_v3_Tracing_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_Tracing *ret = envoy_config_route_v3_Tracing_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_Tracing_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_Tracing_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_Tracing_serialize(const envoy_config_route_v3_Tracing *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_Tracing_msginit, arena, len); @@ -2958,13 +3156,19 @@ UPB_INLINE envoy_config_route_v3_VirtualCluster *envoy_config_route_v3_VirtualCl UPB_INLINE envoy_config_route_v3_VirtualCluster *envoy_config_route_v3_VirtualCluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_VirtualCluster *ret = envoy_config_route_v3_VirtualCluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualCluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualCluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_VirtualCluster *envoy_config_route_v3_VirtualCluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_VirtualCluster *ret = envoy_config_route_v3_VirtualCluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualCluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_VirtualCluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_VirtualCluster_serialize(const envoy_config_route_v3_VirtualCluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_VirtualCluster_msginit, arena, len); @@ -2999,13 +3203,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit *envoy_config_route_v3_RateLimit_new( UPB_INLINE envoy_config_route_v3_RateLimit *envoy_config_route_v3_RateLimit_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit *ret = envoy_config_route_v3_RateLimit_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit *envoy_config_route_v3_RateLimit_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit *ret = envoy_config_route_v3_RateLimit_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_serialize(const envoy_config_route_v3_RateLimit *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_msginit, arena, len); @@ -3070,13 +3280,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action *envoy_config_route_v3_RateLim UPB_INLINE envoy_config_route_v3_RateLimit_Action *envoy_config_route_v3_RateLimit_Action_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action *ret = envoy_config_route_v3_RateLimit_Action_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action *envoy_config_route_v3_RateLimit_Action_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action *ret = envoy_config_route_v3_RateLimit_Action_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_serialize(const envoy_config_route_v3_RateLimit_Action *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_msginit, arena, len); @@ -3232,13 +3448,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_SourceCluster *envoy_config_ro UPB_INLINE envoy_config_route_v3_RateLimit_Action_SourceCluster *envoy_config_route_v3_RateLimit_Action_SourceCluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_SourceCluster *ret = envoy_config_route_v3_RateLimit_Action_SourceCluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_SourceCluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_SourceCluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_SourceCluster *envoy_config_route_v3_RateLimit_Action_SourceCluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_SourceCluster *ret = envoy_config_route_v3_RateLimit_Action_SourceCluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_SourceCluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_SourceCluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_SourceCluster_serialize(const envoy_config_route_v3_RateLimit_Action_SourceCluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_SourceCluster_msginit, arena, len); @@ -3254,13 +3476,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_DestinationCluster *envoy_conf UPB_INLINE envoy_config_route_v3_RateLimit_Action_DestinationCluster *envoy_config_route_v3_RateLimit_Action_DestinationCluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_DestinationCluster *ret = envoy_config_route_v3_RateLimit_Action_DestinationCluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DestinationCluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DestinationCluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_DestinationCluster *envoy_config_route_v3_RateLimit_Action_DestinationCluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_DestinationCluster *ret = envoy_config_route_v3_RateLimit_Action_DestinationCluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DestinationCluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DestinationCluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_DestinationCluster_serialize(const envoy_config_route_v3_RateLimit_Action_DestinationCluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_DestinationCluster_msginit, arena, len); @@ -3276,13 +3504,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_RequestHeaders *envoy_config_r UPB_INLINE envoy_config_route_v3_RateLimit_Action_RequestHeaders *envoy_config_route_v3_RateLimit_Action_RequestHeaders_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_RequestHeaders *ret = envoy_config_route_v3_RateLimit_Action_RequestHeaders_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RequestHeaders_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RequestHeaders_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_RequestHeaders *envoy_config_route_v3_RateLimit_Action_RequestHeaders_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_RequestHeaders *ret = envoy_config_route_v3_RateLimit_Action_RequestHeaders_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RequestHeaders_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RequestHeaders_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_RequestHeaders_serialize(const envoy_config_route_v3_RateLimit_Action_RequestHeaders *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_RequestHeaders_msginit, arena, len); @@ -3310,13 +3544,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_RemoteAddress *envoy_config_ro UPB_INLINE envoy_config_route_v3_RateLimit_Action_RemoteAddress *envoy_config_route_v3_RateLimit_Action_RemoteAddress_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_RemoteAddress *ret = envoy_config_route_v3_RateLimit_Action_RemoteAddress_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RemoteAddress_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RemoteAddress_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_RemoteAddress *envoy_config_route_v3_RateLimit_Action_RemoteAddress_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_RemoteAddress *ret = envoy_config_route_v3_RateLimit_Action_RemoteAddress_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RemoteAddress_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_RemoteAddress_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_RemoteAddress_serialize(const envoy_config_route_v3_RateLimit_Action_RemoteAddress *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_RemoteAddress_msginit, arena, len); @@ -3332,13 +3572,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_GenericKey *envoy_config_route UPB_INLINE envoy_config_route_v3_RateLimit_Action_GenericKey *envoy_config_route_v3_RateLimit_Action_GenericKey_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_GenericKey *ret = envoy_config_route_v3_RateLimit_Action_GenericKey_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_GenericKey_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_GenericKey_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_GenericKey *envoy_config_route_v3_RateLimit_Action_GenericKey_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_GenericKey *ret = envoy_config_route_v3_RateLimit_Action_GenericKey_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_GenericKey_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_GenericKey_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_GenericKey_serialize(const envoy_config_route_v3_RateLimit_Action_GenericKey *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_GenericKey_msginit, arena, len); @@ -3362,13 +3608,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_HeaderValueMatch *envoy_config UPB_INLINE envoy_config_route_v3_RateLimit_Action_HeaderValueMatch *envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_HeaderValueMatch *ret = envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_HeaderValueMatch *envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_HeaderValueMatch *ret = envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_serialize(const envoy_config_route_v3_RateLimit_Action_HeaderValueMatch *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_HeaderValueMatch_msginit, arena, len); @@ -3418,13 +3670,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_DynamicMetaData *envoy_config_ UPB_INLINE envoy_config_route_v3_RateLimit_Action_DynamicMetaData *envoy_config_route_v3_RateLimit_Action_DynamicMetaData_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_DynamicMetaData *ret = envoy_config_route_v3_RateLimit_Action_DynamicMetaData_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DynamicMetaData_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DynamicMetaData_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_DynamicMetaData *envoy_config_route_v3_RateLimit_Action_DynamicMetaData_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_DynamicMetaData *ret = envoy_config_route_v3_RateLimit_Action_DynamicMetaData_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DynamicMetaData_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_DynamicMetaData_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_DynamicMetaData_serialize(const envoy_config_route_v3_RateLimit_Action_DynamicMetaData *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_DynamicMetaData_msginit, arena, len); @@ -3463,13 +3721,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Action_MetaData *envoy_config_route_v UPB_INLINE envoy_config_route_v3_RateLimit_Action_MetaData *envoy_config_route_v3_RateLimit_Action_MetaData_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_MetaData *ret = envoy_config_route_v3_RateLimit_Action_MetaData_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_MetaData_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_MetaData_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Action_MetaData *envoy_config_route_v3_RateLimit_Action_MetaData_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Action_MetaData *ret = envoy_config_route_v3_RateLimit_Action_MetaData_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_MetaData_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Action_MetaData_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Action_MetaData_serialize(const envoy_config_route_v3_RateLimit_Action_MetaData *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Action_MetaData_msginit, arena, len); @@ -3512,13 +3776,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Override *envoy_config_route_v3_RateL UPB_INLINE envoy_config_route_v3_RateLimit_Override *envoy_config_route_v3_RateLimit_Override_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Override *ret = envoy_config_route_v3_RateLimit_Override_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Override *envoy_config_route_v3_RateLimit_Override_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Override *ret = envoy_config_route_v3_RateLimit_Override_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Override_serialize(const envoy_config_route_v3_RateLimit_Override *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Override_msginit, arena, len); @@ -3554,13 +3824,19 @@ UPB_INLINE envoy_config_route_v3_RateLimit_Override_DynamicMetadata *envoy_confi UPB_INLINE envoy_config_route_v3_RateLimit_Override_DynamicMetadata *envoy_config_route_v3_RateLimit_Override_DynamicMetadata_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_RateLimit_Override_DynamicMetadata *ret = envoy_config_route_v3_RateLimit_Override_DynamicMetadata_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_DynamicMetadata_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_DynamicMetadata_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_RateLimit_Override_DynamicMetadata *envoy_config_route_v3_RateLimit_Override_DynamicMetadata_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_RateLimit_Override_DynamicMetadata *ret = envoy_config_route_v3_RateLimit_Override_DynamicMetadata_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_DynamicMetadata_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_RateLimit_Override_DynamicMetadata_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_RateLimit_Override_DynamicMetadata_serialize(const envoy_config_route_v3_RateLimit_Override_DynamicMetadata *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_RateLimit_Override_DynamicMetadata_msginit, arena, len); @@ -3591,13 +3867,19 @@ UPB_INLINE envoy_config_route_v3_HeaderMatcher *envoy_config_route_v3_HeaderMatc UPB_INLINE envoy_config_route_v3_HeaderMatcher *envoy_config_route_v3_HeaderMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_HeaderMatcher *ret = envoy_config_route_v3_HeaderMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_HeaderMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_HeaderMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_HeaderMatcher *envoy_config_route_v3_HeaderMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_HeaderMatcher *ret = envoy_config_route_v3_HeaderMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_HeaderMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_HeaderMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_HeaderMatcher_serialize(const envoy_config_route_v3_HeaderMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_HeaderMatcher_msginit, arena, len); @@ -3701,13 +3983,19 @@ UPB_INLINE envoy_config_route_v3_QueryParameterMatcher *envoy_config_route_v3_Qu UPB_INLINE envoy_config_route_v3_QueryParameterMatcher *envoy_config_route_v3_QueryParameterMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_QueryParameterMatcher *ret = envoy_config_route_v3_QueryParameterMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_QueryParameterMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_QueryParameterMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_QueryParameterMatcher *envoy_config_route_v3_QueryParameterMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_QueryParameterMatcher *ret = envoy_config_route_v3_QueryParameterMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_QueryParameterMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_QueryParameterMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_QueryParameterMatcher_serialize(const envoy_config_route_v3_QueryParameterMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_QueryParameterMatcher_msginit, arena, len); @@ -3753,13 +4041,19 @@ UPB_INLINE envoy_config_route_v3_InternalRedirectPolicy *envoy_config_route_v3_I UPB_INLINE envoy_config_route_v3_InternalRedirectPolicy *envoy_config_route_v3_InternalRedirectPolicy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_InternalRedirectPolicy *ret = envoy_config_route_v3_InternalRedirectPolicy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_InternalRedirectPolicy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_InternalRedirectPolicy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_InternalRedirectPolicy *envoy_config_route_v3_InternalRedirectPolicy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_InternalRedirectPolicy *ret = envoy_config_route_v3_InternalRedirectPolicy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_InternalRedirectPolicy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_InternalRedirectPolicy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_InternalRedirectPolicy_serialize(const envoy_config_route_v3_InternalRedirectPolicy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_InternalRedirectPolicy_msginit, arena, len); @@ -3820,13 +4114,19 @@ UPB_INLINE envoy_config_route_v3_FilterConfig *envoy_config_route_v3_FilterConfi UPB_INLINE envoy_config_route_v3_FilterConfig *envoy_config_route_v3_FilterConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_FilterConfig *ret = envoy_config_route_v3_FilterConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_FilterConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_FilterConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_FilterConfig *envoy_config_route_v3_FilterConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_FilterConfig *ret = envoy_config_route_v3_FilterConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_FilterConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_FilterConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_FilterConfig_serialize(const envoy_config_route_v3_FilterConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_FilterConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c b/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c index 301441e3c42..6553b0d889c 100644 --- a/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +++ b/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/route/v3/scoped_route.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -20,16 +20,16 @@ static const upb_msglayout *const envoy_config_route_v3_ScopedRouteConfiguration }; static const upb_msglayout_field envoy_config_route_v3_ScopedRouteConfiguration__fields[4] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {4, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_ScopedRouteConfiguration_msginit = { &envoy_config_route_v3_ScopedRouteConfiguration_submsgs[0], &envoy_config_route_v3_ScopedRouteConfiguration__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; static const upb_msglayout *const envoy_config_route_v3_ScopedRouteConfiguration_Key_submsgs[1] = { @@ -37,23 +37,23 @@ static const upb_msglayout *const envoy_config_route_v3_ScopedRouteConfiguration }; static const upb_msglayout_field envoy_config_route_v3_ScopedRouteConfiguration_Key__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_config_route_v3_ScopedRouteConfiguration_Key_msginit = { &envoy_config_route_v3_ScopedRouteConfiguration_Key_submsgs[0], &envoy_config_route_v3_ScopedRouteConfiguration_Key__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_msginit = { NULL, &envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment__fields[0], - UPB_SIZE(16, 32), 1, false, 255, + UPB_SIZE(16, 32), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h b/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h index 72d1622841f..83b76560cde 100644 --- a/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +++ b/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_ROUTE_V3_SCOPED_ROUTE_PROTO_UPB_H_ #define ENVOY_CONFIG_ROUTE_V3_SCOPED_ROUTE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration *envoy_config_route_v3 UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration *envoy_config_route_v3_ScopedRouteConfiguration_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_ScopedRouteConfiguration *ret = envoy_config_route_v3_ScopedRouteConfiguration_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration *envoy_config_route_v3_ScopedRouteConfiguration_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_ScopedRouteConfiguration *ret = envoy_config_route_v3_ScopedRouteConfiguration_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_ScopedRouteConfiguration_serialize(const envoy_config_route_v3_ScopedRouteConfiguration *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_ScopedRouteConfiguration_msginit, arena, len); @@ -88,13 +94,19 @@ UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration_Key *envoy_config_rout UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration_Key *envoy_config_route_v3_ScopedRouteConfiguration_Key_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_ScopedRouteConfiguration_Key *ret = envoy_config_route_v3_ScopedRouteConfiguration_Key_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration_Key *envoy_config_route_v3_ScopedRouteConfiguration_Key_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_ScopedRouteConfiguration_Key *ret = envoy_config_route_v3_ScopedRouteConfiguration_Key_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_ScopedRouteConfiguration_Key_serialize(const envoy_config_route_v3_ScopedRouteConfiguration_Key *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_ScopedRouteConfiguration_Key_msginit, arena, len); @@ -125,13 +137,19 @@ UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment *envoy_co UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment *envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment *ret = envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment *envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment *ret = envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_serialize(const envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c b/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c index 52cb6b72ba0..a22b93982e5 100644 --- a/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +++ b/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/config/trace/v3/http_tracer.upb.h" #include "google/protobuf/any.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,13 +21,13 @@ static const upb_msglayout *const envoy_config_trace_v3_Tracing_submsgs[1] = { }; static const upb_msglayout_field envoy_config_trace_v3_Tracing__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_trace_v3_Tracing_msginit = { &envoy_config_trace_v3_Tracing_submsgs[0], &envoy_config_trace_v3_Tracing__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_config_trace_v3_Tracing_Http_submsgs[1] = { @@ -35,14 +35,14 @@ static const upb_msglayout *const envoy_config_trace_v3_Tracing_Http_submsgs[1] }; static const upb_msglayout_field envoy_config_trace_v3_Tracing_Http__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_config_trace_v3_Tracing_Http_msginit = { &envoy_config_trace_v3_Tracing_Http_submsgs[0], &envoy_config_trace_v3_Tracing_Http__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h b/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h index 21240fa0e48..fdba74ab307 100644 --- a/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +++ b/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_CONFIG_TRACE_V3_HTTP_TRACER_PROTO_UPB_H_ #define ENVOY_CONFIG_TRACE_V3_HTTP_TRACER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE envoy_config_trace_v3_Tracing *envoy_config_trace_v3_Tracing_new(upb_ UPB_INLINE envoy_config_trace_v3_Tracing *envoy_config_trace_v3_Tracing_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_trace_v3_Tracing *ret = envoy_config_trace_v3_Tracing_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_trace_v3_Tracing *envoy_config_trace_v3_Tracing_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_trace_v3_Tracing *ret = envoy_config_trace_v3_Tracing_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_trace_v3_Tracing_serialize(const envoy_config_trace_v3_Tracing *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_trace_v3_Tracing_msginit, arena, len); @@ -75,13 +81,19 @@ UPB_INLINE envoy_config_trace_v3_Tracing_Http *envoy_config_trace_v3_Tracing_Htt UPB_INLINE envoy_config_trace_v3_Tracing_Http *envoy_config_trace_v3_Tracing_Http_parse(const char *buf, size_t size, upb_arena *arena) { envoy_config_trace_v3_Tracing_Http *ret = envoy_config_trace_v3_Tracing_Http_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_Http_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_Http_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_config_trace_v3_Tracing_Http *envoy_config_trace_v3_Tracing_Http_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_config_trace_v3_Tracing_Http *ret = envoy_config_trace_v3_Tracing_Http_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_Http_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_config_trace_v3_Tracing_Http_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_config_trace_v3_Tracing_Http_serialize(const envoy_config_trace_v3_Tracing_Http *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_config_trace_v3_Tracing_Http_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c b/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c index 308e8b53388..57a0f171680 100644 --- a/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/clusters/aggregate/v3/cluster.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -16,13 +16,13 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_extensions_clusters_aggregate_v3_ClusterConfig__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_extensions_clusters_aggregate_v3_ClusterConfig_msginit = { NULL, &envoy_extensions_clusters_aggregate_v3_ClusterConfig__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h b/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h index ffa4ccbca29..cb61c5bdbd4 100644 --- a/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_CLUSTERS_AGGREGATE_V3_CLUSTER_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_CLUSTERS_AGGREGATE_V3_CLUSTER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_extensions_clusters_aggregate_v3_ClusterConfig *envoy_extension UPB_INLINE envoy_extensions_clusters_aggregate_v3_ClusterConfig *envoy_extensions_clusters_aggregate_v3_ClusterConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_clusters_aggregate_v3_ClusterConfig *ret = envoy_extensions_clusters_aggregate_v3_ClusterConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_clusters_aggregate_v3_ClusterConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_clusters_aggregate_v3_ClusterConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_clusters_aggregate_v3_ClusterConfig *envoy_extensions_clusters_aggregate_v3_ClusterConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_clusters_aggregate_v3_ClusterConfig *ret = envoy_extensions_clusters_aggregate_v3_ClusterConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_clusters_aggregate_v3_ClusterConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_clusters_aggregate_v3_ClusterConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_clusters_aggregate_v3_ClusterConfig_serialize(const envoy_extensions_clusters_aggregate_v3_ClusterConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_clusters_aggregate_v3_ClusterConfig_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c b/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c index 5f92b8d00b2..58e0ddfadb6 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/filters/common/fault/v3/fault.upb.h" #include "envoy/type/v3/percent.upb.h" #include "google/protobuf/duration.upb.h" @@ -24,21 +24,21 @@ static const upb_msglayout *const envoy_extensions_filters_common_fault_v3_Fault }; static const upb_msglayout_field envoy_extensions_filters_common_fault_v3_FaultDelay__fields[3] = { - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, 1}, - {4, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_common_fault_v3_FaultDelay_msginit = { &envoy_extensions_filters_common_fault_v3_FaultDelay_submsgs[0], &envoy_extensions_filters_common_fault_v3_FaultDelay__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 0, 255, }; const upb_msglayout envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_extensions_filters_common_fault_v3_FaultRateLimit_submsgs[3] = { @@ -48,31 +48,31 @@ static const upb_msglayout *const envoy_extensions_filters_common_fault_v3_Fault }; static const upb_msglayout_field envoy_extensions_filters_common_fault_v3_FaultRateLimit__fields[3] = { - {1, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {2, UPB_SIZE(4, 8), 1, 2, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, + {1, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_common_fault_v3_FaultRateLimit_msginit = { &envoy_extensions_filters_common_fault_v3_FaultRateLimit_submsgs[0], &envoy_extensions_filters_common_fault_v3_FaultRateLimit__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout_field envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 4, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 4, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_msginit = { NULL, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; const upb_msglayout envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h b/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h index 8c609170d4e..d20e41a8a9e 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_FILTERS_COMMON_FAULT_V3_FAULT_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_FILTERS_COMMON_FAULT_V3_FAULT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -53,13 +53,19 @@ UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultDelay *envoy_extensions UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultDelay *envoy_extensions_filters_common_fault_v3_FaultDelay_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultDelay *ret = envoy_extensions_filters_common_fault_v3_FaultDelay_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultDelay *envoy_extensions_filters_common_fault_v3_FaultDelay_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultDelay *ret = envoy_extensions_filters_common_fault_v3_FaultDelay_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_common_fault_v3_FaultDelay_serialize(const envoy_extensions_filters_common_fault_v3_FaultDelay *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_common_fault_v3_FaultDelay_msginit, arena, len); @@ -125,13 +131,19 @@ UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay *envo UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay *envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay *ret = envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay *envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay *ret = envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_serialize(const envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay_msginit, arena, len); @@ -147,13 +159,19 @@ UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit *envoy_extens UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit *envoy_extensions_filters_common_fault_v3_FaultRateLimit_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultRateLimit *ret = envoy_extensions_filters_common_fault_v3_FaultRateLimit_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit *envoy_extensions_filters_common_fault_v3_FaultRateLimit_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultRateLimit *ret = envoy_extensions_filters_common_fault_v3_FaultRateLimit_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_common_fault_v3_FaultRateLimit_serialize(const envoy_extensions_filters_common_fault_v3_FaultRateLimit *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_msginit, arena, len); @@ -219,13 +237,19 @@ UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit *e UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit *envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit *ret = envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit *envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit *ret = envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_serialize(const envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_FixedLimit_msginit, arena, len); @@ -245,13 +269,19 @@ UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit * UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit *envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit *ret = envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit *envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit *ret = envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_serialize(const envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c b/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c index e363a2c402d..d2eaa404179 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/filters/http/fault/v3/fault.upb.h" #include "envoy/config/route/v3/route_components.upb.h" #include "envoy/extensions/filters/common/fault/v3/fault.upb.h" @@ -25,22 +25,22 @@ static const upb_msglayout *const envoy_extensions_filters_http_fault_v3_FaultAb }; static const upb_msglayout_field envoy_extensions_filters_http_fault_v3_FaultAbort__fields[4] = { - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 13, 1}, - {3, UPB_SIZE(4, 8), 1, 1, 11, 1}, - {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 13, 1}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 13, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_http_fault_v3_FaultAbort_msginit = { &envoy_extensions_filters_http_fault_v3_FaultAbort_submsgs[0], &envoy_extensions_filters_http_fault_v3_FaultAbort__fields[0], - UPB_SIZE(16, 32), 4, false, 255, + UPB_SIZE(16, 32), 4, false, 0, 255, }; const upb_msglayout envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_extensions_filters_http_fault_v3_HTTPFault_submsgs[5] = { @@ -52,27 +52,27 @@ static const upb_msglayout *const envoy_extensions_filters_http_fault_v3_HTTPFau }; static const upb_msglayout_field envoy_extensions_filters_http_fault_v3_HTTPFault__fields[15] = { - {1, UPB_SIZE(68, 136), 1, 1, 11, 1}, - {2, UPB_SIZE(72, 144), 2, 3, 11, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {4, UPB_SIZE(84, 168), 0, 0, 11, 3}, - {5, UPB_SIZE(88, 176), 0, 0, 9, 3}, - {6, UPB_SIZE(76, 152), 3, 4, 11, 1}, - {7, UPB_SIZE(80, 160), 4, 2, 11, 1}, - {8, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {9, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {10, UPB_SIZE(28, 56), 0, 0, 9, 1}, - {11, UPB_SIZE(36, 72), 0, 0, 9, 1}, - {12, UPB_SIZE(44, 88), 0, 0, 9, 1}, - {13, UPB_SIZE(52, 104), 0, 0, 9, 1}, - {14, UPB_SIZE(60, 120), 0, 0, 9, 1}, - {15, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(68, 136), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(72, 144), 2, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(84, 168), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(88, 176), 0, 0, 9, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(76, 152), 3, 4, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(80, 160), 4, 2, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(28, 56), 0, 0, 9, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(36, 72), 0, 0, 9, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(44, 88), 0, 0, 9, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(52, 104), 0, 0, 9, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(60, 120), 0, 0, 9, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_http_fault_v3_HTTPFault_msginit = { &envoy_extensions_filters_http_fault_v3_HTTPFault_submsgs[0], &envoy_extensions_filters_http_fault_v3_HTTPFault__fields[0], - UPB_SIZE(96, 192), 15, false, 255, + UPB_SIZE(96, 192), 15, false, 15, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h b/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h index 08e71d4c4d8..f5c45dc0e85 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_FILTERS_HTTP_FAULT_V3_FAULT_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_FILTERS_HTTP_FAULT_V3_FAULT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -49,13 +49,19 @@ UPB_INLINE envoy_extensions_filters_http_fault_v3_FaultAbort *envoy_extensions_f UPB_INLINE envoy_extensions_filters_http_fault_v3_FaultAbort *envoy_extensions_filters_http_fault_v3_FaultAbort_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_http_fault_v3_FaultAbort *ret = envoy_extensions_filters_http_fault_v3_FaultAbort_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_http_fault_v3_FaultAbort *envoy_extensions_filters_http_fault_v3_FaultAbort_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_http_fault_v3_FaultAbort *ret = envoy_extensions_filters_http_fault_v3_FaultAbort_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_http_fault_v3_FaultAbort_serialize(const envoy_extensions_filters_http_fault_v3_FaultAbort *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_http_fault_v3_FaultAbort_msginit, arena, len); @@ -118,13 +124,19 @@ UPB_INLINE envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort *envoy_ UPB_INLINE envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort *envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort *ret = envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort *envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort *ret = envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_serialize(const envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_http_fault_v3_FaultAbort_HeaderAbort_msginit, arena, len); @@ -140,13 +152,19 @@ UPB_INLINE envoy_extensions_filters_http_fault_v3_HTTPFault *envoy_extensions_fi UPB_INLINE envoy_extensions_filters_http_fault_v3_HTTPFault *envoy_extensions_filters_http_fault_v3_HTTPFault_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_http_fault_v3_HTTPFault *ret = envoy_extensions_filters_http_fault_v3_HTTPFault_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_HTTPFault_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_HTTPFault_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_http_fault_v3_HTTPFault *envoy_extensions_filters_http_fault_v3_HTTPFault_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_http_fault_v3_HTTPFault *ret = envoy_extensions_filters_http_fault_v3_HTTPFault_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_HTTPFault_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_http_fault_v3_HTTPFault_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_http_fault_v3_HTTPFault_serialize(const envoy_extensions_filters_http_fault_v3_HTTPFault *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_http_fault_v3_HTTPFault_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c b/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c index b69c2cda3fe..e8a14622971 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/filters/http/router/v3/router.upb.h" #include "envoy/config/accesslog/v3/accesslog.upb.h" #include "google/protobuf/wrappers.upb.h" @@ -23,19 +23,19 @@ static const upb_msglayout *const envoy_extensions_filters_http_router_v3_Router }; static const upb_msglayout_field envoy_extensions_filters_http_router_v3_Router__fields[7] = { - {1, UPB_SIZE(8, 8), 1, 1, 11, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {3, UPB_SIZE(12, 16), 0, 0, 11, 3}, - {4, UPB_SIZE(2, 2), 0, 0, 8, 1}, - {5, UPB_SIZE(16, 24), 0, 0, 9, 3}, - {6, UPB_SIZE(3, 3), 0, 0, 8, 1}, - {7, UPB_SIZE(4, 4), 0, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 16), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(2, 2), 0, 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(3, 3), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_http_router_v3_Router_msginit = { &envoy_extensions_filters_http_router_v3_Router_submsgs[0], &envoy_extensions_filters_http_router_v3_Router__fields[0], - UPB_SIZE(24, 32), 7, false, 255, + UPB_SIZE(24, 32), 7, false, 7, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h b/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h index 7174b6c2b07..57100fbcf0e 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_FILTERS_HTTP_ROUTER_V3_ROUTER_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_FILTERS_HTTP_ROUTER_V3_ROUTER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -37,13 +37,19 @@ UPB_INLINE envoy_extensions_filters_http_router_v3_Router *envoy_extensions_filt UPB_INLINE envoy_extensions_filters_http_router_v3_Router *envoy_extensions_filters_http_router_v3_Router_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_http_router_v3_Router *ret = envoy_extensions_filters_http_router_v3_Router_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_http_router_v3_Router_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_http_router_v3_Router_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_http_router_v3_Router *envoy_extensions_filters_http_router_v3_Router_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_http_router_v3_Router *ret = envoy_extensions_filters_http_router_v3_Router_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_http_router_v3_Router_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_http_router_v3_Router_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_http_router_v3_Router_serialize(const envoy_extensions_filters_http_router_v3_Router *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_http_router_v3_Router_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c b/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c index 26db63b6605..91839bf89ed 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h" #include "envoy/config/accesslog/v3/accesslog.upb.h" #include "envoy/config/core/v3/base.upb.h" @@ -58,58 +58,58 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager__fields[46] = { - {1, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {2, UPB_SIZE(32, 32), 0, 0, 9, 1}, - {3, UPB_SIZE(160, 288), UPB_SIZE(-165, -297), 15, 11, 1}, - {4, UPB_SIZE(160, 288), UPB_SIZE(-165, -297), 7, 11, 1}, - {5, UPB_SIZE(144, 256), 0, 13, 11, 3}, - {6, UPB_SIZE(56, 80), 1, 18, 11, 1}, - {7, UPB_SIZE(60, 88), 2, 11, 11, 1}, - {8, UPB_SIZE(64, 96), 3, 1, 11, 1}, - {9, UPB_SIZE(68, 104), 4, 2, 11, 1}, - {10, UPB_SIZE(40, 48), 0, 0, 9, 1}, - {12, UPB_SIZE(72, 112), 5, 19, 11, 1}, - {13, UPB_SIZE(148, 264), 0, 0, 11, 3}, - {14, UPB_SIZE(76, 120), 6, 18, 11, 1}, - {15, UPB_SIZE(80, 128), 7, 18, 11, 1}, - {16, UPB_SIZE(8, 8), 0, 0, 14, 1}, - {17, UPB_SIZE(84, 136), 8, 10, 11, 1}, - {18, UPB_SIZE(24, 24), 0, 0, 8, 1}, - {19, UPB_SIZE(20, 20), 0, 0, 13, 1}, - {20, UPB_SIZE(25, 25), 0, 0, 8, 1}, - {21, UPB_SIZE(26, 26), 0, 0, 8, 1}, - {22, UPB_SIZE(48, 64), 0, 0, 9, 1}, - {23, UPB_SIZE(152, 272), 0, 12, 11, 3}, - {24, UPB_SIZE(88, 144), 9, 19, 11, 1}, - {25, UPB_SIZE(92, 152), 10, 8, 11, 1}, - {26, UPB_SIZE(96, 160), 11, 19, 11, 1}, - {28, UPB_SIZE(100, 168), 12, 19, 11, 1}, - {29, UPB_SIZE(104, 176), 13, 20, 11, 1}, - {30, UPB_SIZE(108, 184), 14, 18, 11, 1}, - {31, UPB_SIZE(160, 288), UPB_SIZE(-165, -297), 17, 11, 1}, - {32, UPB_SIZE(27, 27), 0, 0, 8, 1}, - {33, UPB_SIZE(28, 28), 0, 0, 8, 1}, - {34, UPB_SIZE(12, 12), 0, 0, 14, 1}, - {35, UPB_SIZE(112, 192), 15, 4, 11, 1}, - {36, UPB_SIZE(116, 200), 16, 16, 11, 1}, - {37, UPB_SIZE(29, 29), 0, 0, 8, 1}, - {38, UPB_SIZE(120, 208), 17, 14, 11, 1}, - {39, UPB_SIZE(30, 30), 0, 0, 8, 1}, - {40, UPB_SIZE(124, 216), 18, 18, 11, 1}, - {41, UPB_SIZE(128, 224), 19, 19, 11, 1}, - {42, UPB_SIZE(168, 300), UPB_SIZE(-173, -305), 0, 8, 1}, - {43, UPB_SIZE(132, 232), 20, 9, 11, 1}, - {44, UPB_SIZE(136, 240), 21, 3, 11, 1}, - {45, UPB_SIZE(16, 16), 0, 0, 14, 1}, - {46, UPB_SIZE(156, 280), 0, 6, 11, 3}, - {47, UPB_SIZE(31, 31), 0, 0, 8, 1}, - {48, UPB_SIZE(140, 248), 22, 5, 11, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 32), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(160, 288), UPB_SIZE(-165, -297), 15, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(160, 288), UPB_SIZE(-165, -297), 7, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(144, 256), 0, 13, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(56, 80), 1, 18, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(60, 88), 2, 11, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(64, 96), 3, 1, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(68, 104), 4, 2, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(40, 48), 0, 0, 9, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(72, 112), 5, 19, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(148, 264), 0, 0, 11, _UPB_MODE_ARRAY}, + {14, UPB_SIZE(76, 120), 6, 18, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(80, 128), 7, 18, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(84, 136), 8, 10, 11, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(24, 24), 0, 0, 8, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(20, 20), 0, 0, 13, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(25, 25), 0, 0, 8, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(26, 26), 0, 0, 8, _UPB_MODE_SCALAR}, + {22, UPB_SIZE(48, 64), 0, 0, 9, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(152, 272), 0, 12, 11, _UPB_MODE_ARRAY}, + {24, UPB_SIZE(88, 144), 9, 19, 11, _UPB_MODE_SCALAR}, + {25, UPB_SIZE(92, 152), 10, 8, 11, _UPB_MODE_SCALAR}, + {26, UPB_SIZE(96, 160), 11, 19, 11, _UPB_MODE_SCALAR}, + {28, UPB_SIZE(100, 168), 12, 19, 11, _UPB_MODE_SCALAR}, + {29, UPB_SIZE(104, 176), 13, 20, 11, _UPB_MODE_SCALAR}, + {30, UPB_SIZE(108, 184), 14, 18, 11, _UPB_MODE_SCALAR}, + {31, UPB_SIZE(160, 288), UPB_SIZE(-165, -297), 17, 11, _UPB_MODE_SCALAR}, + {32, UPB_SIZE(27, 27), 0, 0, 8, _UPB_MODE_SCALAR}, + {33, UPB_SIZE(28, 28), 0, 0, 8, _UPB_MODE_SCALAR}, + {34, UPB_SIZE(12, 12), 0, 0, 14, _UPB_MODE_SCALAR}, + {35, UPB_SIZE(112, 192), 15, 4, 11, _UPB_MODE_SCALAR}, + {36, UPB_SIZE(116, 200), 16, 16, 11, _UPB_MODE_SCALAR}, + {37, UPB_SIZE(29, 29), 0, 0, 8, _UPB_MODE_SCALAR}, + {38, UPB_SIZE(120, 208), 17, 14, 11, _UPB_MODE_SCALAR}, + {39, UPB_SIZE(30, 30), 0, 0, 8, _UPB_MODE_SCALAR}, + {40, UPB_SIZE(124, 216), 18, 18, 11, _UPB_MODE_SCALAR}, + {41, UPB_SIZE(128, 224), 19, 19, 11, _UPB_MODE_SCALAR}, + {42, UPB_SIZE(168, 300), UPB_SIZE(-173, -305), 0, 8, _UPB_MODE_SCALAR}, + {43, UPB_SIZE(132, 232), 20, 9, 11, _UPB_MODE_SCALAR}, + {44, UPB_SIZE(136, 240), 21, 3, 11, _UPB_MODE_SCALAR}, + {45, UPB_SIZE(16, 16), 0, 0, 14, _UPB_MODE_SCALAR}, + {46, UPB_SIZE(156, 280), 0, 6, 11, _UPB_MODE_ARRAY}, + {47, UPB_SIZE(31, 31), 0, 0, 8, _UPB_MODE_SCALAR}, + {48, UPB_SIZE(140, 248), 22, 5, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager__fields[0], - UPB_SIZE(176, 320), 46, false, 255, + UPB_SIZE(176, 320), 46, false, 10, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_submsgs[4] = { @@ -120,29 +120,29 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing__fields[7] = { - {3, UPB_SIZE(4, 8), 1, 2, 11, 1}, - {4, UPB_SIZE(8, 16), 2, 2, 11, 1}, - {5, UPB_SIZE(12, 24), 3, 2, 11, 1}, - {6, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {7, UPB_SIZE(16, 32), 4, 3, 11, 1}, - {8, UPB_SIZE(24, 48), 0, 1, 11, 3}, - {9, UPB_SIZE(20, 40), 5, 0, 11, 1}, + {3, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), 2, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(12, 24), 3, 2, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(16, 32), 4, 3, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(24, 48), 0, 1, 11, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(20, 40), 5, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing__fields[0], - UPB_SIZE(32, 56), 7, false, 255, + UPB_SIZE(32, 56), 7, false, 0, 255, }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_msginit = { NULL, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_submsgs[1] = { @@ -150,17 +150,17 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails__fields[5] = { - {1, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {4, UPB_SIZE(2, 2), 0, 0, 8, 1}, - {5, UPB_SIZE(3, 3), 0, 0, 8, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(2, 2), 0, 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(3, 3), 0, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails__fields[0], - UPB_SIZE(16, 16), 5, false, 255, + UPB_SIZE(16, 16), 5, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_submsgs[2] = { @@ -169,15 +169,15 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {3, UPB_SIZE(12, 24), 1, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_submsgs[1] = { @@ -185,14 +185,14 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_submsgs[2] = { @@ -201,14 +201,14 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig__fields[2] = { - {1, UPB_SIZE(8, 16), 0, 1, 11, 3}, - {2, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_submsgs[5] = { @@ -220,17 +220,17 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper__fields[5] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 4, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 1, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 3, 11, 1}, - {5, UPB_SIZE(20, 40), 0, 2, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 4, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 3, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 0, 2, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper__fields[0], - UPB_SIZE(24, 48), 5, false, 255, + UPB_SIZE(24, 48), 5, false, 5, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_Rds_submsgs[1] = { @@ -238,14 +238,14 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_Rds__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_Rds_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_Rds_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_Rds__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_submsgs[1] = { @@ -253,13 +253,13 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_submsgs[4] = { @@ -270,17 +270,17 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes__fields[5] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 3, 11, 1}, - {3, UPB_SIZE(16, 32), 2, 0, 11, 1}, - {4, UPB_SIZE(20, 40), UPB_SIZE(-25, -49), 2, 11, 1}, - {5, UPB_SIZE(20, 40), UPB_SIZE(-25, -49), 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), UPB_SIZE(-25, -49), 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), UPB_SIZE(-25, -49), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 5, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_submsgs[1] = { @@ -288,13 +288,13 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_submsgs[1] = { @@ -302,13 +302,13 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_submsgs[1] = { @@ -316,27 +316,27 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor__fields[4] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 13, 1}, - {4, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 13, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_msginit = { NULL, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_submsgs[1] = { @@ -344,14 +344,14 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_submsgs[2] = { @@ -360,16 +360,16 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter__fields[4] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {4, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 1, 11, 1}, - {5, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 0, 11, 1}, - {6, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(12, 24), UPB_SIZE(-17, -33), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_submsgs[1] = { @@ -377,13 +377,13 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_submsgs[1] = { @@ -391,13 +391,13 @@ static const upb_msglayout *const envoy_extensions_filters_network_http_connecti }; static const upb_msglayout_field envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_msginit = { &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_submsgs[0], &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h b/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h index 3695e2a2cd9..a331e53619c 100644 --- a/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_FILTERS_NETWORK_HTTP_CONNECTION_MANAGER_V3_HTTP_CONNECTION_MANAGER_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_FILTERS_NETWORK_HTTP_CONNECTION_MANAGER_V3_HTTP_CONNECTION_MANAGER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -167,13 +167,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConne UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_msginit, arena, len); @@ -704,13 +710,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConne UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_Tracing_msginit, arena, len); @@ -820,13 +832,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConne UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_InternalAddressConfig_msginit, arena, len); @@ -846,13 +864,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConne UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_SetCurrentClientCertDetails_msginit, arena, len); @@ -899,13 +923,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConne UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_UpgradeConfig_msginit, arena, len); @@ -955,13 +985,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConne UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_PathNormalizationOptions_msginit, arena, len); @@ -1007,13 +1043,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_LocalRepl UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig *envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig *ret = envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig *envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig *ret = envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_msginit, arena, len); @@ -1059,13 +1101,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ResponseM UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper *envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper *ret = envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper *envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper *ret = envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ResponseMapper_msginit, arena, len); @@ -1156,13 +1204,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_Rds *envo UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_Rds *envoy_extensions_filters_network_http_connection_manager_v3_Rds_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_Rds *ret = envoy_extensions_filters_network_http_connection_manager_v3_Rds_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_Rds_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_Rds_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_Rds *envoy_extensions_filters_network_http_connection_manager_v3_Rds_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_Rds *ret = envoy_extensions_filters_network_http_connection_manager_v3_Rds_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_Rds_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_Rds_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_Rds_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_Rds *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_Rds_msginit, arena, len); @@ -1197,13 +1251,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRou UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRouteConfigurationsList_msginit, arena, len); @@ -1234,13 +1294,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRou UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_msginit, arena, len); @@ -1325,13 +1391,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRou UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_msginit, arena, len); @@ -1362,13 +1434,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRou UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_msginit, arena, len); @@ -1404,13 +1482,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRou UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_msginit, arena, len); @@ -1460,13 +1544,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRou UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement_msginit, arena, len); @@ -1490,13 +1580,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds *ret = envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds_msginit, arena, len); @@ -1531,13 +1627,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpFilte UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter *envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter *envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter *ret = envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter_msginit, arena, len); @@ -1596,13 +1698,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_RequestID UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension *envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension *ret = envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension *envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension *ret = envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_RequestIDExtension_msginit, arena, len); @@ -1633,13 +1741,19 @@ UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobi UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager *envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager *ret = envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager *envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager *ret = envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_serialize(const envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_filters_network_http_connection_manager_v3_EnvoyMobileHttpConnectionManager_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c index 44d63a49387..daf1765cccb 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/transport_sockets/tls/v3/cert.upb.h" #include "envoy/extensions/transport_sockets/tls/v3/common.upb.h" #include "envoy/extensions/transport_sockets/tls/v3/secret.upb.h" diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h index f1b24af9e65..0b4d12fa3f4 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_CERT_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_CERT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c index 6bd4e8d7819..0bfb93c5483 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/transport_sockets/tls/v3/common.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/extension.upb.h" @@ -22,16 +22,16 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_TlsParameters__fields[4] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {3, UPB_SIZE(8, 8), 0, 0, 9, 3}, - {4, UPB_SIZE(12, 16), 0, 0, 9, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_TlsParameters_msginit = { NULL, &envoy_extensions_transport_sockets_tls_v3_TlsParameters__fields[0], - UPB_SIZE(16, 24), 4, false, 255, + UPB_SIZE(16, 24), 4, false, 4, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_submsgs[1] = { @@ -39,14 +39,14 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Priv }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_msginit = { &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_TlsCertificate_submsgs[3] = { @@ -56,19 +56,19 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_TlsC }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_TlsCertificate__fields[7] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 0, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 0, 11, 1}, - {5, UPB_SIZE(28, 56), 0, 0, 11, 3}, - {6, UPB_SIZE(20, 40), 5, 2, 11, 1}, - {7, UPB_SIZE(24, 48), 6, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(28, 56), 0, 0, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(20, 40), 5, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(24, 48), 6, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_TlsCertificate_msginit = { &envoy_extensions_transport_sockets_tls_v3_TlsCertificate_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_TlsCertificate__fields[0], - UPB_SIZE(32, 64), 7, false, 255, + UPB_SIZE(32, 64), 7, false, 7, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_submsgs[1] = { @@ -76,13 +76,13 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_TlsS }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_msginit = { &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_submsgs[5] = { @@ -94,22 +94,22 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Cert }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext__fields[10] = { - {1, UPB_SIZE(12, 16), 1, 0, 11, 1}, - {2, UPB_SIZE(32, 56), 0, 0, 9, 3}, - {3, UPB_SIZE(36, 64), 0, 0, 9, 3}, - {6, UPB_SIZE(16, 24), 2, 4, 11, 1}, - {7, UPB_SIZE(20, 32), 3, 0, 11, 1}, - {8, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {9, UPB_SIZE(40, 72), 0, 3, 11, 3}, - {10, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {11, UPB_SIZE(24, 40), 4, 2, 11, 1}, - {12, UPB_SIZE(28, 48), 5, 1, 11, 1}, + {1, UPB_SIZE(12, 16), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 56), 0, 0, 9, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(36, 64), 0, 0, 9, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(16, 24), 2, 4, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(20, 32), 3, 0, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(40, 72), 0, 3, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(24, 40), 4, 2, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(28, 48), 5, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_msginit = { &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext__fields[0], - UPB_SIZE(48, 80), 10, false, 255, + UPB_SIZE(48, 80), 10, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h index e85f14b341f..e554939cc35 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_COMMON_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_COMMON_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -70,13 +70,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsParameters *envoy_extens UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsParameters *envoy_extensions_transport_sockets_tls_v3_TlsParameters_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_TlsParameters *ret = envoy_extensions_transport_sockets_tls_v3_TlsParameters_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsParameters_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsParameters_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsParameters *envoy_extensions_transport_sockets_tls_v3_TlsParameters_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_TlsParameters *ret = envoy_extensions_transport_sockets_tls_v3_TlsParameters_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsParameters_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsParameters_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_TlsParameters_serialize(const envoy_extensions_transport_sockets_tls_v3_TlsParameters *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_TlsParameters_msginit, arena, len); @@ -122,13 +128,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider *envoy_e UPB_INLINE envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider *envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider *ret = envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider *envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider *ret = envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_serialize(const envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_PrivateKeyProvider_msginit, arena, len); @@ -168,13 +180,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsCertificate *envoy_exten UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsCertificate *envoy_extensions_transport_sockets_tls_v3_TlsCertificate_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_TlsCertificate *ret = envoy_extensions_transport_sockets_tls_v3_TlsCertificate_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsCertificate_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsCertificate_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsCertificate *envoy_extensions_transport_sockets_tls_v3_TlsCertificate_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_TlsCertificate *ret = envoy_extensions_transport_sockets_tls_v3_TlsCertificate_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsCertificate_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsCertificate_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_TlsCertificate_serialize(const envoy_extensions_transport_sockets_tls_v3_TlsCertificate *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_TlsCertificate_msginit, arena, len); @@ -295,13 +313,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys *envoy UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys *envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys *ret = envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys *envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys *ret = envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_serialize(const envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_TlsSessionTicketKeys_msginit, arena, len); @@ -332,13 +356,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CertificateValidationContex UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext *envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext *ret = envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext *envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext *ret = envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_serialize(const envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_CertificateValidationContext_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c index 6717a17a024..9b0410c96a9 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/transport_sockets/tls/v3/secret.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/core/v3/config_source.upb.h" @@ -24,13 +24,13 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Gene }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_GenericSecret__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_GenericSecret_msginit = { &envoy_extensions_transport_sockets_tls_v3_GenericSecret_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_GenericSecret__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_submsgs[1] = { @@ -38,14 +38,14 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_SdsS }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_msginit = { &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Secret_submsgs[4] = { @@ -56,17 +56,17 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Secr }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_Secret__fields[5] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, 1}, - {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_Secret_msginit = { &envoy_extensions_transport_sockets_tls_v3_Secret_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_Secret__fields[0], - UPB_SIZE(16, 32), 5, false, 255, + UPB_SIZE(16, 32), 5, false, 5, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h index c576e0adcee..07d2e11aae0 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_SECRET_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_SECRET_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -49,13 +49,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_GenericSecret *envoy_extens UPB_INLINE envoy_extensions_transport_sockets_tls_v3_GenericSecret *envoy_extensions_transport_sockets_tls_v3_GenericSecret_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_GenericSecret *ret = envoy_extensions_transport_sockets_tls_v3_GenericSecret_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_GenericSecret_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_GenericSecret_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_GenericSecret *envoy_extensions_transport_sockets_tls_v3_GenericSecret_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_GenericSecret *ret = envoy_extensions_transport_sockets_tls_v3_GenericSecret_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_GenericSecret_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_GenericSecret_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_GenericSecret_serialize(const envoy_extensions_transport_sockets_tls_v3_GenericSecret *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_GenericSecret_msginit, arena, len); @@ -86,13 +92,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig *envoy_exte UPB_INLINE envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig *envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig *ret = envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig *envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig *ret = envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_serialize(const envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_SdsSecretConfig_msginit, arena, len); @@ -127,13 +139,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_Secret *envoy_extensions_tr UPB_INLINE envoy_extensions_transport_sockets_tls_v3_Secret *envoy_extensions_transport_sockets_tls_v3_Secret_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_Secret *ret = envoy_extensions_transport_sockets_tls_v3_Secret_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_Secret_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_Secret_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_Secret *envoy_extensions_transport_sockets_tls_v3_Secret_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_Secret *ret = envoy_extensions_transport_sockets_tls_v3_Secret_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_Secret_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_Secret_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_Secret_serialize(const envoy_extensions_transport_sockets_tls_v3_Secret *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_Secret_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c index ad5494ce2e6..e9688999a26 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/extensions/transport_sockets/tls/v3/tls.upb.h" #include "envoy/config/core/v3/extension.upb.h" #include "envoy/extensions/transport_sockets/tls/v3/common.upb.h" @@ -27,16 +27,16 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Upst }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext__fields[4] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {4, UPB_SIZE(16, 32), 2, 1, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_msginit = { &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_submsgs[5] = { @@ -48,20 +48,20 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Down }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(12, 16), 2, 3, 11, 1}, - {3, UPB_SIZE(16, 24), 3, 3, 11, 1}, - {4, UPB_SIZE(24, 40), UPB_SIZE(-29, -49), 2, 11, 1}, - {5, UPB_SIZE(24, 40), UPB_SIZE(-29, -49), 1, 11, 1}, - {6, UPB_SIZE(20, 32), 4, 4, 11, 1}, - {7, UPB_SIZE(24, 40), UPB_SIZE(-29, -49), 0, 8, 1}, - {8, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 16), 2, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 3, 3, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), UPB_SIZE(-29, -49), 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(24, 40), UPB_SIZE(-29, -49), 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(20, 32), 4, 4, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(24, 40), UPB_SIZE(-29, -49), 0, 8, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_msginit = { &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext__fields[0], - UPB_SIZE(32, 56), 8, false, 255, + UPB_SIZE(32, 56), 8, false, 8, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_submsgs[8] = { @@ -76,24 +76,24 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Comm }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_CommonTlsContext__fields[12] = { - {1, UPB_SIZE(4, 8), 1, 7, 11, 1}, - {2, UPB_SIZE(20, 40), 0, 6, 11, 3}, - {3, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 1, 11, 1}, - {4, UPB_SIZE(24, 48), 0, 0, 9, 3}, - {6, UPB_SIZE(28, 56), 0, 5, 11, 3}, - {7, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 5, 11, 1}, - {8, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 4, 11, 1}, - {9, UPB_SIZE(8, 16), 2, 2, 11, 1}, - {10, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 2, 11, 1}, - {11, UPB_SIZE(12, 24), 3, 3, 11, 1}, - {12, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 3, 11, 1}, - {13, UPB_SIZE(16, 32), 4, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 7, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 40), 0, 6, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 48), 0, 0, 9, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(28, 56), 0, 5, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 5, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 4, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(8, 16), 2, 2, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 2, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(12, 24), 3, 3, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 3, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(16, 32), 4, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_msginit = { &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext__fields[0], - UPB_SIZE(40, 80), 12, false, 255, + UPB_SIZE(40, 80), 12, false, 4, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_submsgs[1] = { @@ -101,25 +101,25 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Comm }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_msginit = { &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_msginit = { NULL, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_submsgs[4] = { @@ -130,16 +130,16 @@ static const upb_msglayout *const envoy_extensions_transport_sockets_tls_v3_Comm }; static const upb_msglayout_field envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext__fields[4] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 3, 11, 1}, - {3, UPB_SIZE(12, 24), 3, 1, 11, 1}, - {4, UPB_SIZE(16, 32), 4, 2, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 3, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 32), 4, 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_msginit = { &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_submsgs[0], &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h index 8a8ba90b7b2..3b60270ae42 100644 --- a/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +++ b/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_TLS_PROTO_UPB_H_ #define ENVOY_EXTENSIONS_TRANSPORT_SOCKETS_TLS_V3_TLS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -72,13 +72,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext *envoy_e UPB_INLINE envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext *envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext *ret = envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext *envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext *ret = envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_serialize(const envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_msginit, arena, len); @@ -132,13 +138,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext *envoy UPB_INLINE envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext *envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext *ret = envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext *envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext *ret = envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_serialize(const envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_DownstreamTlsContext_msginit, arena, len); @@ -259,13 +271,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext *envoy_ext UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_serialize(const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_msginit, arena, len); @@ -462,13 +480,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_Certificat UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_serialize(const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProvider_msginit, arena, len); @@ -508,13 +532,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_Certificat UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_serialize(const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CertificateProviderInstance_msginit, arena, len); @@ -538,13 +568,19 @@ UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCe UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_parse(const char *buf, size_t size, upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext *ret = envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_serialize(const envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_extensions_transport_sockets_tls_v3_CommonTlsContext_CombinedCertificateValidationContext_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c b/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c index cc8dcc4f567..737242bb897 100644 --- a/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +++ b/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/cluster/v3/cds.upb.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "google/api/annotations.upb.h" @@ -20,7 +20,7 @@ const upb_msglayout envoy_service_cluster_v3_CdsDummy_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h b/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h index 86fa3022b25..e716c68ae16 100644 --- a/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +++ b/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_CLUSTER_V3_CDS_PROTO_UPB_H_ #define ENVOY_SERVICE_CLUSTER_V3_CDS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_service_cluster_v3_CdsDummy *envoy_service_cluster_v3_CdsDummy_ UPB_INLINE envoy_service_cluster_v3_CdsDummy *envoy_service_cluster_v3_CdsDummy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_cluster_v3_CdsDummy *ret = envoy_service_cluster_v3_CdsDummy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_cluster_v3_CdsDummy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_cluster_v3_CdsDummy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_cluster_v3_CdsDummy *envoy_service_cluster_v3_CdsDummy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_cluster_v3_CdsDummy *ret = envoy_service_cluster_v3_CdsDummy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_cluster_v3_CdsDummy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_cluster_v3_CdsDummy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_cluster_v3_CdsDummy_serialize(const envoy_service_cluster_v3_CdsDummy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_cluster_v3_CdsDummy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c b/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c index 7fb8ac990da..f7535f70a9a 100644 --- a/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +++ b/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/discovery/v3/ads.upb.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "udpa/annotations/status.upb.h" @@ -18,7 +18,7 @@ const upb_msglayout envoy_service_discovery_v3_AdsDummy_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h b/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h index 0d26bd97dc5..d2ed5896205 100644 --- a/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +++ b/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_DISCOVERY_V3_ADS_PROTO_UPB_H_ #define ENVOY_SERVICE_DISCOVERY_V3_ADS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_service_discovery_v3_AdsDummy *envoy_service_discovery_v3_AdsDu UPB_INLINE envoy_service_discovery_v3_AdsDummy *envoy_service_discovery_v3_AdsDummy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_AdsDummy *ret = envoy_service_discovery_v3_AdsDummy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_AdsDummy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_AdsDummy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_AdsDummy *envoy_service_discovery_v3_AdsDummy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_AdsDummy *ret = envoy_service_discovery_v3_AdsDummy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_AdsDummy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_AdsDummy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_AdsDummy_serialize(const envoy_service_discovery_v3_AdsDummy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_AdsDummy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c b/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c index a5b6ac46aa3..24795272fd9 100644 --- a/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +++ b/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "google/protobuf/any.upb.h" @@ -24,18 +24,18 @@ static const upb_msglayout *const envoy_service_discovery_v3_DiscoveryRequest_su }; static const upb_msglayout_field envoy_service_discovery_v3_DiscoveryRequest__fields[6] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(28, 56), 1, 0, 11, 1}, - {3, UPB_SIZE(36, 72), 0, 0, 9, 3}, - {4, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {5, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {6, UPB_SIZE(32, 64), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(28, 56), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(36, 72), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(32, 64), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_DiscoveryRequest_msginit = { &envoy_service_discovery_v3_DiscoveryRequest_submsgs[0], &envoy_service_discovery_v3_DiscoveryRequest__fields[0], - UPB_SIZE(40, 80), 6, false, 255, + UPB_SIZE(40, 80), 6, false, 6, 255, }; static const upb_msglayout *const envoy_service_discovery_v3_DiscoveryResponse_submsgs[2] = { @@ -44,18 +44,18 @@ static const upb_msglayout *const envoy_service_discovery_v3_DiscoveryResponse_s }; static const upb_msglayout_field envoy_service_discovery_v3_DiscoveryResponse__fields[6] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(32, 64), 0, 1, 11, 3}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {4, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {5, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {6, UPB_SIZE(28, 56), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 64), 0, 1, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 56), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_DiscoveryResponse_msginit = { &envoy_service_discovery_v3_DiscoveryResponse_submsgs[0], &envoy_service_discovery_v3_DiscoveryResponse__fields[0], - UPB_SIZE(40, 80), 6, false, 255, + UPB_SIZE(40, 80), 6, false, 6, 255, }; static const upb_msglayout *const envoy_service_discovery_v3_DeltaDiscoveryRequest_submsgs[3] = { @@ -65,30 +65,30 @@ static const upb_msglayout *const envoy_service_discovery_v3_DeltaDiscoveryReque }; static const upb_msglayout_field envoy_service_discovery_v3_DeltaDiscoveryRequest__fields[7] = { - {1, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(28, 56), 0, 0, 9, 3}, - {4, UPB_SIZE(32, 64), 0, 0, 9, 3}, - {5, UPB_SIZE(36, 72), 0, 1, 11, _UPB_LABEL_MAP}, - {6, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {7, UPB_SIZE(24, 48), 2, 2, 11, 1}, + {1, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 56), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(32, 64), 0, 0, 9, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(36, 72), 0, 1, 11, _UPB_MODE_MAP}, + {6, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(24, 48), 2, 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_DeltaDiscoveryRequest_msginit = { &envoy_service_discovery_v3_DeltaDiscoveryRequest_submsgs[0], &envoy_service_discovery_v3_DeltaDiscoveryRequest__fields[0], - UPB_SIZE(40, 80), 7, false, 255, + UPB_SIZE(40, 80), 7, false, 7, 255, }; static const upb_msglayout_field envoy_service_discovery_v3_DeltaDiscoveryRequest_InitialResourceVersionsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_DeltaDiscoveryRequest_InitialResourceVersionsEntry_msginit = { NULL, &envoy_service_discovery_v3_DeltaDiscoveryRequest_InitialResourceVersionsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_service_discovery_v3_DeltaDiscoveryResponse_submsgs[2] = { @@ -97,18 +97,18 @@ static const upb_msglayout *const envoy_service_discovery_v3_DeltaDiscoveryRespo }; static const upb_msglayout_field envoy_service_discovery_v3_DeltaDiscoveryResponse__fields[6] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(32, 64), 0, 1, 11, 3}, - {4, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {5, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {6, UPB_SIZE(36, 72), 0, 0, 9, 3}, - {7, UPB_SIZE(28, 56), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 64), 0, 1, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(36, 72), 0, 0, 9, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(28, 56), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_DeltaDiscoveryResponse_msginit = { &envoy_service_discovery_v3_DeltaDiscoveryResponse_submsgs[0], &envoy_service_discovery_v3_DeltaDiscoveryResponse__fields[0], - UPB_SIZE(40, 80), 6, false, 255, + UPB_SIZE(40, 80), 6, false, 2, 255, }; static const upb_msglayout *const envoy_service_discovery_v3_Resource_submsgs[3] = { @@ -118,28 +118,28 @@ static const upb_msglayout *const envoy_service_discovery_v3_Resource_submsgs[3] }; static const upb_msglayout_field envoy_service_discovery_v3_Resource__fields[6] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(20, 40), 1, 1, 11, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {4, UPB_SIZE(32, 64), 0, 0, 9, 3}, - {6, UPB_SIZE(24, 48), 2, 2, 11, 1}, - {7, UPB_SIZE(28, 56), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 40), 1, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 64), 0, 0, 9, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(24, 48), 2, 2, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(28, 56), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_Resource_msginit = { &envoy_service_discovery_v3_Resource_submsgs[0], &envoy_service_discovery_v3_Resource__fields[0], - UPB_SIZE(40, 80), 6, false, 255, + UPB_SIZE(40, 80), 6, false, 4, 255, }; static const upb_msglayout_field envoy_service_discovery_v3_Resource_CacheControl__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_discovery_v3_Resource_CacheControl_msginit = { NULL, &envoy_service_discovery_v3_Resource_CacheControl__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h b/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h index def27876393..105e0330580 100644 --- a/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +++ b/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_DISCOVERY_V3_DISCOVERY_PROTO_UPB_H_ #define ENVOY_SERVICE_DISCOVERY_V3_DISCOVERY_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -61,13 +61,19 @@ UPB_INLINE envoy_service_discovery_v3_DiscoveryRequest *envoy_service_discovery_ UPB_INLINE envoy_service_discovery_v3_DiscoveryRequest *envoy_service_discovery_v3_DiscoveryRequest_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_DiscoveryRequest *ret = envoy_service_discovery_v3_DiscoveryRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_DiscoveryRequest *envoy_service_discovery_v3_DiscoveryRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_DiscoveryRequest *ret = envoy_service_discovery_v3_DiscoveryRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_DiscoveryRequest_serialize(const envoy_service_discovery_v3_DiscoveryRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_DiscoveryRequest_msginit, arena, len); @@ -136,13 +142,19 @@ UPB_INLINE envoy_service_discovery_v3_DiscoveryResponse *envoy_service_discovery UPB_INLINE envoy_service_discovery_v3_DiscoveryResponse *envoy_service_discovery_v3_DiscoveryResponse_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_DiscoveryResponse *ret = envoy_service_discovery_v3_DiscoveryResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_DiscoveryResponse *envoy_service_discovery_v3_DiscoveryResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_DiscoveryResponse *ret = envoy_service_discovery_v3_DiscoveryResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_DiscoveryResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_DiscoveryResponse_serialize(const envoy_service_discovery_v3_DiscoveryResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_DiscoveryResponse_msginit, arena, len); @@ -204,13 +216,19 @@ UPB_INLINE envoy_service_discovery_v3_DeltaDiscoveryRequest *envoy_service_disco UPB_INLINE envoy_service_discovery_v3_DeltaDiscoveryRequest *envoy_service_discovery_v3_DeltaDiscoveryRequest_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_DeltaDiscoveryRequest *ret = envoy_service_discovery_v3_DeltaDiscoveryRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_DeltaDiscoveryRequest *envoy_service_discovery_v3_DeltaDiscoveryRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_DeltaDiscoveryRequest *ret = envoy_service_discovery_v3_DeltaDiscoveryRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_DeltaDiscoveryRequest_serialize(const envoy_service_discovery_v3_DeltaDiscoveryRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_DeltaDiscoveryRequest_msginit, arena, len); @@ -311,13 +329,19 @@ UPB_INLINE envoy_service_discovery_v3_DeltaDiscoveryResponse *envoy_service_disc UPB_INLINE envoy_service_discovery_v3_DeltaDiscoveryResponse *envoy_service_discovery_v3_DeltaDiscoveryResponse_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_DeltaDiscoveryResponse *ret = envoy_service_discovery_v3_DeltaDiscoveryResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_DeltaDiscoveryResponse *envoy_service_discovery_v3_DeltaDiscoveryResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_DeltaDiscoveryResponse *ret = envoy_service_discovery_v3_DeltaDiscoveryResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_DeltaDiscoveryResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_DeltaDiscoveryResponse_serialize(const envoy_service_discovery_v3_DeltaDiscoveryResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_DeltaDiscoveryResponse_msginit, arena, len); @@ -386,13 +410,19 @@ UPB_INLINE envoy_service_discovery_v3_Resource *envoy_service_discovery_v3_Resou UPB_INLINE envoy_service_discovery_v3_Resource *envoy_service_discovery_v3_Resource_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_Resource *ret = envoy_service_discovery_v3_Resource_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_Resource *envoy_service_discovery_v3_Resource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_Resource *ret = envoy_service_discovery_v3_Resource_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_Resource_serialize(const envoy_service_discovery_v3_Resource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_Resource_msginit, arena, len); @@ -472,13 +502,19 @@ UPB_INLINE envoy_service_discovery_v3_Resource_CacheControl *envoy_service_disco UPB_INLINE envoy_service_discovery_v3_Resource_CacheControl *envoy_service_discovery_v3_Resource_CacheControl_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_discovery_v3_Resource_CacheControl *ret = envoy_service_discovery_v3_Resource_CacheControl_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_CacheControl_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_CacheControl_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_discovery_v3_Resource_CacheControl *envoy_service_discovery_v3_Resource_CacheControl_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_discovery_v3_Resource_CacheControl *ret = envoy_service_discovery_v3_Resource_CacheControl_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_CacheControl_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_discovery_v3_Resource_CacheControl_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_discovery_v3_Resource_CacheControl_serialize(const envoy_service_discovery_v3_Resource_CacheControl *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_discovery_v3_Resource_CacheControl_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c b/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c index 0af0480487f..7ceb472338c 100644 --- a/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +++ b/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/endpoint/v3/eds.upb.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "google/api/annotations.upb.h" @@ -20,7 +20,7 @@ const upb_msglayout envoy_service_endpoint_v3_EdsDummy_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h b/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h index 1b1fd3d0a17..565f669f85a 100644 --- a/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +++ b/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_ENDPOINT_V3_EDS_PROTO_UPB_H_ #define ENVOY_SERVICE_ENDPOINT_V3_EDS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_service_endpoint_v3_EdsDummy *envoy_service_endpoint_v3_EdsDumm UPB_INLINE envoy_service_endpoint_v3_EdsDummy *envoy_service_endpoint_v3_EdsDummy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_endpoint_v3_EdsDummy *ret = envoy_service_endpoint_v3_EdsDummy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_endpoint_v3_EdsDummy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_endpoint_v3_EdsDummy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_endpoint_v3_EdsDummy *envoy_service_endpoint_v3_EdsDummy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_endpoint_v3_EdsDummy *ret = envoy_service_endpoint_v3_EdsDummy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_endpoint_v3_EdsDummy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_endpoint_v3_EdsDummy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_endpoint_v3_EdsDummy_serialize(const envoy_service_endpoint_v3_EdsDummy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_endpoint_v3_EdsDummy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c b/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c index 404bfa414ff..87b690955cc 100644 --- a/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +++ b/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/listener/v3/lds.upb.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "google/api/annotations.upb.h" @@ -20,7 +20,7 @@ const upb_msglayout envoy_service_listener_v3_LdsDummy_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h b/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h index 9b8988c1adf..1a20545deb1 100644 --- a/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +++ b/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_LISTENER_V3_LDS_PROTO_UPB_H_ #define ENVOY_SERVICE_LISTENER_V3_LDS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_service_listener_v3_LdsDummy *envoy_service_listener_v3_LdsDumm UPB_INLINE envoy_service_listener_v3_LdsDummy *envoy_service_listener_v3_LdsDummy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_listener_v3_LdsDummy *ret = envoy_service_listener_v3_LdsDummy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_listener_v3_LdsDummy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_listener_v3_LdsDummy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_listener_v3_LdsDummy *envoy_service_listener_v3_LdsDummy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_listener_v3_LdsDummy *ret = envoy_service_listener_v3_LdsDummy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_listener_v3_LdsDummy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_listener_v3_LdsDummy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_listener_v3_LdsDummy_serialize(const envoy_service_listener_v3_LdsDummy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_listener_v3_LdsDummy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c b/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c index 68fe078f090..679b3c32744 100644 --- a/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +++ b/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/load_stats/v3/lrs.upb.h" #include "envoy/config/core/v3/base.upb.h" #include "envoy/config/endpoint/v3/load_report.upb.h" @@ -23,14 +23,14 @@ static const upb_msglayout *const envoy_service_load_stats_v3_LoadStatsRequest_s }; static const upb_msglayout_field envoy_service_load_stats_v3_LoadStatsRequest__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 1, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_service_load_stats_v3_LoadStatsRequest_msginit = { &envoy_service_load_stats_v3_LoadStatsRequest_submsgs[0], &envoy_service_load_stats_v3_LoadStatsRequest__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_service_load_stats_v3_LoadStatsResponse_submsgs[1] = { @@ -38,16 +38,16 @@ static const upb_msglayout *const envoy_service_load_stats_v3_LoadStatsResponse_ }; static const upb_msglayout_field envoy_service_load_stats_v3_LoadStatsResponse__fields[4] = { - {1, UPB_SIZE(8, 16), 0, 0, 9, 3}, - {2, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {4, UPB_SIZE(2, 2), 0, 0, 8, 1}, + {1, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(2, 2), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_load_stats_v3_LoadStatsResponse_msginit = { &envoy_service_load_stats_v3_LoadStatsResponse_submsgs[0], &envoy_service_load_stats_v3_LoadStatsResponse__fields[0], - UPB_SIZE(16, 24), 4, false, 255, + UPB_SIZE(16, 24), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h b/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h index f74a023120a..5146f494f9c 100644 --- a/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +++ b/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_LOAD_STATS_V3_LRS_PROTO_UPB_H_ #define ENVOY_SERVICE_LOAD_STATS_V3_LRS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -42,13 +42,19 @@ UPB_INLINE envoy_service_load_stats_v3_LoadStatsRequest *envoy_service_load_stat UPB_INLINE envoy_service_load_stats_v3_LoadStatsRequest *envoy_service_load_stats_v3_LoadStatsRequest_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_load_stats_v3_LoadStatsRequest *ret = envoy_service_load_stats_v3_LoadStatsRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_load_stats_v3_LoadStatsRequest *envoy_service_load_stats_v3_LoadStatsRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_load_stats_v3_LoadStatsRequest *ret = envoy_service_load_stats_v3_LoadStatsRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_load_stats_v3_LoadStatsRequest_serialize(const envoy_service_load_stats_v3_LoadStatsRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_load_stats_v3_LoadStatsRequest_msginit, arena, len); @@ -94,13 +100,19 @@ UPB_INLINE envoy_service_load_stats_v3_LoadStatsResponse *envoy_service_load_sta UPB_INLINE envoy_service_load_stats_v3_LoadStatsResponse *envoy_service_load_stats_v3_LoadStatsResponse_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_load_stats_v3_LoadStatsResponse *ret = envoy_service_load_stats_v3_LoadStatsResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_load_stats_v3_LoadStatsResponse *envoy_service_load_stats_v3_LoadStatsResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_load_stats_v3_LoadStatsResponse *ret = envoy_service_load_stats_v3_LoadStatsResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_load_stats_v3_LoadStatsResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_load_stats_v3_LoadStatsResponse_serialize(const envoy_service_load_stats_v3_LoadStatsResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_load_stats_v3_LoadStatsResponse_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c b/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c index 07d17f61278..37234550f8d 100644 --- a/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +++ b/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/route/v3/rds.upb.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "google/api/annotations.upb.h" @@ -20,7 +20,7 @@ const upb_msglayout envoy_service_route_v3_RdsDummy_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h b/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h index 40a6d42563f..20eeb8bcbb5 100644 --- a/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +++ b/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_ROUTE_V3_RDS_PROTO_UPB_H_ #define ENVOY_SERVICE_ROUTE_V3_RDS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_service_route_v3_RdsDummy *envoy_service_route_v3_RdsDummy_new( UPB_INLINE envoy_service_route_v3_RdsDummy *envoy_service_route_v3_RdsDummy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_route_v3_RdsDummy *ret = envoy_service_route_v3_RdsDummy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_route_v3_RdsDummy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_route_v3_RdsDummy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_route_v3_RdsDummy *envoy_service_route_v3_RdsDummy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_route_v3_RdsDummy *ret = envoy_service_route_v3_RdsDummy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_route_v3_RdsDummy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_route_v3_RdsDummy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_route_v3_RdsDummy_serialize(const envoy_service_route_v3_RdsDummy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_route_v3_RdsDummy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c b/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c index 6dbaa817c95..01e3110b0f8 100644 --- a/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +++ b/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/route/v3/srds.upb.h" #include "envoy/service/discovery/v3/discovery.upb.h" #include "google/api/annotations.upb.h" @@ -20,7 +20,7 @@ const upb_msglayout envoy_service_route_v3_SrdsDummy_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h b/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h index e86154b742e..a8486d54fbf 100644 --- a/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +++ b/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_ROUTE_V3_SRDS_PROTO_UPB_H_ #define ENVOY_SERVICE_ROUTE_V3_SRDS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_service_route_v3_SrdsDummy *envoy_service_route_v3_SrdsDummy_ne UPB_INLINE envoy_service_route_v3_SrdsDummy *envoy_service_route_v3_SrdsDummy_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_route_v3_SrdsDummy *ret = envoy_service_route_v3_SrdsDummy_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_route_v3_SrdsDummy_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_route_v3_SrdsDummy_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_route_v3_SrdsDummy *envoy_service_route_v3_SrdsDummy_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_route_v3_SrdsDummy *ret = envoy_service_route_v3_SrdsDummy_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_route_v3_SrdsDummy_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_route_v3_SrdsDummy_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_route_v3_SrdsDummy_serialize(const envoy_service_route_v3_SrdsDummy *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_route_v3_SrdsDummy_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c index fa36211f0b5..dae701e8cc0 100644 --- a/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +++ b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/service/status/v3/csds.upb.h" #include "envoy/admin/v3/config_dump.upb.h" #include "envoy/config/core/v3/base.upb.h" @@ -27,14 +27,14 @@ static const upb_msglayout *const envoy_service_status_v3_ClientStatusRequest_su }; static const upb_msglayout_field envoy_service_status_v3_ClientStatusRequest__fields[2] = { - {1, UPB_SIZE(8, 16), 0, 1, 11, 3}, - {2, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_status_v3_ClientStatusRequest_msginit = { &envoy_service_status_v3_ClientStatusRequest_submsgs[0], &envoy_service_status_v3_ClientStatusRequest__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const envoy_service_status_v3_PerXdsConfig_submsgs[5] = { @@ -46,19 +46,19 @@ static const upb_msglayout *const envoy_service_status_v3_PerXdsConfig_submsgs[5 }; static const upb_msglayout_field envoy_service_status_v3_PerXdsConfig__fields[7] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {2, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 2, 11, 1}, - {3, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 0, 11, 1}, - {4, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 3, 11, 1}, - {5, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 4, 11, 1}, - {6, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 1, 11, 1}, - {7, UPB_SIZE(4, 4), 0, 0, 14, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 3, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 4, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_status_v3_PerXdsConfig_msginit = { &envoy_service_status_v3_PerXdsConfig_submsgs[0], &envoy_service_status_v3_PerXdsConfig__fields[0], - UPB_SIZE(16, 24), 7, false, 255, + UPB_SIZE(16, 24), 7, false, 7, 255, }; static const upb_msglayout *const envoy_service_status_v3_ClientConfig_submsgs[3] = { @@ -68,15 +68,15 @@ static const upb_msglayout *const envoy_service_status_v3_ClientConfig_submsgs[3 }; static const upb_msglayout_field envoy_service_status_v3_ClientConfig__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 2, 11, 3}, - {3, UPB_SIZE(12, 24), 0, 1, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 2, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_service_status_v3_ClientConfig_msginit = { &envoy_service_status_v3_ClientConfig_submsgs[0], &envoy_service_status_v3_ClientConfig__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const envoy_service_status_v3_ClientConfig_GenericXdsConfig_submsgs[3] = { @@ -86,21 +86,21 @@ static const upb_msglayout *const envoy_service_status_v3_ClientConfig_GenericXd }; static const upb_msglayout_field envoy_service_status_v3_ClientConfig_GenericXdsConfig__fields[9] = { - {1, UPB_SIZE(16, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(24, 32), 0, 0, 9, 1}, - {3, UPB_SIZE(32, 48), 0, 0, 9, 1}, - {4, UPB_SIZE(40, 64), 1, 1, 11, 1}, - {5, UPB_SIZE(44, 72), 2, 2, 11, 1}, - {6, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {7, UPB_SIZE(8, 8), 0, 0, 14, 1}, - {8, UPB_SIZE(48, 80), 3, 0, 11, 1}, - {9, UPB_SIZE(12, 12), 0, 0, 8, 1}, + {1, UPB_SIZE(16, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 32), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(32, 48), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(40, 64), 1, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(44, 72), 2, 2, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(48, 80), 3, 0, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(12, 12), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_service_status_v3_ClientConfig_GenericXdsConfig_msginit = { &envoy_service_status_v3_ClientConfig_GenericXdsConfig_submsgs[0], &envoy_service_status_v3_ClientConfig_GenericXdsConfig__fields[0], - UPB_SIZE(56, 96), 9, false, 255, + UPB_SIZE(56, 96), 9, false, 9, 255, }; static const upb_msglayout *const envoy_service_status_v3_ClientStatusResponse_submsgs[1] = { @@ -108,13 +108,13 @@ static const upb_msglayout *const envoy_service_status_v3_ClientStatusResponse_s }; static const upb_msglayout_field envoy_service_status_v3_ClientStatusResponse__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_service_status_v3_ClientStatusResponse_msginit = { &envoy_service_status_v3_ClientStatusResponse_submsgs[0], &envoy_service_status_v3_ClientStatusResponse__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h index ffc61cddcd6..56b60471a29 100644 --- a/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +++ b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPB_H_ #define ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -80,13 +80,19 @@ UPB_INLINE envoy_service_status_v3_ClientStatusRequest *envoy_service_status_v3_ UPB_INLINE envoy_service_status_v3_ClientStatusRequest *envoy_service_status_v3_ClientStatusRequest_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_status_v3_ClientStatusRequest *ret = envoy_service_status_v3_ClientStatusRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_status_v3_ClientStatusRequest *envoy_service_status_v3_ClientStatusRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_status_v3_ClientStatusRequest *ret = envoy_service_status_v3_ClientStatusRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_status_v3_ClientStatusRequest_serialize(const envoy_service_status_v3_ClientStatusRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_status_v3_ClientStatusRequest_msginit, arena, len); @@ -132,13 +138,19 @@ UPB_INLINE envoy_service_status_v3_PerXdsConfig *envoy_service_status_v3_PerXdsC UPB_INLINE envoy_service_status_v3_PerXdsConfig *envoy_service_status_v3_PerXdsConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_status_v3_PerXdsConfig *ret = envoy_service_status_v3_PerXdsConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_PerXdsConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_status_v3_PerXdsConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_status_v3_PerXdsConfig *envoy_service_status_v3_PerXdsConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_status_v3_PerXdsConfig *ret = envoy_service_status_v3_PerXdsConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_PerXdsConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_status_v3_PerXdsConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_status_v3_PerXdsConfig_serialize(const envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_status_v3_PerXdsConfig_msginit, arena, len); @@ -242,13 +254,19 @@ UPB_INLINE envoy_service_status_v3_ClientConfig *envoy_service_status_v3_ClientC UPB_INLINE envoy_service_status_v3_ClientConfig *envoy_service_status_v3_ClientConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_status_v3_ClientConfig *ret = envoy_service_status_v3_ClientConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_status_v3_ClientConfig *envoy_service_status_v3_ClientConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_status_v3_ClientConfig *ret = envoy_service_status_v3_ClientConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_status_v3_ClientConfig_serialize(const envoy_service_status_v3_ClientConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_status_v3_ClientConfig_msginit, arena, len); @@ -309,13 +327,19 @@ UPB_INLINE envoy_service_status_v3_ClientConfig_GenericXdsConfig *envoy_service_ UPB_INLINE envoy_service_status_v3_ClientConfig_GenericXdsConfig *envoy_service_status_v3_ClientConfig_GenericXdsConfig_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_status_v3_ClientConfig_GenericXdsConfig *ret = envoy_service_status_v3_ClientConfig_GenericXdsConfig_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_GenericXdsConfig_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_GenericXdsConfig_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_status_v3_ClientConfig_GenericXdsConfig *envoy_service_status_v3_ClientConfig_GenericXdsConfig_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_status_v3_ClientConfig_GenericXdsConfig *ret = envoy_service_status_v3_ClientConfig_GenericXdsConfig_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_GenericXdsConfig_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_GenericXdsConfig_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_status_v3_ClientConfig_GenericXdsConfig_serialize(const envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_status_v3_ClientConfig_GenericXdsConfig_msginit, arena, len); @@ -400,13 +424,19 @@ UPB_INLINE envoy_service_status_v3_ClientStatusResponse *envoy_service_status_v3 UPB_INLINE envoy_service_status_v3_ClientStatusResponse *envoy_service_status_v3_ClientStatusResponse_parse(const char *buf, size_t size, upb_arena *arena) { envoy_service_status_v3_ClientStatusResponse *ret = envoy_service_status_v3_ClientStatusResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_service_status_v3_ClientStatusResponse *envoy_service_status_v3_ClientStatusResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_service_status_v3_ClientStatusResponse *ret = envoy_service_status_v3_ClientStatusResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_service_status_v3_ClientStatusResponse_serialize(const envoy_service_status_v3_ClientStatusResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_service_status_v3_ClientStatusResponse_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c b/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c index 77d6d9a40e4..f3e2dc918cc 100644 --- a/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +++ b/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/http/v3/path_transformation.upb.h" #include "udpa/annotations/status.upb.h" #include "validate/validate.upb.h" @@ -19,13 +19,13 @@ static const upb_msglayout *const envoy_type_http_v3_PathTransformation_submsgs[ }; static const upb_msglayout_field envoy_type_http_v3_PathTransformation__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_type_http_v3_PathTransformation_msginit = { &envoy_type_http_v3_PathTransformation_submsgs[0], &envoy_type_http_v3_PathTransformation__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const envoy_type_http_v3_PathTransformation_Operation_submsgs[2] = { @@ -34,26 +34,26 @@ static const upb_msglayout *const envoy_type_http_v3_PathTransformation_Operatio }; static const upb_msglayout_field envoy_type_http_v3_PathTransformation_Operation__fields[2] = { - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_http_v3_PathTransformation_Operation_msginit = { &envoy_type_http_v3_PathTransformation_Operation_submsgs[0], &envoy_type_http_v3_PathTransformation_Operation__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 0, 255, }; const upb_msglayout envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h b/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h index 2aa31596dc5..725573e6442 100644 --- a/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +++ b/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_HTTP_V3_PATH_TRANSFORMATION_PROTO_UPB_H_ #define ENVOY_TYPE_HTTP_V3_PATH_TRANSFORMATION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -42,13 +42,19 @@ UPB_INLINE envoy_type_http_v3_PathTransformation *envoy_type_http_v3_PathTransfo UPB_INLINE envoy_type_http_v3_PathTransformation *envoy_type_http_v3_PathTransformation_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_http_v3_PathTransformation *ret = envoy_type_http_v3_PathTransformation_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_http_v3_PathTransformation *envoy_type_http_v3_PathTransformation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_http_v3_PathTransformation *ret = envoy_type_http_v3_PathTransformation_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_http_v3_PathTransformation_serialize(const envoy_type_http_v3_PathTransformation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_http_v3_PathTransformation_msginit, arena, len); @@ -79,13 +85,19 @@ UPB_INLINE envoy_type_http_v3_PathTransformation_Operation *envoy_type_http_v3_P UPB_INLINE envoy_type_http_v3_PathTransformation_Operation *envoy_type_http_v3_PathTransformation_Operation_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_http_v3_PathTransformation_Operation *ret = envoy_type_http_v3_PathTransformation_Operation_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_http_v3_PathTransformation_Operation *envoy_type_http_v3_PathTransformation_Operation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_http_v3_PathTransformation_Operation *ret = envoy_type_http_v3_PathTransformation_Operation_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_http_v3_PathTransformation_Operation_serialize(const envoy_type_http_v3_PathTransformation_Operation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_http_v3_PathTransformation_Operation_msginit, arena, len); @@ -136,13 +148,19 @@ UPB_INLINE envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986 UPB_INLINE envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986 *envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986 *ret = envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986 *envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986 *ret = envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_serialize(const envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986 *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_http_v3_PathTransformation_Operation_NormalizePathRFC3986_msginit, arena, len); @@ -158,13 +176,19 @@ UPB_INLINE envoy_type_http_v3_PathTransformation_Operation_MergeSlashes *envoy_t UPB_INLINE envoy_type_http_v3_PathTransformation_Operation_MergeSlashes *envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_http_v3_PathTransformation_Operation_MergeSlashes *ret = envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_http_v3_PathTransformation_Operation_MergeSlashes *envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_http_v3_PathTransformation_Operation_MergeSlashes *ret = envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_serialize(const envoy_type_http_v3_PathTransformation_Operation_MergeSlashes *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_http_v3_PathTransformation_Operation_MergeSlashes_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c index 7fdf5b9fea7..054823949ac 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/metadata.upb.h" #include "envoy/type/matcher/v3/value.upb.h" #include "udpa/annotations/status.upb.h" @@ -22,25 +22,25 @@ static const upb_msglayout *const envoy_type_matcher_v3_MetadataMatcher_submsgs[ }; static const upb_msglayout_field envoy_type_matcher_v3_MetadataMatcher__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {3, UPB_SIZE(12, 24), 1, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_MetadataMatcher_msginit = { &envoy_type_matcher_v3_MetadataMatcher_submsgs[0], &envoy_type_matcher_v3_MetadataMatcher__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout_field envoy_type_matcher_v3_MetadataMatcher_PathSegment__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_MetadataMatcher_PathSegment_msginit = { NULL, &envoy_type_matcher_v3_MetadataMatcher_PathSegment__fields[0], - UPB_SIZE(16, 32), 1, false, 255, + UPB_SIZE(16, 32), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h index a7f17c14488..18209e03e99 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_METADATA_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_METADATA_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE envoy_type_matcher_v3_MetadataMatcher *envoy_type_matcher_v3_Metadata UPB_INLINE envoy_type_matcher_v3_MetadataMatcher *envoy_type_matcher_v3_MetadataMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_MetadataMatcher *ret = envoy_type_matcher_v3_MetadataMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_MetadataMatcher *envoy_type_matcher_v3_MetadataMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_MetadataMatcher *ret = envoy_type_matcher_v3_MetadataMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_MetadataMatcher_serialize(const envoy_type_matcher_v3_MetadataMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_MetadataMatcher_msginit, arena, len); @@ -94,13 +100,19 @@ UPB_INLINE envoy_type_matcher_v3_MetadataMatcher_PathSegment *envoy_type_matcher UPB_INLINE envoy_type_matcher_v3_MetadataMatcher_PathSegment *envoy_type_matcher_v3_MetadataMatcher_PathSegment_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_MetadataMatcher_PathSegment *ret = envoy_type_matcher_v3_MetadataMatcher_PathSegment_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_PathSegment_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_PathSegment_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_MetadataMatcher_PathSegment *envoy_type_matcher_v3_MetadataMatcher_PathSegment_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_MetadataMatcher_PathSegment *ret = envoy_type_matcher_v3_MetadataMatcher_PathSegment_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_PathSegment_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_MetadataMatcher_PathSegment_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_MetadataMatcher_PathSegment_serialize(const envoy_type_matcher_v3_MetadataMatcher_PathSegment *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_MetadataMatcher_PathSegment_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c index 8ef51fb91ec..3ae84d4d134 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/node.upb.h" #include "envoy/type/matcher/v3/string.upb.h" #include "envoy/type/matcher/v3/struct.upb.h" @@ -22,14 +22,14 @@ static const upb_msglayout *const envoy_type_matcher_v3_NodeMatcher_submsgs[2] = }; static const upb_msglayout_field envoy_type_matcher_v3_NodeMatcher__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 1, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_type_matcher_v3_NodeMatcher_msginit = { &envoy_type_matcher_v3_NodeMatcher_submsgs[0], &envoy_type_matcher_v3_NodeMatcher__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h index 94e2257fdfc..78873ad32d0 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -37,13 +37,19 @@ UPB_INLINE envoy_type_matcher_v3_NodeMatcher *envoy_type_matcher_v3_NodeMatcher_ UPB_INLINE envoy_type_matcher_v3_NodeMatcher *envoy_type_matcher_v3_NodeMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_NodeMatcher *ret = envoy_type_matcher_v3_NodeMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_NodeMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_NodeMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_NodeMatcher *envoy_type_matcher_v3_NodeMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_NodeMatcher *ret = envoy_type_matcher_v3_NodeMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_NodeMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_NodeMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_NodeMatcher_serialize(const envoy_type_matcher_v3_NodeMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_NodeMatcher_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c index 516755b0bf7..cb116d05606 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/number.upb.h" #include "envoy/type/v3/range.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,14 +21,14 @@ static const upb_msglayout *const envoy_type_matcher_v3_DoubleMatcher_submsgs[1] }; static const upb_msglayout_field envoy_type_matcher_v3_DoubleMatcher__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -9), 0, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -9), 0, 1, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -9), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -9), 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_DoubleMatcher_msginit = { &envoy_type_matcher_v3_DoubleMatcher_submsgs[0], &envoy_type_matcher_v3_DoubleMatcher__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h index ebca3037aa5..1a4c14587f1 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_NUMBER_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_NUMBER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_type_matcher_v3_DoubleMatcher *envoy_type_matcher_v3_DoubleMatc UPB_INLINE envoy_type_matcher_v3_DoubleMatcher *envoy_type_matcher_v3_DoubleMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_DoubleMatcher *ret = envoy_type_matcher_v3_DoubleMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_DoubleMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_DoubleMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_DoubleMatcher *envoy_type_matcher_v3_DoubleMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_DoubleMatcher *ret = envoy_type_matcher_v3_DoubleMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_DoubleMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_DoubleMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_DoubleMatcher_serialize(const envoy_type_matcher_v3_DoubleMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_DoubleMatcher_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c index caef3395638..822084c0965 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/path.upb.h" #include "envoy/type/matcher/v3/string.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,13 +21,13 @@ static const upb_msglayout *const envoy_type_matcher_v3_PathMatcher_submsgs[1] = }; static const upb_msglayout_field envoy_type_matcher_v3_PathMatcher__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_PathMatcher_msginit = { &envoy_type_matcher_v3_PathMatcher_submsgs[0], &envoy_type_matcher_v3_PathMatcher__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h index defbcf02640..1c0e40bd8ee 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_PATH_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_PATH_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE envoy_type_matcher_v3_PathMatcher *envoy_type_matcher_v3_PathMatcher_ UPB_INLINE envoy_type_matcher_v3_PathMatcher *envoy_type_matcher_v3_PathMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_PathMatcher *ret = envoy_type_matcher_v3_PathMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_PathMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_PathMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_PathMatcher *envoy_type_matcher_v3_PathMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_PathMatcher *ret = envoy_type_matcher_v3_PathMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_PathMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_PathMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_PathMatcher_serialize(const envoy_type_matcher_v3_PathMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_PathMatcher_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c index d7d645ad960..115fa08425a 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/regex.upb.h" #include "google/protobuf/wrappers.upb.h" #include "envoy/annotations/deprecation.upb.h" @@ -22,14 +22,14 @@ static const upb_msglayout *const envoy_type_matcher_v3_RegexMatcher_submsgs[1] }; static const upb_msglayout_field envoy_type_matcher_v3_RegexMatcher__fields[2] = { - {1, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_RegexMatcher_msginit = { &envoy_type_matcher_v3_RegexMatcher_submsgs[0], &envoy_type_matcher_v3_RegexMatcher__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_type_matcher_v3_RegexMatcher_GoogleRE2_submsgs[1] = { @@ -37,13 +37,13 @@ static const upb_msglayout *const envoy_type_matcher_v3_RegexMatcher_GoogleRE2_s }; static const upb_msglayout_field envoy_type_matcher_v3_RegexMatcher_GoogleRE2__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_RegexMatcher_GoogleRE2_msginit = { &envoy_type_matcher_v3_RegexMatcher_GoogleRE2_submsgs[0], &envoy_type_matcher_v3_RegexMatcher_GoogleRE2__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const envoy_type_matcher_v3_RegexMatchAndSubstitute_submsgs[1] = { @@ -51,14 +51,14 @@ static const upb_msglayout *const envoy_type_matcher_v3_RegexMatchAndSubstitute_ }; static const upb_msglayout_field envoy_type_matcher_v3_RegexMatchAndSubstitute__fields[2] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_RegexMatchAndSubstitute_msginit = { &envoy_type_matcher_v3_RegexMatchAndSubstitute_submsgs[0], &envoy_type_matcher_v3_RegexMatchAndSubstitute__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h index 5e00d13f189..ce7d14ec712 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_REGEX_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_REGEX_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -41,13 +41,19 @@ UPB_INLINE envoy_type_matcher_v3_RegexMatcher *envoy_type_matcher_v3_RegexMatche UPB_INLINE envoy_type_matcher_v3_RegexMatcher *envoy_type_matcher_v3_RegexMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_RegexMatcher *ret = envoy_type_matcher_v3_RegexMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_RegexMatcher *envoy_type_matcher_v3_RegexMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_RegexMatcher *ret = envoy_type_matcher_v3_RegexMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_RegexMatcher_serialize(const envoy_type_matcher_v3_RegexMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_RegexMatcher_msginit, arena, len); @@ -87,13 +93,19 @@ UPB_INLINE envoy_type_matcher_v3_RegexMatcher_GoogleRE2 *envoy_type_matcher_v3_R UPB_INLINE envoy_type_matcher_v3_RegexMatcher_GoogleRE2 *envoy_type_matcher_v3_RegexMatcher_GoogleRE2_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_RegexMatcher_GoogleRE2 *ret = envoy_type_matcher_v3_RegexMatcher_GoogleRE2_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_GoogleRE2_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_GoogleRE2_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_RegexMatcher_GoogleRE2 *envoy_type_matcher_v3_RegexMatcher_GoogleRE2_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_RegexMatcher_GoogleRE2 *ret = envoy_type_matcher_v3_RegexMatcher_GoogleRE2_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_GoogleRE2_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatcher_GoogleRE2_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_RegexMatcher_GoogleRE2_serialize(const envoy_type_matcher_v3_RegexMatcher_GoogleRE2 *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_RegexMatcher_GoogleRE2_msginit, arena, len); @@ -124,13 +136,19 @@ UPB_INLINE envoy_type_matcher_v3_RegexMatchAndSubstitute *envoy_type_matcher_v3_ UPB_INLINE envoy_type_matcher_v3_RegexMatchAndSubstitute *envoy_type_matcher_v3_RegexMatchAndSubstitute_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_RegexMatchAndSubstitute *ret = envoy_type_matcher_v3_RegexMatchAndSubstitute_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatchAndSubstitute_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatchAndSubstitute_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_RegexMatchAndSubstitute *envoy_type_matcher_v3_RegexMatchAndSubstitute_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_RegexMatchAndSubstitute *ret = envoy_type_matcher_v3_RegexMatchAndSubstitute_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatchAndSubstitute_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_RegexMatchAndSubstitute_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_RegexMatchAndSubstitute_serialize(const envoy_type_matcher_v3_RegexMatchAndSubstitute *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_RegexMatchAndSubstitute_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c index e84e4f7c928..a0c367d0a1d 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/string.upb.h" #include "envoy/type/matcher/v3/regex.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,18 +21,18 @@ static const upb_msglayout *const envoy_type_matcher_v3_StringMatcher_submsgs[1] }; static const upb_msglayout_field envoy_type_matcher_v3_StringMatcher__fields[6] = { - {1, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, 1}, - {2, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, 1}, - {3, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, 1}, - {5, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 11, 1}, - {6, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {7, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, 1}, + {1, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_StringMatcher_msginit = { &envoy_type_matcher_v3_StringMatcher_submsgs[0], &envoy_type_matcher_v3_StringMatcher__fields[0], - UPB_SIZE(16, 32), 6, false, 255, + UPB_SIZE(16, 32), 6, false, 3, 255, }; static const upb_msglayout *const envoy_type_matcher_v3_ListStringMatcher_submsgs[1] = { @@ -40,13 +40,13 @@ static const upb_msglayout *const envoy_type_matcher_v3_ListStringMatcher_submsg }; static const upb_msglayout_field envoy_type_matcher_v3_ListStringMatcher__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_type_matcher_v3_ListStringMatcher_msginit = { &envoy_type_matcher_v3_ListStringMatcher_submsgs[0], &envoy_type_matcher_v3_ListStringMatcher__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h index 4bce450ca8b..05313a26aef 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_STRING_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_STRING_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE envoy_type_matcher_v3_StringMatcher *envoy_type_matcher_v3_StringMatc UPB_INLINE envoy_type_matcher_v3_StringMatcher *envoy_type_matcher_v3_StringMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_StringMatcher *ret = envoy_type_matcher_v3_StringMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_StringMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_StringMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_StringMatcher *envoy_type_matcher_v3_StringMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_StringMatcher *ret = envoy_type_matcher_v3_StringMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_StringMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_StringMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_StringMatcher_serialize(const envoy_type_matcher_v3_StringMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_StringMatcher_msginit, arena, len); @@ -108,13 +114,19 @@ UPB_INLINE envoy_type_matcher_v3_ListStringMatcher *envoy_type_matcher_v3_ListSt UPB_INLINE envoy_type_matcher_v3_ListStringMatcher *envoy_type_matcher_v3_ListStringMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_ListStringMatcher *ret = envoy_type_matcher_v3_ListStringMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListStringMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListStringMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_ListStringMatcher *envoy_type_matcher_v3_ListStringMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_ListStringMatcher *ret = envoy_type_matcher_v3_ListStringMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListStringMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListStringMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_ListStringMatcher_serialize(const envoy_type_matcher_v3_ListStringMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_ListStringMatcher_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c index 05ea6a3ffcb..7fef88683f6 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/struct.upb.h" #include "envoy/type/matcher/v3/value.upb.h" #include "udpa/annotations/status.upb.h" @@ -22,24 +22,24 @@ static const upb_msglayout *const envoy_type_matcher_v3_StructMatcher_submsgs[2] }; static const upb_msglayout_field envoy_type_matcher_v3_StructMatcher__fields[2] = { - {2, UPB_SIZE(8, 16), 0, 0, 11, 3}, - {3, UPB_SIZE(4, 8), 1, 1, 11, 1}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_StructMatcher_msginit = { &envoy_type_matcher_v3_StructMatcher_submsgs[0], &envoy_type_matcher_v3_StructMatcher__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 0, 255, }; static const upb_msglayout_field envoy_type_matcher_v3_StructMatcher_PathSegment__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_StructMatcher_PathSegment_msginit = { NULL, &envoy_type_matcher_v3_StructMatcher_PathSegment__fields[0], - UPB_SIZE(16, 32), 1, false, 255, + UPB_SIZE(16, 32), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h index 53e521385de..a7939b7c395 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE envoy_type_matcher_v3_StructMatcher *envoy_type_matcher_v3_StructMatc UPB_INLINE envoy_type_matcher_v3_StructMatcher *envoy_type_matcher_v3_StructMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_StructMatcher *ret = envoy_type_matcher_v3_StructMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_StructMatcher *envoy_type_matcher_v3_StructMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_StructMatcher *ret = envoy_type_matcher_v3_StructMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_StructMatcher_serialize(const envoy_type_matcher_v3_StructMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_StructMatcher_msginit, arena, len); @@ -90,13 +96,19 @@ UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment *envoy_type_matcher_v UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment *envoy_type_matcher_v3_StructMatcher_PathSegment_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_StructMatcher_PathSegment *ret = envoy_type_matcher_v3_StructMatcher_PathSegment_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment *envoy_type_matcher_v3_StructMatcher_PathSegment_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_StructMatcher_PathSegment *ret = envoy_type_matcher_v3_StructMatcher_PathSegment_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_StructMatcher_PathSegment_serialize(const envoy_type_matcher_v3_StructMatcher_PathSegment *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c index 0195307d0cd..5f28e3503e3 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/matcher/v3/value.upb.h" #include "envoy/type/matcher/v3/number.upb.h" #include "envoy/type/matcher/v3/string.upb.h" @@ -25,24 +25,24 @@ static const upb_msglayout *const envoy_type_matcher_v3_ValueMatcher_submsgs[4] }; static const upb_msglayout_field envoy_type_matcher_v3_ValueMatcher__fields[6] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_ValueMatcher_msginit = { &envoy_type_matcher_v3_ValueMatcher_submsgs[0], &envoy_type_matcher_v3_ValueMatcher__fields[0], - UPB_SIZE(8, 16), 6, false, 255, + UPB_SIZE(8, 16), 6, false, 6, 255, }; const upb_msglayout envoy_type_matcher_v3_ValueMatcher_NullMatch_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; static const upb_msglayout *const envoy_type_matcher_v3_ListMatcher_submsgs[1] = { @@ -50,13 +50,13 @@ static const upb_msglayout *const envoy_type_matcher_v3_ListMatcher_submsgs[1] = }; static const upb_msglayout_field envoy_type_matcher_v3_ListMatcher__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_matcher_v3_ListMatcher_msginit = { &envoy_type_matcher_v3_ListMatcher_submsgs[0], &envoy_type_matcher_v3_ListMatcher__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h index dc44445f8f3..0310b45f94c 100644 --- a/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_MATCHER_V3_VALUE_PROTO_UPB_H_ #define ENVOY_TYPE_MATCHER_V3_VALUE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -43,13 +43,19 @@ UPB_INLINE envoy_type_matcher_v3_ValueMatcher *envoy_type_matcher_v3_ValueMatche UPB_INLINE envoy_type_matcher_v3_ValueMatcher *envoy_type_matcher_v3_ValueMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_ValueMatcher *ret = envoy_type_matcher_v3_ValueMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_ValueMatcher *envoy_type_matcher_v3_ValueMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_ValueMatcher *ret = envoy_type_matcher_v3_ValueMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_ValueMatcher_serialize(const envoy_type_matcher_v3_ValueMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_ValueMatcher_msginit, arena, len); @@ -142,13 +148,19 @@ UPB_INLINE envoy_type_matcher_v3_ValueMatcher_NullMatch *envoy_type_matcher_v3_V UPB_INLINE envoy_type_matcher_v3_ValueMatcher_NullMatch *envoy_type_matcher_v3_ValueMatcher_NullMatch_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_ValueMatcher_NullMatch *ret = envoy_type_matcher_v3_ValueMatcher_NullMatch_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_NullMatch_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_NullMatch_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_ValueMatcher_NullMatch *envoy_type_matcher_v3_ValueMatcher_NullMatch_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_ValueMatcher_NullMatch *ret = envoy_type_matcher_v3_ValueMatcher_NullMatch_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_NullMatch_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_ValueMatcher_NullMatch_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_ValueMatcher_NullMatch_serialize(const envoy_type_matcher_v3_ValueMatcher_NullMatch *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_ValueMatcher_NullMatch_msginit, arena, len); @@ -164,13 +176,19 @@ UPB_INLINE envoy_type_matcher_v3_ListMatcher *envoy_type_matcher_v3_ListMatcher_ UPB_INLINE envoy_type_matcher_v3_ListMatcher *envoy_type_matcher_v3_ListMatcher_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_matcher_v3_ListMatcher *ret = envoy_type_matcher_v3_ListMatcher_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListMatcher_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListMatcher_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_matcher_v3_ListMatcher *envoy_type_matcher_v3_ListMatcher_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_matcher_v3_ListMatcher *ret = envoy_type_matcher_v3_ListMatcher_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListMatcher_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_matcher_v3_ListMatcher_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_matcher_v3_ListMatcher_serialize(const envoy_type_matcher_v3_ListMatcher *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_matcher_v3_ListMatcher_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c b/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c index e692eda96f3..33174f95443 100644 --- a/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +++ b/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/metadata/v3/metadata.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -20,24 +20,24 @@ static const upb_msglayout *const envoy_type_metadata_v3_MetadataKey_submsgs[1] }; static const upb_msglayout_field envoy_type_metadata_v3_MetadataKey__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout envoy_type_metadata_v3_MetadataKey_msginit = { &envoy_type_metadata_v3_MetadataKey_submsgs[0], &envoy_type_metadata_v3_MetadataKey__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_type_metadata_v3_MetadataKey_PathSegment__fields[1] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_metadata_v3_MetadataKey_PathSegment_msginit = { NULL, &envoy_type_metadata_v3_MetadataKey_PathSegment__fields[0], - UPB_SIZE(16, 32), 1, false, 255, + UPB_SIZE(16, 32), 1, false, 1, 255, }; static const upb_msglayout *const envoy_type_metadata_v3_MetadataKind_submsgs[4] = { @@ -48,40 +48,40 @@ static const upb_msglayout *const envoy_type_metadata_v3_MetadataKind_submsgs[4] }; static const upb_msglayout_field envoy_type_metadata_v3_MetadataKind__fields[4] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_metadata_v3_MetadataKind_msginit = { &envoy_type_metadata_v3_MetadataKind_submsgs[0], &envoy_type_metadata_v3_MetadataKind__fields[0], - UPB_SIZE(8, 16), 4, false, 255, + UPB_SIZE(8, 16), 4, false, 4, 255, }; const upb_msglayout envoy_type_metadata_v3_MetadataKind_Request_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_type_metadata_v3_MetadataKind_Route_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_type_metadata_v3_MetadataKind_Cluster_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; const upb_msglayout envoy_type_metadata_v3_MetadataKind_Host_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h b/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h index 83ac93cf529..48a0da1af27 100644 --- a/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +++ b/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_METADATA_V3_METADATA_PROTO_UPB_H_ #define ENVOY_TYPE_METADATA_V3_METADATA_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -51,13 +51,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKey *envoy_type_metadata_v3_MetadataKe UPB_INLINE envoy_type_metadata_v3_MetadataKey *envoy_type_metadata_v3_MetadataKey_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKey *ret = envoy_type_metadata_v3_MetadataKey_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKey *envoy_type_metadata_v3_MetadataKey_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKey *ret = envoy_type_metadata_v3_MetadataKey_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKey_serialize(const envoy_type_metadata_v3_MetadataKey *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKey_msginit, arena, len); @@ -92,13 +98,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKey_PathSegment *envoy_type_metadata_v UPB_INLINE envoy_type_metadata_v3_MetadataKey_PathSegment *envoy_type_metadata_v3_MetadataKey_PathSegment_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKey_PathSegment *ret = envoy_type_metadata_v3_MetadataKey_PathSegment_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_PathSegment_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_PathSegment_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKey_PathSegment *envoy_type_metadata_v3_MetadataKey_PathSegment_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKey_PathSegment *ret = envoy_type_metadata_v3_MetadataKey_PathSegment_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_PathSegment_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKey_PathSegment_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKey_PathSegment_serialize(const envoy_type_metadata_v3_MetadataKey_PathSegment *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKey_PathSegment_msginit, arena, len); @@ -125,13 +137,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKind *envoy_type_metadata_v3_MetadataK UPB_INLINE envoy_type_metadata_v3_MetadataKind *envoy_type_metadata_v3_MetadataKind_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKind *ret = envoy_type_metadata_v3_MetadataKind_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKind *envoy_type_metadata_v3_MetadataKind_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKind *ret = envoy_type_metadata_v3_MetadataKind_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKind_serialize(const envoy_type_metadata_v3_MetadataKind *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKind_msginit, arena, len); @@ -212,13 +230,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKind_Request *envoy_type_metadata_v3_M UPB_INLINE envoy_type_metadata_v3_MetadataKind_Request *envoy_type_metadata_v3_MetadataKind_Request_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Request *ret = envoy_type_metadata_v3_MetadataKind_Request_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Request_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Request_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKind_Request *envoy_type_metadata_v3_MetadataKind_Request_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Request *ret = envoy_type_metadata_v3_MetadataKind_Request_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Request_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Request_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKind_Request_serialize(const envoy_type_metadata_v3_MetadataKind_Request *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKind_Request_msginit, arena, len); @@ -234,13 +258,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKind_Route *envoy_type_metadata_v3_Met UPB_INLINE envoy_type_metadata_v3_MetadataKind_Route *envoy_type_metadata_v3_MetadataKind_Route_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Route *ret = envoy_type_metadata_v3_MetadataKind_Route_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Route_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Route_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKind_Route *envoy_type_metadata_v3_MetadataKind_Route_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Route *ret = envoy_type_metadata_v3_MetadataKind_Route_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Route_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Route_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKind_Route_serialize(const envoy_type_metadata_v3_MetadataKind_Route *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKind_Route_msginit, arena, len); @@ -256,13 +286,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKind_Cluster *envoy_type_metadata_v3_M UPB_INLINE envoy_type_metadata_v3_MetadataKind_Cluster *envoy_type_metadata_v3_MetadataKind_Cluster_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Cluster *ret = envoy_type_metadata_v3_MetadataKind_Cluster_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Cluster_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Cluster_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKind_Cluster *envoy_type_metadata_v3_MetadataKind_Cluster_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Cluster *ret = envoy_type_metadata_v3_MetadataKind_Cluster_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Cluster_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Cluster_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKind_Cluster_serialize(const envoy_type_metadata_v3_MetadataKind_Cluster *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKind_Cluster_msginit, arena, len); @@ -278,13 +314,19 @@ UPB_INLINE envoy_type_metadata_v3_MetadataKind_Host *envoy_type_metadata_v3_Meta UPB_INLINE envoy_type_metadata_v3_MetadataKind_Host *envoy_type_metadata_v3_MetadataKind_Host_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Host *ret = envoy_type_metadata_v3_MetadataKind_Host_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Host_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Host_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_metadata_v3_MetadataKind_Host *envoy_type_metadata_v3_MetadataKind_Host_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_metadata_v3_MetadataKind_Host *ret = envoy_type_metadata_v3_MetadataKind_Host_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Host_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_metadata_v3_MetadataKind_Host_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_metadata_v3_MetadataKind_Host_serialize(const envoy_type_metadata_v3_MetadataKind_Host *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_metadata_v3_MetadataKind_Host_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c b/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c index fa53e431e69..c4cb3b26e1d 100644 --- a/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +++ b/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/tracing/v3/custom_tag.upb.h" #include "envoy/type/metadata/v3/metadata.upb.h" #include "udpa/annotations/status.upb.h" @@ -24,49 +24,49 @@ static const upb_msglayout *const envoy_type_tracing_v3_CustomTag_submsgs[4] = { }; static const upb_msglayout_field envoy_type_tracing_v3_CustomTag__fields[5] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_tracing_v3_CustomTag_msginit = { &envoy_type_tracing_v3_CustomTag_submsgs[0], &envoy_type_tracing_v3_CustomTag__fields[0], - UPB_SIZE(16, 32), 5, false, 255, + UPB_SIZE(16, 32), 5, false, 5, 255, }; static const upb_msglayout_field envoy_type_tracing_v3_CustomTag_Literal__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_tracing_v3_CustomTag_Literal_msginit = { NULL, &envoy_type_tracing_v3_CustomTag_Literal__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field envoy_type_tracing_v3_CustomTag_Environment__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_tracing_v3_CustomTag_Environment_msginit = { NULL, &envoy_type_tracing_v3_CustomTag_Environment__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field envoy_type_tracing_v3_CustomTag_Header__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_tracing_v3_CustomTag_Header_msginit = { NULL, &envoy_type_tracing_v3_CustomTag_Header__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const envoy_type_tracing_v3_CustomTag_Metadata_submsgs[2] = { @@ -75,15 +75,15 @@ static const upb_msglayout *const envoy_type_tracing_v3_CustomTag_Metadata_subms }; static const upb_msglayout_field envoy_type_tracing_v3_CustomTag_Metadata__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {2, UPB_SIZE(16, 32), 2, 0, 11, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_tracing_v3_CustomTag_Metadata_msginit = { &envoy_type_tracing_v3_CustomTag_Metadata_submsgs[0], &envoy_type_tracing_v3_CustomTag_Metadata__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h b/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h index 666ed7b11db..b382c541e5d 100644 --- a/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +++ b/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_TRACING_V3_CUSTOM_TAG_PROTO_UPB_H_ #define ENVOY_TYPE_TRACING_V3_CUSTOM_TAG_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -49,13 +49,19 @@ UPB_INLINE envoy_type_tracing_v3_CustomTag *envoy_type_tracing_v3_CustomTag_new( UPB_INLINE envoy_type_tracing_v3_CustomTag *envoy_type_tracing_v3_CustomTag_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_tracing_v3_CustomTag *ret = envoy_type_tracing_v3_CustomTag_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_tracing_v3_CustomTag *envoy_type_tracing_v3_CustomTag_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_tracing_v3_CustomTag *ret = envoy_type_tracing_v3_CustomTag_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_tracing_v3_CustomTag_serialize(const envoy_type_tracing_v3_CustomTag *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_tracing_v3_CustomTag_msginit, arena, len); @@ -140,13 +146,19 @@ UPB_INLINE envoy_type_tracing_v3_CustomTag_Literal *envoy_type_tracing_v3_Custom UPB_INLINE envoy_type_tracing_v3_CustomTag_Literal *envoy_type_tracing_v3_CustomTag_Literal_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Literal *ret = envoy_type_tracing_v3_CustomTag_Literal_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Literal_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Literal_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_tracing_v3_CustomTag_Literal *envoy_type_tracing_v3_CustomTag_Literal_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Literal *ret = envoy_type_tracing_v3_CustomTag_Literal_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Literal_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Literal_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_tracing_v3_CustomTag_Literal_serialize(const envoy_type_tracing_v3_CustomTag_Literal *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_tracing_v3_CustomTag_Literal_msginit, arena, len); @@ -166,13 +178,19 @@ UPB_INLINE envoy_type_tracing_v3_CustomTag_Environment *envoy_type_tracing_v3_Cu UPB_INLINE envoy_type_tracing_v3_CustomTag_Environment *envoy_type_tracing_v3_CustomTag_Environment_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Environment *ret = envoy_type_tracing_v3_CustomTag_Environment_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Environment_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Environment_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_tracing_v3_CustomTag_Environment *envoy_type_tracing_v3_CustomTag_Environment_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Environment *ret = envoy_type_tracing_v3_CustomTag_Environment_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Environment_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Environment_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_tracing_v3_CustomTag_Environment_serialize(const envoy_type_tracing_v3_CustomTag_Environment *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_tracing_v3_CustomTag_Environment_msginit, arena, len); @@ -196,13 +214,19 @@ UPB_INLINE envoy_type_tracing_v3_CustomTag_Header *envoy_type_tracing_v3_CustomT UPB_INLINE envoy_type_tracing_v3_CustomTag_Header *envoy_type_tracing_v3_CustomTag_Header_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Header *ret = envoy_type_tracing_v3_CustomTag_Header_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Header_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Header_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_tracing_v3_CustomTag_Header *envoy_type_tracing_v3_CustomTag_Header_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Header *ret = envoy_type_tracing_v3_CustomTag_Header_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Header_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Header_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_tracing_v3_CustomTag_Header_serialize(const envoy_type_tracing_v3_CustomTag_Header *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_tracing_v3_CustomTag_Header_msginit, arena, len); @@ -226,13 +250,19 @@ UPB_INLINE envoy_type_tracing_v3_CustomTag_Metadata *envoy_type_tracing_v3_Custo UPB_INLINE envoy_type_tracing_v3_CustomTag_Metadata *envoy_type_tracing_v3_CustomTag_Metadata_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Metadata *ret = envoy_type_tracing_v3_CustomTag_Metadata_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Metadata_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Metadata_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_tracing_v3_CustomTag_Metadata *envoy_type_tracing_v3_CustomTag_Metadata_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_tracing_v3_CustomTag_Metadata *ret = envoy_type_tracing_v3_CustomTag_Metadata_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Metadata_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_tracing_v3_CustomTag_Metadata_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_tracing_v3_CustomTag_Metadata_serialize(const envoy_type_tracing_v3_CustomTag_Metadata *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_tracing_v3_CustomTag_Metadata_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/v3/http.upb.c b/src/core/ext/upb-generated/envoy/type/v3/http.upb.c index c4a03ae8cad..753363bc5e8 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +++ b/src/core/ext/upb-generated/envoy/type/v3/http.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/v3/http.upb.h" #include "udpa/annotations/status.upb.h" diff --git a/src/core/ext/upb-generated/envoy/type/v3/http.upb.h b/src/core/ext/upb-generated/envoy/type/v3/http.upb.h index 25b033f214c..3464038b4f6 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +++ b/src/core/ext/upb-generated/envoy/type/v3/http.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_V3_HTTP_PROTO_UPB_H_ #define ENVOY_TYPE_V3_HTTP_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" diff --git a/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c b/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c index 9e4a87c341a..5ef87006901 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +++ b/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/v3/percent.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -16,24 +16,24 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_type_v3_Percent__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_v3_Percent_msginit = { NULL, &envoy_type_v3_Percent__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field envoy_type_v3_FractionalPercent__fields[2] = { - {1, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_v3_FractionalPercent_msginit = { NULL, &envoy_type_v3_FractionalPercent__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h b/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h index 6155e2391d2..3c2f7a0751a 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +++ b/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_V3_PERCENT_PROTO_UPB_H_ #define ENVOY_TYPE_V3_PERCENT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -42,13 +42,19 @@ UPB_INLINE envoy_type_v3_Percent *envoy_type_v3_Percent_new(upb_arena *arena) { UPB_INLINE envoy_type_v3_Percent *envoy_type_v3_Percent_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_v3_Percent *ret = envoy_type_v3_Percent_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_v3_Percent_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_v3_Percent_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_v3_Percent *envoy_type_v3_Percent_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_v3_Percent *ret = envoy_type_v3_Percent_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_v3_Percent_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_v3_Percent_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_v3_Percent_serialize(const envoy_type_v3_Percent *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_v3_Percent_msginit, arena, len); @@ -68,13 +74,19 @@ UPB_INLINE envoy_type_v3_FractionalPercent *envoy_type_v3_FractionalPercent_new( UPB_INLINE envoy_type_v3_FractionalPercent *envoy_type_v3_FractionalPercent_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_v3_FractionalPercent *ret = envoy_type_v3_FractionalPercent_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_v3_FractionalPercent_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_v3_FractionalPercent_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_v3_FractionalPercent *envoy_type_v3_FractionalPercent_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_v3_FractionalPercent *ret = envoy_type_v3_FractionalPercent_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_v3_FractionalPercent_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_v3_FractionalPercent_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_v3_FractionalPercent_serialize(const envoy_type_v3_FractionalPercent *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_v3_FractionalPercent_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/v3/range.upb.c b/src/core/ext/upb-generated/envoy/type/v3/range.upb.c index e4222bef5c9..717fccdf6b7 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +++ b/src/core/ext/upb-generated/envoy/type/v3/range.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/v3/range.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -15,36 +15,36 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_type_v3_Int64Range__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 3, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 3, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_v3_Int64Range_msginit = { NULL, &envoy_type_v3_Int64Range__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout_field envoy_type_v3_Int32Range__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 5, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 5, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_v3_Int32Range_msginit = { NULL, &envoy_type_v3_Int32Range__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; static const upb_msglayout_field envoy_type_v3_DoubleRange__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_v3_DoubleRange_msginit = { NULL, &envoy_type_v3_DoubleRange__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/v3/range.upb.h b/src/core/ext/upb-generated/envoy/type/v3/range.upb.h index 9ff396d9ce2..32afd9ad472 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +++ b/src/core/ext/upb-generated/envoy/type/v3/range.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_V3_RANGE_PROTO_UPB_H_ #define ENVOY_TYPE_V3_RANGE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE envoy_type_v3_Int64Range *envoy_type_v3_Int64Range_new(upb_arena *are UPB_INLINE envoy_type_v3_Int64Range *envoy_type_v3_Int64Range_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_v3_Int64Range *ret = envoy_type_v3_Int64Range_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_v3_Int64Range_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_v3_Int64Range_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_v3_Int64Range *envoy_type_v3_Int64Range_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_v3_Int64Range *ret = envoy_type_v3_Int64Range_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_v3_Int64Range_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_v3_Int64Range_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_v3_Int64Range_serialize(const envoy_type_v3_Int64Range *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_v3_Int64Range_msginit, arena, len); @@ -69,13 +75,19 @@ UPB_INLINE envoy_type_v3_Int32Range *envoy_type_v3_Int32Range_new(upb_arena *are UPB_INLINE envoy_type_v3_Int32Range *envoy_type_v3_Int32Range_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_v3_Int32Range *ret = envoy_type_v3_Int32Range_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_v3_Int32Range_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_v3_Int32Range_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_v3_Int32Range *envoy_type_v3_Int32Range_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_v3_Int32Range *ret = envoy_type_v3_Int32Range_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_v3_Int32Range_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_v3_Int32Range_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_v3_Int32Range_serialize(const envoy_type_v3_Int32Range *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_v3_Int32Range_msginit, arena, len); @@ -99,13 +111,19 @@ UPB_INLINE envoy_type_v3_DoubleRange *envoy_type_v3_DoubleRange_new(upb_arena *a UPB_INLINE envoy_type_v3_DoubleRange *envoy_type_v3_DoubleRange_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_v3_DoubleRange *ret = envoy_type_v3_DoubleRange_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_v3_DoubleRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_v3_DoubleRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_v3_DoubleRange *envoy_type_v3_DoubleRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_v3_DoubleRange *ret = envoy_type_v3_DoubleRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_v3_DoubleRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_v3_DoubleRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_v3_DoubleRange_serialize(const envoy_type_v3_DoubleRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_v3_DoubleRange_msginit, arena, len); diff --git a/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c b/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c index 8984ac7fbdc..94e7cb86f57 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +++ b/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "envoy/type/v3/semantic_version.upb.h" #include "udpa/annotations/status.upb.h" #include "udpa/annotations/versioning.upb.h" @@ -15,15 +15,15 @@ #include "upb/port_def.inc" static const upb_msglayout_field envoy_type_v3_SemanticVersion__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 13, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {3, UPB_SIZE(8, 8), 0, 0, 13, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout envoy_type_v3_SemanticVersion_msginit = { NULL, &envoy_type_v3_SemanticVersion__fields[0], - UPB_SIZE(16, 16), 3, false, 255, + UPB_SIZE(16, 16), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h b/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h index e1dd3297202..e06a6bb052b 100644 --- a/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +++ b/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h @@ -9,7 +9,7 @@ #ifndef ENVOY_TYPE_V3_SEMANTIC_VERSION_PROTO_UPB_H_ #define ENVOY_TYPE_V3_SEMANTIC_VERSION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE envoy_type_v3_SemanticVersion *envoy_type_v3_SemanticVersion_new(upb_ UPB_INLINE envoy_type_v3_SemanticVersion *envoy_type_v3_SemanticVersion_parse(const char *buf, size_t size, upb_arena *arena) { envoy_type_v3_SemanticVersion *ret = envoy_type_v3_SemanticVersion_new(arena); - return (ret && upb_decode(buf, size, ret, &envoy_type_v3_SemanticVersion_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &envoy_type_v3_SemanticVersion_msginit, arena)) return NULL; + return ret; } UPB_INLINE envoy_type_v3_SemanticVersion *envoy_type_v3_SemanticVersion_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { envoy_type_v3_SemanticVersion *ret = envoy_type_v3_SemanticVersion_new(arena); - return (ret && _upb_decode(buf, size, ret, &envoy_type_v3_SemanticVersion_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &envoy_type_v3_SemanticVersion_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *envoy_type_v3_SemanticVersion_serialize(const envoy_type_v3_SemanticVersion *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &envoy_type_v3_SemanticVersion_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/api/annotations.upb.c b/src/core/ext/upb-generated/google/api/annotations.upb.c index a1385cc3e70..d21b0941b66 100644 --- a/src/core/ext/upb-generated/google/api/annotations.upb.c +++ b/src/core/ext/upb-generated/google/api/annotations.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/api/annotations.upb.h" #include "google/api/http.upb.h" #include "google/protobuf/descriptor.upb.h" diff --git a/src/core/ext/upb-generated/google/api/annotations.upb.h b/src/core/ext/upb-generated/google/api/annotations.upb.h index fcbe640dbed..0295fbb5ed1 100644 --- a/src/core/ext/upb-generated/google/api/annotations.upb.h +++ b/src/core/ext/upb-generated/google/api/annotations.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_API_ANNOTATIONS_PROTO_UPB_H_ #define GOOGLE_API_ANNOTATIONS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" diff --git a/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c b/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c index 16fd52a0739..e24ce3ae72c 100644 --- a/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +++ b/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/api/expr/v1alpha1/checked.upb.h" #include "google/api/expr/v1alpha1/syntax.upb.h" #include "google/protobuf/empty.upb.h" @@ -23,16 +23,16 @@ static const upb_msglayout *const google_api_expr_v1alpha1_CheckedExpr_submsgs[4 }; static const upb_msglayout_field google_api_expr_v1alpha1_CheckedExpr__fields[4] = { - {2, UPB_SIZE(12, 24), 0, 0, 11, _UPB_LABEL_MAP}, - {3, UPB_SIZE(16, 32), 0, 1, 11, _UPB_LABEL_MAP}, - {4, UPB_SIZE(4, 8), 1, 2, 11, 1}, - {5, UPB_SIZE(8, 16), 2, 3, 11, 1}, + {2, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_MAP}, + {3, UPB_SIZE(16, 32), 0, 1, 11, _UPB_MODE_MAP}, + {4, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), 2, 3, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_CheckedExpr_msginit = { &google_api_expr_v1alpha1_CheckedExpr_submsgs[0], &google_api_expr_v1alpha1_CheckedExpr__fields[0], - UPB_SIZE(24, 40), 4, false, 255, + UPB_SIZE(24, 40), 4, false, 0, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_CheckedExpr_ReferenceMapEntry_submsgs[1] = { @@ -40,14 +40,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_CheckedExpr_Reference }; static const upb_msglayout_field google_api_expr_v1alpha1_CheckedExpr_ReferenceMapEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_CheckedExpr_ReferenceMapEntry_msginit = { &google_api_expr_v1alpha1_CheckedExpr_ReferenceMapEntry_submsgs[0], &google_api_expr_v1alpha1_CheckedExpr_ReferenceMapEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_CheckedExpr_TypeMapEntry_submsgs[1] = { @@ -55,14 +55,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_CheckedExpr_TypeMapEn }; static const upb_msglayout_field google_api_expr_v1alpha1_CheckedExpr_TypeMapEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_CheckedExpr_TypeMapEntry_msginit = { &google_api_expr_v1alpha1_CheckedExpr_TypeMapEntry_submsgs[0], &google_api_expr_v1alpha1_CheckedExpr_TypeMapEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Type_submsgs[6] = { @@ -75,25 +75,25 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Type_submsgs[6] = { }; static const upb_msglayout_field google_api_expr_v1alpha1_Type__fields[13] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 5, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 3, 11, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 4, 11, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 2, 11, 1}, - {9, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {10, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {11, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, 1}, - {12, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 5, 11, 1}, - {14, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 5, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 3, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 4, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 2, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 5, 11, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Type_msginit = { &google_api_expr_v1alpha1_Type_submsgs[0], &google_api_expr_v1alpha1_Type__fields[0], - UPB_SIZE(16, 32), 13, false, 255, + UPB_SIZE(16, 32), 13, false, 12, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Type_ListType_submsgs[1] = { @@ -101,13 +101,13 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Type_ListType_submsgs }; static const upb_msglayout_field google_api_expr_v1alpha1_Type_ListType__fields[1] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Type_ListType_msginit = { &google_api_expr_v1alpha1_Type_ListType_submsgs[0], &google_api_expr_v1alpha1_Type_ListType__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Type_MapType_submsgs[1] = { @@ -115,14 +115,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Type_MapType_submsgs[ }; static const upb_msglayout_field google_api_expr_v1alpha1_Type_MapType__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Type_MapType_msginit = { &google_api_expr_v1alpha1_Type_MapType_submsgs[0], &google_api_expr_v1alpha1_Type_MapType__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Type_FunctionType_submsgs[1] = { @@ -130,14 +130,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Type_FunctionType_sub }; static const upb_msglayout_field google_api_expr_v1alpha1_Type_FunctionType__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_api_expr_v1alpha1_Type_FunctionType_msginit = { &google_api_expr_v1alpha1_Type_FunctionType_submsgs[0], &google_api_expr_v1alpha1_Type_FunctionType__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Type_AbstractType_submsgs[1] = { @@ -145,14 +145,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Type_AbstractType_sub }; static const upb_msglayout_field google_api_expr_v1alpha1_Type_AbstractType__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_api_expr_v1alpha1_Type_AbstractType_msginit = { &google_api_expr_v1alpha1_Type_AbstractType_submsgs[0], &google_api_expr_v1alpha1_Type_AbstractType__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Decl_submsgs[2] = { @@ -161,15 +161,15 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Decl_submsgs[2] = { }; static const upb_msglayout_field google_api_expr_v1alpha1_Decl__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Decl_msginit = { &google_api_expr_v1alpha1_Decl_submsgs[0], &google_api_expr_v1alpha1_Decl__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Decl_IdentDecl_submsgs[2] = { @@ -178,15 +178,15 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Decl_IdentDecl_submsg }; static const upb_msglayout_field google_api_expr_v1alpha1_Decl_IdentDecl__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {2, UPB_SIZE(16, 32), 2, 0, 11, 1}, - {3, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Decl_IdentDecl_msginit = { &google_api_expr_v1alpha1_Decl_IdentDecl_submsgs[0], &google_api_expr_v1alpha1_Decl_IdentDecl__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Decl_FunctionDecl_submsgs[1] = { @@ -194,13 +194,13 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Decl_FunctionDecl_sub }; static const upb_msglayout_field google_api_expr_v1alpha1_Decl_FunctionDecl__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_api_expr_v1alpha1_Decl_FunctionDecl_msginit = { &google_api_expr_v1alpha1_Decl_FunctionDecl_submsgs[0], &google_api_expr_v1alpha1_Decl_FunctionDecl__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_submsgs[1] = { @@ -208,18 +208,18 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Decl_FunctionDecl_Ove }; static const upb_msglayout_field google_api_expr_v1alpha1_Decl_FunctionDecl_Overload__fields[6] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(24, 48), 0, 0, 11, 3}, - {3, UPB_SIZE(28, 56), 0, 0, 9, 3}, - {4, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {5, UPB_SIZE(1, 1), 0, 0, 8, 1}, - {6, UPB_SIZE(12, 24), 0, 0, 9, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(24, 48), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(28, 56), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_msginit = { &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_submsgs[0], &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload__fields[0], - UPB_SIZE(32, 64), 6, false, 255, + UPB_SIZE(32, 64), 6, false, 6, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Reference_submsgs[1] = { @@ -227,15 +227,15 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Reference_submsgs[1] }; static const upb_msglayout_field google_api_expr_v1alpha1_Reference__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 0, 0, 9, 3}, - {4, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Reference_msginit = { &google_api_expr_v1alpha1_Reference_submsgs[0], &google_api_expr_v1alpha1_Reference__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h b/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h index 43a88f708bf..8520b5a5159 100644 --- a/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +++ b/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_API_EXPR_V1ALPHA1_CHECKED_PROTO_UPB_H_ #define GOOGLE_API_EXPR_V1ALPHA1_CHECKED_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -94,13 +94,19 @@ UPB_INLINE google_api_expr_v1alpha1_CheckedExpr *google_api_expr_v1alpha1_Checke UPB_INLINE google_api_expr_v1alpha1_CheckedExpr *google_api_expr_v1alpha1_CheckedExpr_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_CheckedExpr *ret = google_api_expr_v1alpha1_CheckedExpr_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_CheckedExpr_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_CheckedExpr_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_CheckedExpr *google_api_expr_v1alpha1_CheckedExpr_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_CheckedExpr *ret = google_api_expr_v1alpha1_CheckedExpr_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_CheckedExpr_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_CheckedExpr_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_CheckedExpr_serialize(const google_api_expr_v1alpha1_CheckedExpr *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_CheckedExpr_msginit, arena, len); @@ -198,13 +204,19 @@ UPB_INLINE google_api_expr_v1alpha1_Type *google_api_expr_v1alpha1_Type_new(upb_ UPB_INLINE google_api_expr_v1alpha1_Type *google_api_expr_v1alpha1_Type_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Type *ret = google_api_expr_v1alpha1_Type_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Type *google_api_expr_v1alpha1_Type_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Type *ret = google_api_expr_v1alpha1_Type_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Type_serialize(const google_api_expr_v1alpha1_Type *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Type_msginit, arena, len); @@ -366,13 +378,19 @@ UPB_INLINE google_api_expr_v1alpha1_Type_ListType *google_api_expr_v1alpha1_Type UPB_INLINE google_api_expr_v1alpha1_Type_ListType *google_api_expr_v1alpha1_Type_ListType_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Type_ListType *ret = google_api_expr_v1alpha1_Type_ListType_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_ListType_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_ListType_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Type_ListType *google_api_expr_v1alpha1_Type_ListType_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Type_ListType *ret = google_api_expr_v1alpha1_Type_ListType_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_ListType_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_ListType_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Type_ListType_serialize(const google_api_expr_v1alpha1_Type_ListType *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Type_ListType_msginit, arena, len); @@ -403,13 +421,19 @@ UPB_INLINE google_api_expr_v1alpha1_Type_MapType *google_api_expr_v1alpha1_Type_ UPB_INLINE google_api_expr_v1alpha1_Type_MapType *google_api_expr_v1alpha1_Type_MapType_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Type_MapType *ret = google_api_expr_v1alpha1_Type_MapType_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_MapType_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_MapType_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Type_MapType *google_api_expr_v1alpha1_Type_MapType_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Type_MapType *ret = google_api_expr_v1alpha1_Type_MapType_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_MapType_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_MapType_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Type_MapType_serialize(const google_api_expr_v1alpha1_Type_MapType *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Type_MapType_msginit, arena, len); @@ -455,13 +479,19 @@ UPB_INLINE google_api_expr_v1alpha1_Type_FunctionType *google_api_expr_v1alpha1_ UPB_INLINE google_api_expr_v1alpha1_Type_FunctionType *google_api_expr_v1alpha1_Type_FunctionType_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Type_FunctionType *ret = google_api_expr_v1alpha1_Type_FunctionType_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_FunctionType_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_FunctionType_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Type_FunctionType *google_api_expr_v1alpha1_Type_FunctionType_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Type_FunctionType *ret = google_api_expr_v1alpha1_Type_FunctionType_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_FunctionType_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_FunctionType_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Type_FunctionType_serialize(const google_api_expr_v1alpha1_Type_FunctionType *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Type_FunctionType_msginit, arena, len); @@ -507,13 +537,19 @@ UPB_INLINE google_api_expr_v1alpha1_Type_AbstractType *google_api_expr_v1alpha1_ UPB_INLINE google_api_expr_v1alpha1_Type_AbstractType *google_api_expr_v1alpha1_Type_AbstractType_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Type_AbstractType *ret = google_api_expr_v1alpha1_Type_AbstractType_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_AbstractType_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_AbstractType_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Type_AbstractType *google_api_expr_v1alpha1_Type_AbstractType_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Type_AbstractType *ret = google_api_expr_v1alpha1_Type_AbstractType_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_AbstractType_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Type_AbstractType_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Type_AbstractType_serialize(const google_api_expr_v1alpha1_Type_AbstractType *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Type_AbstractType_msginit, arena, len); @@ -548,13 +584,19 @@ UPB_INLINE google_api_expr_v1alpha1_Decl *google_api_expr_v1alpha1_Decl_new(upb_ UPB_INLINE google_api_expr_v1alpha1_Decl *google_api_expr_v1alpha1_Decl_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Decl *ret = google_api_expr_v1alpha1_Decl_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Decl *google_api_expr_v1alpha1_Decl_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Decl *ret = google_api_expr_v1alpha1_Decl_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Decl_serialize(const google_api_expr_v1alpha1_Decl *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Decl_msginit, arena, len); @@ -609,13 +651,19 @@ UPB_INLINE google_api_expr_v1alpha1_Decl_IdentDecl *google_api_expr_v1alpha1_Dec UPB_INLINE google_api_expr_v1alpha1_Decl_IdentDecl *google_api_expr_v1alpha1_Decl_IdentDecl_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Decl_IdentDecl *ret = google_api_expr_v1alpha1_Decl_IdentDecl_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_IdentDecl_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_IdentDecl_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Decl_IdentDecl *google_api_expr_v1alpha1_Decl_IdentDecl_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Decl_IdentDecl *ret = google_api_expr_v1alpha1_Decl_IdentDecl_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_IdentDecl_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_IdentDecl_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Decl_IdentDecl_serialize(const google_api_expr_v1alpha1_Decl_IdentDecl *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Decl_IdentDecl_msginit, arena, len); @@ -665,13 +713,19 @@ UPB_INLINE google_api_expr_v1alpha1_Decl_FunctionDecl *google_api_expr_v1alpha1_ UPB_INLINE google_api_expr_v1alpha1_Decl_FunctionDecl *google_api_expr_v1alpha1_Decl_FunctionDecl_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Decl_FunctionDecl *ret = google_api_expr_v1alpha1_Decl_FunctionDecl_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Decl_FunctionDecl *google_api_expr_v1alpha1_Decl_FunctionDecl_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Decl_FunctionDecl *ret = google_api_expr_v1alpha1_Decl_FunctionDecl_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Decl_FunctionDecl_serialize(const google_api_expr_v1alpha1_Decl_FunctionDecl *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Decl_FunctionDecl_msginit, arena, len); @@ -702,13 +756,19 @@ UPB_INLINE google_api_expr_v1alpha1_Decl_FunctionDecl_Overload *google_api_expr_ UPB_INLINE google_api_expr_v1alpha1_Decl_FunctionDecl_Overload *google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Decl_FunctionDecl_Overload *ret = google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Decl_FunctionDecl_Overload *google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Decl_FunctionDecl_Overload *ret = google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_serialize(const google_api_expr_v1alpha1_Decl_FunctionDecl_Overload *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Decl_FunctionDecl_Overload_msginit, arena, len); @@ -777,13 +837,19 @@ UPB_INLINE google_api_expr_v1alpha1_Reference *google_api_expr_v1alpha1_Referenc UPB_INLINE google_api_expr_v1alpha1_Reference *google_api_expr_v1alpha1_Reference_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Reference *ret = google_api_expr_v1alpha1_Reference_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Reference_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Reference_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Reference *google_api_expr_v1alpha1_Reference_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Reference *ret = google_api_expr_v1alpha1_Reference_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Reference_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Reference_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Reference_serialize(const google_api_expr_v1alpha1_Reference *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Reference_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c b/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c index 4bbf5758615..c32d934eb60 100644 --- a/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +++ b/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/api/expr/v1alpha1/syntax.upb.h" #include "google/protobuf/duration.upb.h" #include "google/protobuf/struct.upb.h" @@ -21,14 +21,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_ParsedExpr_submsgs[2] }; static const upb_msglayout_field google_api_expr_v1alpha1_ParsedExpr__fields[2] = { - {2, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {3, UPB_SIZE(8, 16), 2, 1, 11, 1}, + {2, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_ParsedExpr_msginit = { &google_api_expr_v1alpha1_ParsedExpr_submsgs[0], &google_api_expr_v1alpha1_ParsedExpr__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 0, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_submsgs[7] = { @@ -42,30 +42,30 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_submsgs[7] = { }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr__fields[8] = { - {2, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {3, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 0, 11, 1}, - {4, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 5, 11, 1}, - {5, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 6, 11, 1}, - {6, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 1, 11, 1}, - {7, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 3, 11, 1}, - {8, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 4, 11, 1}, - {9, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 2, 11, 1}, + {2, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 5, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 6, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 3, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 4, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 2, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_msginit = { &google_api_expr_v1alpha1_Expr_submsgs[0], &google_api_expr_v1alpha1_Expr__fields[0], - UPB_SIZE(16, 24), 8, false, 255, + UPB_SIZE(16, 24), 8, false, 0, 255, }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_Ident__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_Ident_msginit = { NULL, &google_api_expr_v1alpha1_Expr_Ident__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_Select_submsgs[1] = { @@ -73,15 +73,15 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_Select_submsgs[1 }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_Select__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_Select_msginit = { &google_api_expr_v1alpha1_Expr_Select_submsgs[0], &google_api_expr_v1alpha1_Expr_Select__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_Call_submsgs[1] = { @@ -89,15 +89,15 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_Call_submsgs[1] }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_Call__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 0, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 0, 0, 11, 3}, + {1, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_Call_msginit = { &google_api_expr_v1alpha1_Expr_Call_submsgs[0], &google_api_expr_v1alpha1_Expr_Call__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_CreateList_submsgs[1] = { @@ -105,13 +105,13 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_CreateList_subms }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_CreateList__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_CreateList_msginit = { &google_api_expr_v1alpha1_Expr_CreateList_submsgs[0], &google_api_expr_v1alpha1_Expr_CreateList__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_CreateStruct_submsgs[1] = { @@ -119,14 +119,14 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_CreateStruct_sub }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_CreateStruct__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_CreateStruct_msginit = { &google_api_expr_v1alpha1_Expr_CreateStruct_submsgs[0], &google_api_expr_v1alpha1_Expr_CreateStruct__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_CreateStruct_Entry_submsgs[1] = { @@ -134,16 +134,16 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_CreateStruct_Ent }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_CreateStruct_Entry__fields[4] = { - {1, UPB_SIZE(8, 8), 0, 0, 3, 1}, - {2, UPB_SIZE(20, 24), UPB_SIZE(-29, -41), 0, 9, 1}, - {3, UPB_SIZE(20, 24), UPB_SIZE(-29, -41), 0, 11, 1}, - {4, UPB_SIZE(16, 16), 1, 0, 11, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 24), UPB_SIZE(-29, -41), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 24), UPB_SIZE(-29, -41), 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_CreateStruct_Entry_msginit = { &google_api_expr_v1alpha1_Expr_CreateStruct_Entry_submsgs[0], &google_api_expr_v1alpha1_Expr_CreateStruct_Entry__fields[0], - UPB_SIZE(32, 48), 4, false, 255, + UPB_SIZE(32, 48), 4, false, 4, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Expr_Comprehension_submsgs[1] = { @@ -151,19 +151,19 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Expr_Comprehension_su }; static const upb_msglayout_field google_api_expr_v1alpha1_Expr_Comprehension__fields[7] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(20, 40), 1, 0, 11, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {4, UPB_SIZE(24, 48), 2, 0, 11, 1}, - {5, UPB_SIZE(28, 56), 3, 0, 11, 1}, - {6, UPB_SIZE(32, 64), 4, 0, 11, 1}, - {7, UPB_SIZE(36, 72), 5, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 48), 2, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(28, 56), 3, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(32, 64), 4, 0, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(36, 72), 5, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Expr_Comprehension_msginit = { &google_api_expr_v1alpha1_Expr_Comprehension_submsgs[0], &google_api_expr_v1alpha1_Expr_Comprehension__fields[0], - UPB_SIZE(40, 80), 7, false, 255, + UPB_SIZE(40, 80), 7, false, 7, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_Constant_submsgs[2] = { @@ -172,21 +172,21 @@ static const upb_msglayout *const google_api_expr_v1alpha1_Constant_submsgs[2] = }; static const upb_msglayout_field google_api_expr_v1alpha1_Constant__fields[9] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 8, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 3, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 4, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 1, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {7, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 12, 1}, - {8, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, 1}, - {9, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 3, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 1, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_Constant_msginit = { &google_api_expr_v1alpha1_Constant_submsgs[0], &google_api_expr_v1alpha1_Constant__fields[0], - UPB_SIZE(16, 32), 9, false, 255, + UPB_SIZE(16, 32), 9, false, 9, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_SourceInfo_submsgs[2] = { @@ -195,28 +195,28 @@ static const upb_msglayout *const google_api_expr_v1alpha1_SourceInfo_submsgs[2] }; static const upb_msglayout_field google_api_expr_v1alpha1_SourceInfo__fields[5] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 0, 0, 5, _UPB_LABEL_PACKED}, - {4, UPB_SIZE(20, 40), 0, 1, 11, _UPB_LABEL_MAP}, - {5, UPB_SIZE(24, 48), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {4, UPB_SIZE(20, 40), 0, 1, 11, _UPB_MODE_MAP}, + {5, UPB_SIZE(24, 48), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout google_api_expr_v1alpha1_SourceInfo_msginit = { &google_api_expr_v1alpha1_SourceInfo_submsgs[0], &google_api_expr_v1alpha1_SourceInfo__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 5, 255, }; static const upb_msglayout_field google_api_expr_v1alpha1_SourceInfo_PositionsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 5, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_SourceInfo_PositionsEntry_msginit = { NULL, &google_api_expr_v1alpha1_SourceInfo_PositionsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_api_expr_v1alpha1_SourceInfo_MacroCallsEntry_submsgs[1] = { @@ -224,27 +224,27 @@ static const upb_msglayout *const google_api_expr_v1alpha1_SourceInfo_MacroCalls }; static const upb_msglayout_field google_api_expr_v1alpha1_SourceInfo_MacroCallsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_SourceInfo_MacroCallsEntry_msginit = { &google_api_expr_v1alpha1_SourceInfo_MacroCallsEntry_submsgs[0], &google_api_expr_v1alpha1_SourceInfo_MacroCallsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field google_api_expr_v1alpha1_SourcePosition__fields[4] = { - {1, UPB_SIZE(12, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 5, 1}, - {3, UPB_SIZE(4, 4), 0, 0, 5, 1}, - {4, UPB_SIZE(8, 8), 0, 0, 5, 1}, + {1, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 4), 0, 0, 5, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), 0, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_expr_v1alpha1_SourcePosition_msginit = { NULL, &google_api_expr_v1alpha1_SourcePosition__fields[0], - UPB_SIZE(24, 32), 4, false, 255, + UPB_SIZE(24, 32), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h b/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h index ffa7925ab35..3460224abfc 100644 --- a/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +++ b/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_API_EXPR_V1ALPHA1_SYNTAX_PROTO_UPB_H_ #define GOOGLE_API_EXPR_V1ALPHA1_SYNTAX_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -76,13 +76,19 @@ UPB_INLINE google_api_expr_v1alpha1_ParsedExpr *google_api_expr_v1alpha1_ParsedE UPB_INLINE google_api_expr_v1alpha1_ParsedExpr *google_api_expr_v1alpha1_ParsedExpr_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_ParsedExpr *ret = google_api_expr_v1alpha1_ParsedExpr_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_ParsedExpr_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_ParsedExpr_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_ParsedExpr *google_api_expr_v1alpha1_ParsedExpr_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_ParsedExpr *ret = google_api_expr_v1alpha1_ParsedExpr_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_ParsedExpr_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_ParsedExpr_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_ParsedExpr_serialize(const google_api_expr_v1alpha1_ParsedExpr *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_ParsedExpr_msginit, arena, len); @@ -128,13 +134,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr *google_api_expr_v1alpha1_Expr_new(upb_ UPB_INLINE google_api_expr_v1alpha1_Expr *google_api_expr_v1alpha1_Expr_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr *ret = google_api_expr_v1alpha1_Expr_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr *google_api_expr_v1alpha1_Expr_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr *ret = google_api_expr_v1alpha1_Expr_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_serialize(const google_api_expr_v1alpha1_Expr *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_msginit, arena, len); @@ -264,13 +276,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_Ident *google_api_expr_v1alpha1_Expr_Id UPB_INLINE google_api_expr_v1alpha1_Expr_Ident *google_api_expr_v1alpha1_Expr_Ident_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_Ident *ret = google_api_expr_v1alpha1_Expr_Ident_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Ident_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Ident_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_Ident *google_api_expr_v1alpha1_Expr_Ident_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_Ident *ret = google_api_expr_v1alpha1_Expr_Ident_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Ident_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Ident_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_Ident_serialize(const google_api_expr_v1alpha1_Expr_Ident *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_Ident_msginit, arena, len); @@ -290,13 +308,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_Select *google_api_expr_v1alpha1_Expr_S UPB_INLINE google_api_expr_v1alpha1_Expr_Select *google_api_expr_v1alpha1_Expr_Select_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_Select *ret = google_api_expr_v1alpha1_Expr_Select_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Select_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Select_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_Select *google_api_expr_v1alpha1_Expr_Select_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_Select *ret = google_api_expr_v1alpha1_Expr_Select_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Select_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Select_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_Select_serialize(const google_api_expr_v1alpha1_Expr_Select *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_Select_msginit, arena, len); @@ -335,13 +359,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_Call *google_api_expr_v1alpha1_Expr_Cal UPB_INLINE google_api_expr_v1alpha1_Expr_Call *google_api_expr_v1alpha1_Expr_Call_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_Call *ret = google_api_expr_v1alpha1_Expr_Call_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Call_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Call_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_Call *google_api_expr_v1alpha1_Expr_Call_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_Call *ret = google_api_expr_v1alpha1_Expr_Call_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Call_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Call_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_Call_serialize(const google_api_expr_v1alpha1_Expr_Call *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_Call_msginit, arena, len); @@ -391,13 +421,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_CreateList *google_api_expr_v1alpha1_Ex UPB_INLINE google_api_expr_v1alpha1_Expr_CreateList *google_api_expr_v1alpha1_Expr_CreateList_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_CreateList *ret = google_api_expr_v1alpha1_Expr_CreateList_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateList_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateList_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_CreateList *google_api_expr_v1alpha1_Expr_CreateList_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_CreateList *ret = google_api_expr_v1alpha1_Expr_CreateList_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateList_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateList_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_CreateList_serialize(const google_api_expr_v1alpha1_Expr_CreateList *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_CreateList_msginit, arena, len); @@ -428,13 +464,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_CreateStruct *google_api_expr_v1alpha1_ UPB_INLINE google_api_expr_v1alpha1_Expr_CreateStruct *google_api_expr_v1alpha1_Expr_CreateStruct_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_CreateStruct *ret = google_api_expr_v1alpha1_Expr_CreateStruct_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_CreateStruct *google_api_expr_v1alpha1_Expr_CreateStruct_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_CreateStruct *ret = google_api_expr_v1alpha1_Expr_CreateStruct_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_CreateStruct_serialize(const google_api_expr_v1alpha1_Expr_CreateStruct *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_CreateStruct_msginit, arena, len); @@ -469,13 +511,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_CreateStruct_Entry *google_api_expr_v1a UPB_INLINE google_api_expr_v1alpha1_Expr_CreateStruct_Entry *google_api_expr_v1alpha1_Expr_CreateStruct_Entry_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_CreateStruct_Entry *ret = google_api_expr_v1alpha1_Expr_CreateStruct_Entry_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_Entry_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_Entry_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_CreateStruct_Entry *google_api_expr_v1alpha1_Expr_CreateStruct_Entry_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_CreateStruct_Entry *ret = google_api_expr_v1alpha1_Expr_CreateStruct_Entry_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_Entry_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_CreateStruct_Entry_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_CreateStruct_Entry_serialize(const google_api_expr_v1alpha1_Expr_CreateStruct_Entry *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_CreateStruct_Entry_msginit, arena, len); @@ -536,13 +584,19 @@ UPB_INLINE google_api_expr_v1alpha1_Expr_Comprehension *google_api_expr_v1alpha1 UPB_INLINE google_api_expr_v1alpha1_Expr_Comprehension *google_api_expr_v1alpha1_Expr_Comprehension_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Expr_Comprehension *ret = google_api_expr_v1alpha1_Expr_Comprehension_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Comprehension_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Comprehension_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Expr_Comprehension *google_api_expr_v1alpha1_Expr_Comprehension_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Expr_Comprehension *ret = google_api_expr_v1alpha1_Expr_Comprehension_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Comprehension_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Expr_Comprehension_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Expr_Comprehension_serialize(const google_api_expr_v1alpha1_Expr_Comprehension *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Expr_Comprehension_msginit, arena, len); @@ -641,13 +695,19 @@ UPB_INLINE google_api_expr_v1alpha1_Constant *google_api_expr_v1alpha1_Constant_ UPB_INLINE google_api_expr_v1alpha1_Constant *google_api_expr_v1alpha1_Constant_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_Constant *ret = google_api_expr_v1alpha1_Constant_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Constant_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Constant_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_Constant *google_api_expr_v1alpha1_Constant_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_Constant *ret = google_api_expr_v1alpha1_Constant_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Constant_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_Constant_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_Constant_serialize(const google_api_expr_v1alpha1_Constant *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_Constant_msginit, arena, len); @@ -740,13 +800,19 @@ UPB_INLINE google_api_expr_v1alpha1_SourceInfo *google_api_expr_v1alpha1_SourceI UPB_INLINE google_api_expr_v1alpha1_SourceInfo *google_api_expr_v1alpha1_SourceInfo_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_SourceInfo *ret = google_api_expr_v1alpha1_SourceInfo_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourceInfo_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourceInfo_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_SourceInfo *google_api_expr_v1alpha1_SourceInfo_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_SourceInfo *ret = google_api_expr_v1alpha1_SourceInfo_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourceInfo_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourceInfo_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_SourceInfo_serialize(const google_api_expr_v1alpha1_SourceInfo *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_SourceInfo_msginit, arena, len); @@ -832,13 +898,19 @@ UPB_INLINE google_api_expr_v1alpha1_SourcePosition *google_api_expr_v1alpha1_Sou UPB_INLINE google_api_expr_v1alpha1_SourcePosition *google_api_expr_v1alpha1_SourcePosition_parse(const char *buf, size_t size, upb_arena *arena) { google_api_expr_v1alpha1_SourcePosition *ret = google_api_expr_v1alpha1_SourcePosition_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourcePosition_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourcePosition_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_expr_v1alpha1_SourcePosition *google_api_expr_v1alpha1_SourcePosition_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_expr_v1alpha1_SourcePosition *ret = google_api_expr_v1alpha1_SourcePosition_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourcePosition_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_expr_v1alpha1_SourcePosition_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_expr_v1alpha1_SourcePosition_serialize(const google_api_expr_v1alpha1_SourcePosition *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_expr_v1alpha1_SourcePosition_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/api/http.upb.c b/src/core/ext/upb-generated/google/api/http.upb.c index f17613acb98..d064f6eddbf 100644 --- a/src/core/ext/upb-generated/google/api/http.upb.c +++ b/src/core/ext/upb-generated/google/api/http.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/api/http.upb.h" #include "upb/port_def.inc" @@ -17,14 +17,14 @@ static const upb_msglayout *const google_api_Http_submsgs[1] = { }; static const upb_msglayout_field google_api_Http__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 11, 3}, - {2, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_Http_msginit = { &google_api_Http_submsgs[0], &google_api_Http__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const google_api_HttpRule_submsgs[2] = { @@ -33,33 +33,33 @@ static const upb_msglayout *const google_api_HttpRule_submsgs[2] = { }; static const upb_msglayout_field google_api_HttpRule__fields[10] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {3, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {4, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {5, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {6, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, 1}, - {7, UPB_SIZE(8, 16), 0, 0, 9, 1}, - {8, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 11, 1}, - {11, UPB_SIZE(24, 48), 0, 1, 11, 3}, - {12, UPB_SIZE(16, 32), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 9, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(28, 56), UPB_SIZE(-37, -73), 0, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(24, 48), 0, 1, 11, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(16, 32), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_HttpRule_msginit = { &google_api_HttpRule_submsgs[0], &google_api_HttpRule__fields[0], - UPB_SIZE(40, 80), 10, false, 255, + UPB_SIZE(40, 80), 10, false, 8, 255, }; static const upb_msglayout_field google_api_CustomHttpPattern__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout google_api_CustomHttpPattern_msginit = { NULL, &google_api_CustomHttpPattern__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/api/http.upb.h b/src/core/ext/upb-generated/google/api/http.upb.h index ed4e6d10dce..b0745b988e6 100644 --- a/src/core/ext/upb-generated/google/api/http.upb.h +++ b/src/core/ext/upb-generated/google/api/http.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_API_HTTP_PROTO_UPB_H_ #define GOOGLE_API_HTTP_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE google_api_Http *google_api_Http_new(upb_arena *arena) { UPB_INLINE google_api_Http *google_api_Http_parse(const char *buf, size_t size, upb_arena *arena) { google_api_Http *ret = google_api_Http_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_Http_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_Http_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_Http *google_api_Http_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_Http *ret = google_api_Http_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_Http_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_Http_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_Http_serialize(const google_api_Http *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_Http_msginit, arena, len); @@ -80,13 +86,19 @@ UPB_INLINE google_api_HttpRule *google_api_HttpRule_new(upb_arena *arena) { UPB_INLINE google_api_HttpRule *google_api_HttpRule_parse(const char *buf, size_t size, upb_arena *arena) { google_api_HttpRule *ret = google_api_HttpRule_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_HttpRule_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_HttpRule_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_HttpRule *google_api_HttpRule_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_HttpRule *ret = google_api_HttpRule_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_HttpRule_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_HttpRule_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_HttpRule_serialize(const google_api_HttpRule *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_HttpRule_msginit, arena, len); @@ -179,13 +191,19 @@ UPB_INLINE google_api_CustomHttpPattern *google_api_CustomHttpPattern_new(upb_ar UPB_INLINE google_api_CustomHttpPattern *google_api_CustomHttpPattern_parse(const char *buf, size_t size, upb_arena *arena) { google_api_CustomHttpPattern *ret = google_api_CustomHttpPattern_new(arena); - return (ret && upb_decode(buf, size, ret, &google_api_CustomHttpPattern_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_api_CustomHttpPattern_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_api_CustomHttpPattern *google_api_CustomHttpPattern_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_api_CustomHttpPattern *ret = google_api_CustomHttpPattern_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_api_CustomHttpPattern_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_api_CustomHttpPattern_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_api_CustomHttpPattern_serialize(const google_api_CustomHttpPattern *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_api_CustomHttpPattern_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/any.upb.c b/src/core/ext/upb-generated/google/protobuf/any.upb.c index 93eaa603e32..bdf0dc05610 100644 --- a/src/core/ext/upb-generated/google/protobuf/any.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/any.upb.c @@ -7,20 +7,20 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/any.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field google_protobuf_Any__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 12, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Any_msginit = { NULL, &google_protobuf_Any__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/any.upb.h b/src/core/ext/upb-generated/google/protobuf/any.upb.h index 2bd44f76852..ca6a7a0f299 100644 --- a/src/core/ext/upb-generated/google/protobuf/any.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/any.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_ANY_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_ANY_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE google_protobuf_Any *google_protobuf_Any_new(upb_arena *arena) { UPB_INLINE google_protobuf_Any *google_protobuf_Any_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Any *ret = google_protobuf_Any_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Any_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Any_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Any *google_protobuf_Any_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Any *ret = google_protobuf_Any_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Any_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Any_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Any_serialize(const google_protobuf_Any *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Any_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c b/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c index 339fafac090..a6b9af91322 100644 --- a/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/descriptor.upb.h" #include "upb/port_def.inc" @@ -17,13 +17,13 @@ static const upb_msglayout *const google_protobuf_FileDescriptorSet_submsgs[1] = }; static const upb_msglayout_field google_protobuf_FileDescriptorSet__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_FileDescriptorSet_msginit = { &google_protobuf_FileDescriptorSet_submsgs[0], &google_protobuf_FileDescriptorSet__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const google_protobuf_FileDescriptorProto_submsgs[6] = { @@ -36,24 +36,24 @@ static const upb_msglayout *const google_protobuf_FileDescriptorProto_submsgs[6] }; static const upb_msglayout_field google_protobuf_FileDescriptorProto__fields[12] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(12, 24), 2, 0, 12, 1}, - {3, UPB_SIZE(36, 72), 0, 0, 12, 3}, - {4, UPB_SIZE(40, 80), 0, 0, 11, 3}, - {5, UPB_SIZE(44, 88), 0, 1, 11, 3}, - {6, UPB_SIZE(48, 96), 0, 4, 11, 3}, - {7, UPB_SIZE(52, 104), 0, 2, 11, 3}, - {8, UPB_SIZE(28, 56), 3, 3, 11, 1}, - {9, UPB_SIZE(32, 64), 4, 5, 11, 1}, - {10, UPB_SIZE(56, 112), 0, 0, 5, 3}, - {11, UPB_SIZE(60, 120), 0, 0, 5, 3}, - {12, UPB_SIZE(20, 40), 5, 0, 12, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 2, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(36, 72), 0, 0, 12, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(40, 80), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(44, 88), 0, 1, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(48, 96), 0, 4, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(52, 104), 0, 2, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(28, 56), 3, 3, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 64), 4, 5, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(56, 112), 0, 0, 5, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(60, 120), 0, 0, 5, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(20, 40), 5, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_FileDescriptorProto_msginit = { &google_protobuf_FileDescriptorProto_submsgs[0], &google_protobuf_FileDescriptorProto__fields[0], - UPB_SIZE(64, 128), 12, false, 255, + UPB_SIZE(64, 128), 12, false, 12, 255, }; static const upb_msglayout *const google_protobuf_DescriptorProto_submsgs[7] = { @@ -67,22 +67,22 @@ static const upb_msglayout *const google_protobuf_DescriptorProto_submsgs[7] = { }; static const upb_msglayout_field google_protobuf_DescriptorProto__fields[10] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(16, 32), 0, 4, 11, 3}, - {3, UPB_SIZE(20, 40), 0, 0, 11, 3}, - {4, UPB_SIZE(24, 48), 0, 3, 11, 3}, - {5, UPB_SIZE(28, 56), 0, 1, 11, 3}, - {6, UPB_SIZE(32, 64), 0, 4, 11, 3}, - {7, UPB_SIZE(12, 24), 2, 5, 11, 1}, - {8, UPB_SIZE(36, 72), 0, 6, 11, 3}, - {9, UPB_SIZE(40, 80), 0, 2, 11, 3}, - {10, UPB_SIZE(44, 88), 0, 0, 12, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 4, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(24, 48), 0, 3, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(28, 56), 0, 1, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(32, 64), 0, 4, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(12, 24), 2, 5, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(36, 72), 0, 6, 11, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(40, 80), 0, 2, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(44, 88), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_DescriptorProto_msginit = { &google_protobuf_DescriptorProto_submsgs[0], &google_protobuf_DescriptorProto__fields[0], - UPB_SIZE(48, 96), 10, false, 255, + UPB_SIZE(48, 96), 10, false, 10, 255, }; static const upb_msglayout *const google_protobuf_DescriptorProto_ExtensionRange_submsgs[1] = { @@ -90,26 +90,26 @@ static const upb_msglayout *const google_protobuf_DescriptorProto_ExtensionRange }; static const upb_msglayout_field google_protobuf_DescriptorProto_ExtensionRange__fields[3] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, - {3, UPB_SIZE(12, 16), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 16), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_DescriptorProto_ExtensionRange_msginit = { &google_protobuf_DescriptorProto_ExtensionRange_submsgs[0], &google_protobuf_DescriptorProto_ExtensionRange__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout_field google_protobuf_DescriptorProto_ReservedRange__fields[2] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_DescriptorProto_ReservedRange_msginit = { NULL, &google_protobuf_DescriptorProto_ReservedRange__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_ExtensionRangeOptions_submsgs[1] = { @@ -117,13 +117,13 @@ static const upb_msglayout *const google_protobuf_ExtensionRangeOptions_submsgs[ }; static const upb_msglayout_field google_protobuf_ExtensionRangeOptions__fields[1] = { - {999, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {999, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_ExtensionRangeOptions_msginit = { &google_protobuf_ExtensionRangeOptions_submsgs[0], &google_protobuf_ExtensionRangeOptions__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 0, 255, }; static const upb_msglayout *const google_protobuf_FieldDescriptorProto_submsgs[1] = { @@ -131,23 +131,23 @@ static const upb_msglayout *const google_protobuf_FieldDescriptorProto_submsgs[1 }; static const upb_msglayout_field google_protobuf_FieldDescriptorProto__fields[11] = { - {1, UPB_SIZE(24, 24), 1, 0, 12, 1}, - {2, UPB_SIZE(32, 40), 2, 0, 12, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 5, 1}, - {4, UPB_SIZE(4, 4), 4, 0, 14, 1}, - {5, UPB_SIZE(8, 8), 5, 0, 14, 1}, - {6, UPB_SIZE(40, 56), 6, 0, 12, 1}, - {7, UPB_SIZE(48, 72), 7, 0, 12, 1}, - {8, UPB_SIZE(64, 104), 8, 0, 11, 1}, - {9, UPB_SIZE(16, 16), 9, 0, 5, 1}, - {10, UPB_SIZE(56, 88), 10, 0, 12, 1}, - {17, UPB_SIZE(20, 20), 11, 0, 8, 1}, + {1, UPB_SIZE(24, 24), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 40), 2, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 5, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 4), 4, 0, 14, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 8), 5, 0, 14, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(40, 56), 6, 0, 12, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(48, 72), 7, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(64, 104), 8, 0, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(16, 16), 9, 0, 5, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(56, 88), 10, 0, 12, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(20, 20), 11, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_FieldDescriptorProto_msginit = { &google_protobuf_FieldDescriptorProto_submsgs[0], &google_protobuf_FieldDescriptorProto__fields[0], - UPB_SIZE(72, 112), 11, false, 255, + UPB_SIZE(72, 112), 11, false, 10, 255, }; static const upb_msglayout *const google_protobuf_OneofDescriptorProto_submsgs[1] = { @@ -155,14 +155,14 @@ static const upb_msglayout *const google_protobuf_OneofDescriptorProto_submsgs[1 }; static const upb_msglayout_field google_protobuf_OneofDescriptorProto__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(12, 24), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_OneofDescriptorProto_msginit = { &google_protobuf_OneofDescriptorProto_submsgs[0], &google_protobuf_OneofDescriptorProto__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_EnumDescriptorProto_submsgs[3] = { @@ -172,28 +172,28 @@ static const upb_msglayout *const google_protobuf_EnumDescriptorProto_submsgs[3] }; static const upb_msglayout_field google_protobuf_EnumDescriptorProto__fields[5] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(16, 32), 0, 2, 11, 3}, - {3, UPB_SIZE(12, 24), 2, 1, 11, 1}, - {4, UPB_SIZE(20, 40), 0, 0, 11, 3}, - {5, UPB_SIZE(24, 48), 0, 0, 12, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 2, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 2, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(24, 48), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_EnumDescriptorProto_msginit = { &google_protobuf_EnumDescriptorProto_submsgs[0], &google_protobuf_EnumDescriptorProto__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 5, 255, }; static const upb_msglayout_field google_protobuf_EnumDescriptorProto_EnumReservedRange__fields[2] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit = { NULL, &google_protobuf_EnumDescriptorProto_EnumReservedRange__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_EnumValueDescriptorProto_submsgs[1] = { @@ -201,15 +201,15 @@ static const upb_msglayout *const google_protobuf_EnumValueDescriptorProto_subms }; static const upb_msglayout_field google_protobuf_EnumValueDescriptorProto__fields[3] = { - {1, UPB_SIZE(8, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(4, 4), 2, 0, 5, 1}, - {3, UPB_SIZE(16, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 2, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_EnumValueDescriptorProto_msginit = { &google_protobuf_EnumValueDescriptorProto_submsgs[0], &google_protobuf_EnumValueDescriptorProto__fields[0], - UPB_SIZE(24, 32), 3, false, 255, + UPB_SIZE(24, 32), 3, false, 3, 255, }; static const upb_msglayout *const google_protobuf_ServiceDescriptorProto_submsgs[2] = { @@ -218,15 +218,15 @@ static const upb_msglayout *const google_protobuf_ServiceDescriptorProto_submsgs }; static const upb_msglayout_field google_protobuf_ServiceDescriptorProto__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {3, UPB_SIZE(12, 24), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_ServiceDescriptorProto_msginit = { &google_protobuf_ServiceDescriptorProto_submsgs[0], &google_protobuf_ServiceDescriptorProto__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const google_protobuf_MethodDescriptorProto_submsgs[1] = { @@ -234,18 +234,18 @@ static const upb_msglayout *const google_protobuf_MethodDescriptorProto_submsgs[ }; static const upb_msglayout_field google_protobuf_MethodDescriptorProto__fields[6] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(12, 24), 2, 0, 12, 1}, - {3, UPB_SIZE(20, 40), 3, 0, 12, 1}, - {4, UPB_SIZE(28, 56), 4, 0, 11, 1}, - {5, UPB_SIZE(1, 1), 5, 0, 8, 1}, - {6, UPB_SIZE(2, 2), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 2, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 3, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 56), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(1, 1), 5, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(2, 2), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_MethodDescriptorProto_msginit = { &google_protobuf_MethodDescriptorProto_submsgs[0], &google_protobuf_MethodDescriptorProto__fields[0], - UPB_SIZE(32, 64), 6, false, 255, + UPB_SIZE(32, 64), 6, false, 6, 255, }; static const upb_msglayout *const google_protobuf_FileOptions_submsgs[1] = { @@ -253,33 +253,33 @@ static const upb_msglayout *const google_protobuf_FileOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_FileOptions__fields[21] = { - {1, UPB_SIZE(20, 24), 1, 0, 12, 1}, - {8, UPB_SIZE(28, 40), 2, 0, 12, 1}, - {9, UPB_SIZE(4, 4), 3, 0, 14, 1}, - {10, UPB_SIZE(8, 8), 4, 0, 8, 1}, - {11, UPB_SIZE(36, 56), 5, 0, 12, 1}, - {16, UPB_SIZE(9, 9), 6, 0, 8, 1}, - {17, UPB_SIZE(10, 10), 7, 0, 8, 1}, - {18, UPB_SIZE(11, 11), 8, 0, 8, 1}, - {20, UPB_SIZE(12, 12), 9, 0, 8, 1}, - {23, UPB_SIZE(13, 13), 10, 0, 8, 1}, - {27, UPB_SIZE(14, 14), 11, 0, 8, 1}, - {31, UPB_SIZE(15, 15), 12, 0, 8, 1}, - {36, UPB_SIZE(44, 72), 13, 0, 12, 1}, - {37, UPB_SIZE(52, 88), 14, 0, 12, 1}, - {39, UPB_SIZE(60, 104), 15, 0, 12, 1}, - {40, UPB_SIZE(68, 120), 16, 0, 12, 1}, - {41, UPB_SIZE(76, 136), 17, 0, 12, 1}, - {42, UPB_SIZE(16, 16), 18, 0, 8, 1}, - {44, UPB_SIZE(84, 152), 19, 0, 12, 1}, - {45, UPB_SIZE(92, 168), 20, 0, 12, 1}, - {999, UPB_SIZE(100, 184), 0, 0, 11, 3}, + {1, UPB_SIZE(20, 24), 1, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(28, 40), 2, 0, 12, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(4, 4), 3, 0, 14, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(8, 8), 4, 0, 8, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(36, 56), 5, 0, 12, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(9, 9), 6, 0, 8, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(10, 10), 7, 0, 8, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(11, 11), 8, 0, 8, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(12, 12), 9, 0, 8, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(13, 13), 10, 0, 8, _UPB_MODE_SCALAR}, + {27, UPB_SIZE(14, 14), 11, 0, 8, _UPB_MODE_SCALAR}, + {31, UPB_SIZE(15, 15), 12, 0, 8, _UPB_MODE_SCALAR}, + {36, UPB_SIZE(44, 72), 13, 0, 12, _UPB_MODE_SCALAR}, + {37, UPB_SIZE(52, 88), 14, 0, 12, _UPB_MODE_SCALAR}, + {39, UPB_SIZE(60, 104), 15, 0, 12, _UPB_MODE_SCALAR}, + {40, UPB_SIZE(68, 120), 16, 0, 12, _UPB_MODE_SCALAR}, + {41, UPB_SIZE(76, 136), 17, 0, 12, _UPB_MODE_SCALAR}, + {42, UPB_SIZE(16, 16), 18, 0, 8, _UPB_MODE_SCALAR}, + {44, UPB_SIZE(84, 152), 19, 0, 12, _UPB_MODE_SCALAR}, + {45, UPB_SIZE(92, 168), 20, 0, 12, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(100, 184), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_FileOptions_msginit = { &google_protobuf_FileOptions_submsgs[0], &google_protobuf_FileOptions__fields[0], - UPB_SIZE(104, 192), 21, false, 255, + UPB_SIZE(104, 192), 21, false, 1, 255, }; static const upb_msglayout *const google_protobuf_MessageOptions_submsgs[1] = { @@ -287,17 +287,17 @@ static const upb_msglayout *const google_protobuf_MessageOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_MessageOptions__fields[5] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {2, UPB_SIZE(2, 2), 2, 0, 8, 1}, - {3, UPB_SIZE(3, 3), 3, 0, 8, 1}, - {7, UPB_SIZE(4, 4), 4, 0, 8, 1}, - {999, UPB_SIZE(8, 8), 0, 0, 11, 3}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(2, 2), 2, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(3, 3), 3, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 4), 4, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(8, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_MessageOptions_msginit = { &google_protobuf_MessageOptions_submsgs[0], &google_protobuf_MessageOptions__fields[0], - UPB_SIZE(16, 16), 5, false, 255, + UPB_SIZE(16, 16), 5, false, 3, 255, }; static const upb_msglayout *const google_protobuf_FieldOptions_submsgs[1] = { @@ -305,19 +305,19 @@ static const upb_msglayout *const google_protobuf_FieldOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_FieldOptions__fields[7] = { - {1, UPB_SIZE(4, 4), 1, 0, 14, 1}, - {2, UPB_SIZE(12, 12), 2, 0, 8, 1}, - {3, UPB_SIZE(13, 13), 3, 0, 8, 1}, - {5, UPB_SIZE(14, 14), 4, 0, 8, 1}, - {6, UPB_SIZE(8, 8), 5, 0, 14, 1}, - {10, UPB_SIZE(15, 15), 6, 0, 8, 1}, - {999, UPB_SIZE(16, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 4), 1, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 12), 2, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(13, 13), 3, 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(14, 14), 4, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), 5, 0, 14, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(15, 15), 6, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(16, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_FieldOptions_msginit = { &google_protobuf_FieldOptions_submsgs[0], &google_protobuf_FieldOptions__fields[0], - UPB_SIZE(24, 24), 7, false, 255, + UPB_SIZE(24, 24), 7, false, 3, 255, }; static const upb_msglayout *const google_protobuf_OneofOptions_submsgs[1] = { @@ -325,13 +325,13 @@ static const upb_msglayout *const google_protobuf_OneofOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_OneofOptions__fields[1] = { - {999, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {999, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_OneofOptions_msginit = { &google_protobuf_OneofOptions_submsgs[0], &google_protobuf_OneofOptions__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 0, 255, }; static const upb_msglayout *const google_protobuf_EnumOptions_submsgs[1] = { @@ -339,15 +339,15 @@ static const upb_msglayout *const google_protobuf_EnumOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_EnumOptions__fields[3] = { - {2, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {3, UPB_SIZE(2, 2), 2, 0, 8, 1}, - {999, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {2, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(2, 2), 2, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_EnumOptions_msginit = { &google_protobuf_EnumOptions_submsgs[0], &google_protobuf_EnumOptions__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 0, 255, }; static const upb_msglayout *const google_protobuf_EnumValueOptions_submsgs[1] = { @@ -355,14 +355,14 @@ static const upb_msglayout *const google_protobuf_EnumValueOptions_submsgs[1] = }; static const upb_msglayout_field google_protobuf_EnumValueOptions__fields[2] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {999, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_EnumValueOptions_msginit = { &google_protobuf_EnumValueOptions_submsgs[0], &google_protobuf_EnumValueOptions__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 1, 255, }; static const upb_msglayout *const google_protobuf_ServiceOptions_submsgs[1] = { @@ -370,14 +370,14 @@ static const upb_msglayout *const google_protobuf_ServiceOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_ServiceOptions__fields[2] = { - {33, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {999, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {33, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_ServiceOptions_msginit = { &google_protobuf_ServiceOptions_submsgs[0], &google_protobuf_ServiceOptions__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 0, 255, }; static const upb_msglayout *const google_protobuf_MethodOptions_submsgs[1] = { @@ -385,15 +385,15 @@ static const upb_msglayout *const google_protobuf_MethodOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_MethodOptions__fields[3] = { - {33, UPB_SIZE(8, 8), 1, 0, 8, 1}, - {34, UPB_SIZE(4, 4), 2, 0, 14, 1}, - {999, UPB_SIZE(12, 16), 0, 0, 11, 3}, + {33, UPB_SIZE(8, 8), 1, 0, 8, _UPB_MODE_SCALAR}, + {34, UPB_SIZE(4, 4), 2, 0, 14, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(12, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_MethodOptions_msginit = { &google_protobuf_MethodOptions_submsgs[0], &google_protobuf_MethodOptions__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 0, 255, }; static const upb_msglayout *const google_protobuf_UninterpretedOption_submsgs[1] = { @@ -401,30 +401,30 @@ static const upb_msglayout *const google_protobuf_UninterpretedOption_submsgs[1] }; static const upb_msglayout_field google_protobuf_UninterpretedOption__fields[7] = { - {2, UPB_SIZE(56, 80), 0, 0, 11, 3}, - {3, UPB_SIZE(32, 32), 1, 0, 12, 1}, - {4, UPB_SIZE(8, 8), 2, 0, 4, 1}, - {5, UPB_SIZE(16, 16), 3, 0, 3, 1}, - {6, UPB_SIZE(24, 24), 4, 0, 1, 1}, - {7, UPB_SIZE(40, 48), 5, 0, 12, 1}, - {8, UPB_SIZE(48, 64), 6, 0, 12, 1}, + {2, UPB_SIZE(56, 80), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(32, 32), 1, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), 2, 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 16), 3, 0, 3, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 24), 4, 0, 1, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(40, 48), 5, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(48, 64), 6, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_UninterpretedOption_msginit = { &google_protobuf_UninterpretedOption_submsgs[0], &google_protobuf_UninterpretedOption__fields[0], - UPB_SIZE(64, 96), 7, false, 255, + UPB_SIZE(64, 96), 7, false, 0, 255, }; static const upb_msglayout_field google_protobuf_UninterpretedOption_NamePart__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 2}, - {2, UPB_SIZE(1, 1), 2, 0, 8, 2}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 2, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_UninterpretedOption_NamePart_msginit = { NULL, &google_protobuf_UninterpretedOption_NamePart__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_SourceCodeInfo_submsgs[1] = { @@ -432,27 +432,27 @@ static const upb_msglayout *const google_protobuf_SourceCodeInfo_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_SourceCodeInfo__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_SourceCodeInfo_msginit = { &google_protobuf_SourceCodeInfo_submsgs[0], &google_protobuf_SourceCodeInfo__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_SourceCodeInfo_Location__fields[5] = { - {1, UPB_SIZE(20, 40), 0, 0, 5, _UPB_LABEL_PACKED}, - {2, UPB_SIZE(24, 48), 0, 0, 5, _UPB_LABEL_PACKED}, - {3, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {4, UPB_SIZE(12, 24), 2, 0, 12, 1}, - {6, UPB_SIZE(28, 56), 0, 0, 12, 3}, + {1, UPB_SIZE(20, 40), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {2, UPB_SIZE(24, 48), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {3, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 2, 0, 12, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 56), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_SourceCodeInfo_Location_msginit = { NULL, &google_protobuf_SourceCodeInfo_Location__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 4, 255, }; static const upb_msglayout *const google_protobuf_GeneratedCodeInfo_submsgs[1] = { @@ -460,26 +460,26 @@ static const upb_msglayout *const google_protobuf_GeneratedCodeInfo_submsgs[1] = }; static const upb_msglayout_field google_protobuf_GeneratedCodeInfo__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_GeneratedCodeInfo_msginit = { &google_protobuf_GeneratedCodeInfo_submsgs[0], &google_protobuf_GeneratedCodeInfo__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_GeneratedCodeInfo_Annotation__fields[4] = { - {1, UPB_SIZE(20, 32), 0, 0, 5, _UPB_LABEL_PACKED}, - {2, UPB_SIZE(12, 16), 1, 0, 12, 1}, - {3, UPB_SIZE(4, 4), 2, 0, 5, 1}, - {4, UPB_SIZE(8, 8), 3, 0, 5, 1}, + {1, UPB_SIZE(20, 32), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {2, UPB_SIZE(12, 16), 1, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 4), 2, 0, 5, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), 3, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_GeneratedCodeInfo_Annotation_msginit = { NULL, &google_protobuf_GeneratedCodeInfo_Annotation__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h b/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h index a8ed71a688c..4767b3af688 100644 --- a/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -162,13 +162,19 @@ UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_ UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FileDescriptorSet *ret = google_protobuf_FileDescriptorSet_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FileDescriptorSet *ret = google_protobuf_FileDescriptorSet_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FileDescriptorSet_serialize(const google_protobuf_FileDescriptorSet *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FileDescriptorSet_msginit, arena, len); @@ -199,13 +205,19 @@ UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorPr UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FileDescriptorProto *ret = google_protobuf_FileDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FileDescriptorProto *ret = google_protobuf_FileDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FileDescriptorProto_serialize(const google_protobuf_FileDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FileDescriptorProto_msginit, arena, len); @@ -362,13 +374,19 @@ UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_new( UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DescriptorProto *ret = google_protobuf_DescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DescriptorProto *ret = google_protobuf_DescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DescriptorProto_serialize(const google_protobuf_DescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DescriptorProto_msginit, arena, len); @@ -521,13 +539,19 @@ UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_Descr UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_DescriptorProto_ExtensionRange_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DescriptorProto_ExtensionRange *ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_DescriptorProto_ExtensionRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DescriptorProto_ExtensionRange *ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DescriptorProto_ExtensionRange_serialize(const google_protobuf_DescriptorProto_ExtensionRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena, len); @@ -570,13 +594,19 @@ UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_Descri UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_DescriptorProto_ReservedRange_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DescriptorProto_ReservedRange *ret = google_protobuf_DescriptorProto_ReservedRange_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_DescriptorProto_ReservedRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DescriptorProto_ReservedRange *ret = google_protobuf_DescriptorProto_ReservedRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DescriptorProto_ReservedRange_serialize(const google_protobuf_DescriptorProto_ReservedRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena, len); @@ -604,13 +634,19 @@ UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRange UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRangeOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ExtensionRangeOptions *ret = google_protobuf_ExtensionRangeOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRangeOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ExtensionRangeOptions *ret = google_protobuf_ExtensionRangeOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ExtensionRangeOptions_serialize(const google_protobuf_ExtensionRangeOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ExtensionRangeOptions_msginit, arena, len); @@ -641,13 +677,19 @@ UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptor UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FieldDescriptorProto *ret = google_protobuf_FieldDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FieldDescriptorProto *ret = google_protobuf_FieldDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FieldDescriptorProto_serialize(const google_protobuf_FieldDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FieldDescriptorProto_msginit, arena, len); @@ -738,13 +780,19 @@ UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptor UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_OneofDescriptorProto *ret = google_protobuf_OneofDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_OneofDescriptorProto *ret = google_protobuf_OneofDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_OneofDescriptorProto_serialize(const google_protobuf_OneofDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_OneofDescriptorProto_msginit, arena, len); @@ -781,13 +829,19 @@ UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorPr UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumDescriptorProto *ret = google_protobuf_EnumDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumDescriptorProto *ret = google_protobuf_EnumDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumDescriptorProto_serialize(const google_protobuf_EnumDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumDescriptorProto_msginit, arena, len); @@ -865,13 +919,19 @@ UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobu UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobuf_EnumDescriptorProto_EnumReservedRange_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumDescriptorProto_EnumReservedRange *ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobuf_EnumDescriptorProto_EnumReservedRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumDescriptorProto_EnumReservedRange *ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumDescriptorProto_EnumReservedRange_serialize(const google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena, len); @@ -899,13 +959,19 @@ UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDe UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumValueDescriptorProto *ret = google_protobuf_EnumValueDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumValueDescriptorProto *ret = google_protobuf_EnumValueDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumValueDescriptorProto_serialize(const google_protobuf_EnumValueDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumValueDescriptorProto_msginit, arena, len); @@ -948,13 +1014,19 @@ UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescri UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ServiceDescriptorProto *ret = google_protobuf_ServiceDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ServiceDescriptorProto *ret = google_protobuf_ServiceDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ServiceDescriptorProto_serialize(const google_protobuf_ServiceDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ServiceDescriptorProto_msginit, arena, len); @@ -1006,13 +1078,19 @@ UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescript UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_MethodDescriptorProto *ret = google_protobuf_MethodDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_MethodDescriptorProto *ret = google_protobuf_MethodDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_MethodDescriptorProto_serialize(const google_protobuf_MethodDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_MethodDescriptorProto_msginit, arena, len); @@ -1073,13 +1151,19 @@ UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_new(upb_aren UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FileOptions *ret = google_protobuf_FileOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FileOptions *ret = google_protobuf_FileOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FileOptions_serialize(const google_protobuf_FileOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FileOptions_msginit, arena, len); @@ -1230,13 +1314,19 @@ UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_new(up UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_MessageOptions *ret = google_protobuf_MessageOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_MessageOptions *ret = google_protobuf_MessageOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_MessageOptions_serialize(const google_protobuf_MessageOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_MessageOptions_msginit, arena, len); @@ -1291,13 +1381,19 @@ UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_new(upb_ar UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FieldOptions *ret = google_protobuf_FieldOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FieldOptions *ret = google_protobuf_FieldOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FieldOptions_serialize(const google_protobuf_FieldOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FieldOptions_msginit, arena, len); @@ -1364,13 +1460,19 @@ UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_new(upb_ar UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_OneofOptions *ret = google_protobuf_OneofOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_OneofOptions *ret = google_protobuf_OneofOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_OneofOptions_serialize(const google_protobuf_OneofOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_OneofOptions_msginit, arena, len); @@ -1401,13 +1503,19 @@ UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_new(upb_aren UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumOptions *ret = google_protobuf_EnumOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumOptions *ret = google_protobuf_EnumOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumOptions_serialize(const google_protobuf_EnumOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumOptions_msginit, arena, len); @@ -1450,13 +1558,19 @@ UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_ne UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumValueOptions *ret = google_protobuf_EnumValueOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumValueOptions *ret = google_protobuf_EnumValueOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumValueOptions_serialize(const google_protobuf_EnumValueOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumValueOptions_msginit, arena, len); @@ -1493,13 +1607,19 @@ UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_new(up UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ServiceOptions *ret = google_protobuf_ServiceOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ServiceOptions *ret = google_protobuf_ServiceOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ServiceOptions_serialize(const google_protobuf_ServiceOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ServiceOptions_msginit, arena, len); @@ -1536,13 +1656,19 @@ UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_new(upb_ UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_MethodOptions *ret = google_protobuf_MethodOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_MethodOptions *ret = google_protobuf_MethodOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_MethodOptions_serialize(const google_protobuf_MethodOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_MethodOptions_msginit, arena, len); @@ -1585,13 +1711,19 @@ UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOpt UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOption_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_UninterpretedOption *ret = google_protobuf_UninterpretedOption_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOption_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_UninterpretedOption *ret = google_protobuf_UninterpretedOption_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_UninterpretedOption_serialize(const google_protobuf_UninterpretedOption *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_UninterpretedOption_msginit, arena, len); @@ -1658,13 +1790,19 @@ UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_Uninter UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_UninterpretedOption_NamePart_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_UninterpretedOption_NamePart *ret = google_protobuf_UninterpretedOption_NamePart_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_UninterpretedOption_NamePart_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_UninterpretedOption_NamePart *ret = google_protobuf_UninterpretedOption_NamePart_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_UninterpretedOption_NamePart_serialize(const google_protobuf_UninterpretedOption_NamePart *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_UninterpretedOption_NamePart_msginit, arena, len); @@ -1692,13 +1830,19 @@ UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_new(up UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_SourceCodeInfo *ret = google_protobuf_SourceCodeInfo_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_SourceCodeInfo *ret = google_protobuf_SourceCodeInfo_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_SourceCodeInfo_serialize(const google_protobuf_SourceCodeInfo *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_SourceCodeInfo_msginit, arena, len); @@ -1729,13 +1873,19 @@ UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeIn UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeInfo_Location_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_SourceCodeInfo_Location *ret = google_protobuf_SourceCodeInfo_Location_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeInfo_Location_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_SourceCodeInfo_Location *ret = google_protobuf_SourceCodeInfo_Location_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_SourceCodeInfo_Location_serialize(const google_protobuf_SourceCodeInfo_Location *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_SourceCodeInfo_Location_msginit, arena, len); @@ -1796,13 +1946,19 @@ UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_ UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_GeneratedCodeInfo *ret = google_protobuf_GeneratedCodeInfo_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_GeneratedCodeInfo *ret = google_protobuf_GeneratedCodeInfo_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_GeneratedCodeInfo_serialize(const google_protobuf_GeneratedCodeInfo *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_GeneratedCodeInfo_msginit, arena, len); @@ -1833,13 +1989,19 @@ UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_Generat UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_GeneratedCodeInfo_Annotation_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_GeneratedCodeInfo_Annotation *ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_GeneratedCodeInfo_Annotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_GeneratedCodeInfo_Annotation *ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_GeneratedCodeInfo_Annotation_serialize(const google_protobuf_GeneratedCodeInfo_Annotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/duration.upb.c b/src/core/ext/upb-generated/google/protobuf/duration.upb.c index 03d463a05ee..938294273e6 100644 --- a/src/core/ext/upb-generated/google/protobuf/duration.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/duration.upb.c @@ -7,20 +7,20 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/duration.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field google_protobuf_Duration__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 5, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Duration_msginit = { NULL, &google_protobuf_Duration__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/duration.upb.h b/src/core/ext/upb-generated/google/protobuf/duration.upb.h index 4692fd70be9..1b65ee0bab2 100644 --- a/src/core/ext/upb-generated/google/protobuf/duration.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/duration.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_DURATION_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_DURATION_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE google_protobuf_Duration *google_protobuf_Duration_new(upb_arena *are UPB_INLINE google_protobuf_Duration *google_protobuf_Duration_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Duration *ret = google_protobuf_Duration_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Duration_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Duration_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Duration *google_protobuf_Duration_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Duration *ret = google_protobuf_Duration_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Duration_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Duration_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Duration_serialize(const google_protobuf_Duration *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Duration_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/empty.upb.c b/src/core/ext/upb-generated/google/protobuf/empty.upb.c index f634b2bed69..7e483e5e645 100644 --- a/src/core/ext/upb-generated/google/protobuf/empty.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/empty.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/empty.upb.h" #include "upb/port_def.inc" @@ -15,7 +15,7 @@ const upb_msglayout google_protobuf_Empty_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/empty.upb.h b/src/core/ext/upb-generated/google/protobuf/empty.upb.h index 9202b832e19..1046eb18a7d 100644 --- a/src/core/ext/upb-generated/google/protobuf/empty.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/empty.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_EMPTY_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_EMPTY_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE google_protobuf_Empty *google_protobuf_Empty_new(upb_arena *arena) { UPB_INLINE google_protobuf_Empty *google_protobuf_Empty_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Empty *ret = google_protobuf_Empty_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Empty_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Empty_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Empty *google_protobuf_Empty_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Empty *ret = google_protobuf_Empty_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Empty_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Empty_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Empty_serialize(const google_protobuf_Empty *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Empty_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/struct.upb.c b/src/core/ext/upb-generated/google/protobuf/struct.upb.c index 04b916703cc..a49f9865ee3 100644 --- a/src/core/ext/upb-generated/google/protobuf/struct.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/struct.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/struct.upb.h" #include "upb/port_def.inc" @@ -17,13 +17,13 @@ static const upb_msglayout *const google_protobuf_Struct_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_Struct__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout google_protobuf_Struct_msginit = { &google_protobuf_Struct_submsgs[0], &google_protobuf_Struct__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const google_protobuf_Struct_FieldsEntry_submsgs[1] = { @@ -31,14 +31,14 @@ static const upb_msglayout *const google_protobuf_Struct_FieldsEntry_submsgs[1] }; static const upb_msglayout_field google_protobuf_Struct_FieldsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Struct_FieldsEntry_msginit = { &google_protobuf_Struct_FieldsEntry_submsgs[0], &google_protobuf_Struct_FieldsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_Value_submsgs[2] = { @@ -47,18 +47,18 @@ static const upb_msglayout *const google_protobuf_Value_submsgs[2] = { }; static const upb_msglayout_field google_protobuf_Value__fields[6] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 1, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, - {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 8, 1}, - {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, 1}, - {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 1, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Value_msginit = { &google_protobuf_Value_submsgs[0], &google_protobuf_Value__fields[0], - UPB_SIZE(16, 32), 6, false, 255, + UPB_SIZE(16, 32), 6, false, 6, 255, }; static const upb_msglayout *const google_protobuf_ListValue_submsgs[1] = { @@ -66,13 +66,13 @@ static const upb_msglayout *const google_protobuf_ListValue_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_ListValue__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_ListValue_msginit = { &google_protobuf_ListValue_submsgs[0], &google_protobuf_ListValue__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/struct.upb.h b/src/core/ext/upb-generated/google/protobuf/struct.upb.h index 29fec82b577..c33a36f87e7 100644 --- a/src/core/ext/upb-generated/google/protobuf/struct.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/struct.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_STRUCT_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_STRUCT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -46,13 +46,19 @@ UPB_INLINE google_protobuf_Struct *google_protobuf_Struct_new(upb_arena *arena) UPB_INLINE google_protobuf_Struct *google_protobuf_Struct_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Struct *ret = google_protobuf_Struct_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Struct_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Struct_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Struct *google_protobuf_Struct_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Struct *ret = google_protobuf_Struct_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Struct_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Struct_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Struct_serialize(const google_protobuf_Struct *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Struct_msginit, arena, len); @@ -94,13 +100,19 @@ UPB_INLINE google_protobuf_Value *google_protobuf_Value_new(upb_arena *arena) { UPB_INLINE google_protobuf_Value *google_protobuf_Value_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Value *ret = google_protobuf_Value_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Value_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Value_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Value *google_protobuf_Value_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Value *ret = google_protobuf_Value_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Value_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Value_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Value_serialize(const google_protobuf_Value *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Value_msginit, arena, len); @@ -175,13 +187,19 @@ UPB_INLINE google_protobuf_ListValue *google_protobuf_ListValue_new(upb_arena *a UPB_INLINE google_protobuf_ListValue *google_protobuf_ListValue_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ListValue *ret = google_protobuf_ListValue_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ListValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ListValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ListValue *google_protobuf_ListValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ListValue *ret = google_protobuf_ListValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ListValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ListValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ListValue_serialize(const google_protobuf_ListValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ListValue_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c b/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c index 718ce3b9dbb..574c633811d 100644 --- a/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c @@ -7,20 +7,20 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/timestamp.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field google_protobuf_Timestamp__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 5, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Timestamp_msginit = { NULL, &google_protobuf_Timestamp__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h b/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h index 31c1145adc9..058d90bd24b 100644 --- a/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_TIMESTAMP_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_TIMESTAMP_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE google_protobuf_Timestamp *google_protobuf_Timestamp_new(upb_arena *a UPB_INLINE google_protobuf_Timestamp *google_protobuf_Timestamp_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Timestamp *ret = google_protobuf_Timestamp_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Timestamp_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Timestamp_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Timestamp *google_protobuf_Timestamp_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Timestamp *ret = google_protobuf_Timestamp_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Timestamp_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Timestamp_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Timestamp_serialize(const google_protobuf_Timestamp *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Timestamp_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c b/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c index aabc1740129..cf926dfbe84 100644 --- a/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +++ b/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c @@ -7,99 +7,99 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/wrappers.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field google_protobuf_DoubleValue__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_DoubleValue_msginit = { NULL, &google_protobuf_DoubleValue__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_FloatValue__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 2, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 2, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_FloatValue_msginit = { NULL, &google_protobuf_FloatValue__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_Int64Value__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 3, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Int64Value_msginit = { NULL, &google_protobuf_Int64Value__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_UInt64Value__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 4, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 4, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_UInt64Value_msginit = { NULL, &google_protobuf_UInt64Value__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_Int32Value__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 5, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_Int32Value_msginit = { NULL, &google_protobuf_Int32Value__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_UInt32Value__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 13, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_UInt32Value_msginit = { NULL, &google_protobuf_UInt32Value__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_BoolValue__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_BoolValue_msginit = { NULL, &google_protobuf_BoolValue__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_StringValue__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_StringValue_msginit = { NULL, &google_protobuf_StringValue__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_BytesValue__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 12, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_BytesValue_msginit = { NULL, &google_protobuf_BytesValue__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h b/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h index c184b805064..356bae6cf31 100644 --- a/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +++ b/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_WRAPPERS_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_WRAPPERS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -57,13 +57,19 @@ UPB_INLINE google_protobuf_DoubleValue *google_protobuf_DoubleValue_new(upb_aren UPB_INLINE google_protobuf_DoubleValue *google_protobuf_DoubleValue_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DoubleValue *ret = google_protobuf_DoubleValue_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DoubleValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DoubleValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DoubleValue *google_protobuf_DoubleValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DoubleValue *ret = google_protobuf_DoubleValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DoubleValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DoubleValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DoubleValue_serialize(const google_protobuf_DoubleValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DoubleValue_msginit, arena, len); @@ -83,13 +89,19 @@ UPB_INLINE google_protobuf_FloatValue *google_protobuf_FloatValue_new(upb_arena UPB_INLINE google_protobuf_FloatValue *google_protobuf_FloatValue_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FloatValue *ret = google_protobuf_FloatValue_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FloatValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FloatValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FloatValue *google_protobuf_FloatValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FloatValue *ret = google_protobuf_FloatValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FloatValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FloatValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FloatValue_serialize(const google_protobuf_FloatValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FloatValue_msginit, arena, len); @@ -109,13 +121,19 @@ UPB_INLINE google_protobuf_Int64Value *google_protobuf_Int64Value_new(upb_arena UPB_INLINE google_protobuf_Int64Value *google_protobuf_Int64Value_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Int64Value *ret = google_protobuf_Int64Value_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Int64Value_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Int64Value_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Int64Value *google_protobuf_Int64Value_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Int64Value *ret = google_protobuf_Int64Value_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Int64Value_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Int64Value_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Int64Value_serialize(const google_protobuf_Int64Value *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Int64Value_msginit, arena, len); @@ -135,13 +153,19 @@ UPB_INLINE google_protobuf_UInt64Value *google_protobuf_UInt64Value_new(upb_aren UPB_INLINE google_protobuf_UInt64Value *google_protobuf_UInt64Value_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_UInt64Value *ret = google_protobuf_UInt64Value_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_UInt64Value_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_UInt64Value_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_UInt64Value *google_protobuf_UInt64Value_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_UInt64Value *ret = google_protobuf_UInt64Value_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_UInt64Value_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_UInt64Value_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_UInt64Value_serialize(const google_protobuf_UInt64Value *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_UInt64Value_msginit, arena, len); @@ -161,13 +185,19 @@ UPB_INLINE google_protobuf_Int32Value *google_protobuf_Int32Value_new(upb_arena UPB_INLINE google_protobuf_Int32Value *google_protobuf_Int32Value_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_Int32Value *ret = google_protobuf_Int32Value_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_Int32Value_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_Int32Value_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_Int32Value *google_protobuf_Int32Value_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_Int32Value *ret = google_protobuf_Int32Value_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_Int32Value_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_Int32Value_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_Int32Value_serialize(const google_protobuf_Int32Value *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_Int32Value_msginit, arena, len); @@ -187,13 +217,19 @@ UPB_INLINE google_protobuf_UInt32Value *google_protobuf_UInt32Value_new(upb_aren UPB_INLINE google_protobuf_UInt32Value *google_protobuf_UInt32Value_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_UInt32Value *ret = google_protobuf_UInt32Value_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_UInt32Value_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_UInt32Value_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_UInt32Value *google_protobuf_UInt32Value_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_UInt32Value *ret = google_protobuf_UInt32Value_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_UInt32Value_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_UInt32Value_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_UInt32Value_serialize(const google_protobuf_UInt32Value *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_UInt32Value_msginit, arena, len); @@ -213,13 +249,19 @@ UPB_INLINE google_protobuf_BoolValue *google_protobuf_BoolValue_new(upb_arena *a UPB_INLINE google_protobuf_BoolValue *google_protobuf_BoolValue_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_BoolValue *ret = google_protobuf_BoolValue_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_BoolValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_BoolValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_BoolValue *google_protobuf_BoolValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_BoolValue *ret = google_protobuf_BoolValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_BoolValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_BoolValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_BoolValue_serialize(const google_protobuf_BoolValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_BoolValue_msginit, arena, len); @@ -239,13 +281,19 @@ UPB_INLINE google_protobuf_StringValue *google_protobuf_StringValue_new(upb_aren UPB_INLINE google_protobuf_StringValue *google_protobuf_StringValue_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_StringValue *ret = google_protobuf_StringValue_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_StringValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_StringValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_StringValue *google_protobuf_StringValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_StringValue *ret = google_protobuf_StringValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_StringValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_StringValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_StringValue_serialize(const google_protobuf_StringValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_StringValue_msginit, arena, len); @@ -265,13 +313,19 @@ UPB_INLINE google_protobuf_BytesValue *google_protobuf_BytesValue_new(upb_arena UPB_INLINE google_protobuf_BytesValue *google_protobuf_BytesValue_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_BytesValue *ret = google_protobuf_BytesValue_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_BytesValue_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_BytesValue_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_BytesValue *google_protobuf_BytesValue_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_BytesValue *ret = google_protobuf_BytesValue_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_BytesValue_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_BytesValue_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_BytesValue_serialize(const google_protobuf_BytesValue *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_BytesValue_msginit, arena, len); diff --git a/src/core/ext/upb-generated/google/rpc/status.upb.c b/src/core/ext/upb-generated/google/rpc/status.upb.c index e276a0dc1f1..365fd5077f0 100644 --- a/src/core/ext/upb-generated/google/rpc/status.upb.c +++ b/src/core/ext/upb-generated/google/rpc/status.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/rpc/status.upb.h" #include "google/protobuf/any.upb.h" @@ -18,15 +18,15 @@ static const upb_msglayout *const google_rpc_Status_submsgs[1] = { }; static const upb_msglayout_field google_rpc_Status__fields[3] = { - {1, UPB_SIZE(0, 0), 0, 0, 5, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_rpc_Status_msginit = { &google_rpc_Status_submsgs[0], &google_rpc_Status__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/google/rpc/status.upb.h b/src/core/ext/upb-generated/google/rpc/status.upb.h index 4cc29b3dc26..32031f421aa 100644 --- a/src/core/ext/upb-generated/google/rpc/status.upb.h +++ b/src/core/ext/upb-generated/google/rpc/status.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_RPC_STATUS_PROTO_UPB_H_ #define GOOGLE_RPC_STATUS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE google_rpc_Status *google_rpc_Status_new(upb_arena *arena) { UPB_INLINE google_rpc_Status *google_rpc_Status_parse(const char *buf, size_t size, upb_arena *arena) { google_rpc_Status *ret = google_rpc_Status_new(arena); - return (ret && upb_decode(buf, size, ret, &google_rpc_Status_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_rpc_Status_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_rpc_Status *google_rpc_Status_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_rpc_Status *ret = google_rpc_Status_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_rpc_Status_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_rpc_Status_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_rpc_Status_serialize(const google_rpc_Status *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_rpc_Status_msginit, arena, len); diff --git a/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c b/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c index 8b6de3fb468..adf57dc4f0b 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +++ b/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "src/proto/grpc/gcp/altscontext.upb.h" #include "src/proto/grpc/gcp/transport_security_common.upb.h" @@ -19,30 +19,30 @@ static const upb_msglayout *const grpc_gcp_AltsContext_submsgs[2] = { }; static const upb_msglayout_field grpc_gcp_AltsContext__fields[7] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {4, UPB_SIZE(24, 40), 0, 0, 9, 1}, - {5, UPB_SIZE(32, 56), 0, 0, 9, 1}, - {6, UPB_SIZE(40, 72), 1, 1, 11, 1}, - {7, UPB_SIZE(44, 80), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 56), 0, 0, 9, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(40, 72), 1, 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(44, 80), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout grpc_gcp_AltsContext_msginit = { &grpc_gcp_AltsContext_submsgs[0], &grpc_gcp_AltsContext__fields[0], - UPB_SIZE(48, 96), 7, false, 255, + UPB_SIZE(48, 96), 7, false, 7, 255, }; static const upb_msglayout_field grpc_gcp_AltsContext_PeerAttributesEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_AltsContext_PeerAttributesEntry_msginit = { NULL, &grpc_gcp_AltsContext_PeerAttributesEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h b/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h index 3a91b53d000..da1b96c82a3 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +++ b/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h @@ -9,7 +9,7 @@ #ifndef SRC_PROTO_GRPC_GCP_ALTSCONTEXT_PROTO_UPB_H_ #define SRC_PROTO_GRPC_GCP_ALTSCONTEXT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE grpc_gcp_AltsContext *grpc_gcp_AltsContext_new(upb_arena *arena) { UPB_INLINE grpc_gcp_AltsContext *grpc_gcp_AltsContext_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_AltsContext *ret = grpc_gcp_AltsContext_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_AltsContext_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_AltsContext_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_AltsContext *grpc_gcp_AltsContext_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_AltsContext *ret = grpc_gcp_AltsContext_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_AltsContext_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_AltsContext_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_AltsContext_serialize(const grpc_gcp_AltsContext *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_AltsContext_msginit, arena, len); diff --git a/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c b/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c index 998f2d81c2c..05eea6e0423 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +++ b/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c @@ -7,22 +7,22 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "src/proto/grpc/gcp/handshaker.upb.h" #include "src/proto/grpc/gcp/transport_security_common.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field grpc_gcp_Endpoint__fields[3] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 5, 1}, - {3, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_Endpoint_msginit = { NULL, &grpc_gcp_Endpoint__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout *const grpc_gcp_Identity_submsgs[1] = { @@ -30,26 +30,26 @@ static const upb_msglayout *const grpc_gcp_Identity_submsgs[1] = { }; static const upb_msglayout_field grpc_gcp_Identity__fields[3] = { - {1, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, 1}, - {2, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, 1}, - {3, UPB_SIZE(0, 0), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), UPB_SIZE(-13, -25), 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout grpc_gcp_Identity_msginit = { &grpc_gcp_Identity_submsgs[0], &grpc_gcp_Identity__fields[0], - UPB_SIZE(16, 32), 3, false, 255, + UPB_SIZE(16, 32), 3, false, 3, 255, }; static const upb_msglayout_field grpc_gcp_Identity_AttributesEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_Identity_AttributesEntry_msginit = { NULL, &grpc_gcp_Identity_AttributesEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const grpc_gcp_StartClientHandshakeReq_submsgs[3] = { @@ -59,22 +59,22 @@ static const upb_msglayout *const grpc_gcp_StartClientHandshakeReq_submsgs[3] = }; static const upb_msglayout_field grpc_gcp_StartClientHandshakeReq__fields[10] = { - {1, UPB_SIZE(4, 4), 0, 0, 14, 1}, - {2, UPB_SIZE(36, 64), 0, 0, 9, 3}, - {3, UPB_SIZE(40, 72), 0, 0, 9, 3}, - {4, UPB_SIZE(44, 80), 0, 1, 11, 3}, - {5, UPB_SIZE(20, 32), 1, 1, 11, 1}, - {6, UPB_SIZE(24, 40), 2, 0, 11, 1}, - {7, UPB_SIZE(28, 48), 3, 0, 11, 1}, - {8, UPB_SIZE(12, 16), 0, 0, 9, 1}, - {9, UPB_SIZE(32, 56), 4, 2, 11, 1}, - {10, UPB_SIZE(8, 8), 0, 0, 13, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(36, 64), 0, 0, 9, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(40, 72), 0, 0, 9, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(44, 80), 0, 1, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(20, 32), 1, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 40), 2, 0, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(28, 48), 3, 0, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 56), 4, 2, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(8, 8), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_StartClientHandshakeReq_msginit = { &grpc_gcp_StartClientHandshakeReq_submsgs[0], &grpc_gcp_StartClientHandshakeReq__fields[0], - UPB_SIZE(48, 96), 10, false, 255, + UPB_SIZE(48, 96), 10, false, 10, 255, }; static const upb_msglayout *const grpc_gcp_ServerHandshakeParameters_submsgs[1] = { @@ -82,14 +82,14 @@ static const upb_msglayout *const grpc_gcp_ServerHandshakeParameters_submsgs[1] }; static const upb_msglayout_field grpc_gcp_ServerHandshakeParameters__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 3}, - {2, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout grpc_gcp_ServerHandshakeParameters_msginit = { &grpc_gcp_ServerHandshakeParameters_submsgs[0], &grpc_gcp_ServerHandshakeParameters__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const grpc_gcp_StartServerHandshakeReq_submsgs[3] = { @@ -99,19 +99,19 @@ static const upb_msglayout *const grpc_gcp_StartServerHandshakeReq_submsgs[3] = }; static const upb_msglayout_field grpc_gcp_StartServerHandshakeReq__fields[7] = { - {1, UPB_SIZE(28, 48), 0, 0, 9, 3}, - {2, UPB_SIZE(32, 56), 0, 2, 11, _UPB_LABEL_MAP}, - {3, UPB_SIZE(8, 8), 0, 0, 12, 1}, - {4, UPB_SIZE(16, 24), 1, 0, 11, 1}, - {5, UPB_SIZE(20, 32), 2, 0, 11, 1}, - {6, UPB_SIZE(24, 40), 3, 1, 11, 1}, - {7, UPB_SIZE(4, 4), 0, 0, 13, 1}, + {1, UPB_SIZE(28, 48), 0, 0, 9, _UPB_MODE_ARRAY}, + {2, UPB_SIZE(32, 56), 0, 2, 11, _UPB_MODE_MAP}, + {3, UPB_SIZE(8, 8), 0, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 32), 2, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 40), 3, 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_StartServerHandshakeReq_msginit = { &grpc_gcp_StartServerHandshakeReq_submsgs[0], &grpc_gcp_StartServerHandshakeReq__fields[0], - UPB_SIZE(40, 64), 7, false, 255, + UPB_SIZE(40, 64), 7, false, 7, 255, }; static const upb_msglayout *const grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_submsgs[1] = { @@ -119,24 +119,24 @@ static const upb_msglayout *const grpc_gcp_StartServerHandshakeReq_HandshakePara }; static const upb_msglayout_field grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 5, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 11, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_msginit = { &grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_submsgs[0], &grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field grpc_gcp_NextHandshakeMessageReq__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 12, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_NextHandshakeMessageReq_msginit = { NULL, &grpc_gcp_NextHandshakeMessageReq__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout *const grpc_gcp_HandshakerReq_submsgs[3] = { @@ -146,15 +146,15 @@ static const upb_msglayout *const grpc_gcp_HandshakerReq_submsgs[3] = { }; static const upb_msglayout_field grpc_gcp_HandshakerReq__fields[3] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_HandshakerReq_msginit = { &grpc_gcp_HandshakerReq_submsgs[0], &grpc_gcp_HandshakerReq__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 3, 255, }; static const upb_msglayout *const grpc_gcp_HandshakerResult_submsgs[2] = { @@ -163,31 +163,31 @@ static const upb_msglayout *const grpc_gcp_HandshakerResult_submsgs[2] = { }; static const upb_msglayout_field grpc_gcp_HandshakerResult__fields[8] = { - {1, UPB_SIZE(12, 16), 0, 0, 9, 1}, - {2, UPB_SIZE(20, 32), 0, 0, 9, 1}, - {3, UPB_SIZE(28, 48), 0, 0, 12, 1}, - {4, UPB_SIZE(36, 64), 1, 0, 11, 1}, - {5, UPB_SIZE(40, 72), 2, 0, 11, 1}, - {6, UPB_SIZE(8, 8), 0, 0, 8, 1}, - {7, UPB_SIZE(44, 80), 3, 1, 11, 1}, - {8, UPB_SIZE(4, 4), 0, 0, 13, 1}, + {1, UPB_SIZE(12, 16), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(20, 32), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(28, 48), 0, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(36, 64), 1, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 72), 2, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), 0, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(44, 80), 3, 1, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_HandshakerResult_msginit = { &grpc_gcp_HandshakerResult_submsgs[0], &grpc_gcp_HandshakerResult__fields[0], - UPB_SIZE(48, 96), 8, false, 255, + UPB_SIZE(48, 96), 8, false, 8, 255, }; static const upb_msglayout_field grpc_gcp_HandshakerStatus__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 13, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_HandshakerStatus_msginit = { NULL, &grpc_gcp_HandshakerStatus__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const grpc_gcp_HandshakerResp_submsgs[2] = { @@ -196,16 +196,16 @@ static const upb_msglayout *const grpc_gcp_HandshakerResp_submsgs[2] = { }; static const upb_msglayout_field grpc_gcp_HandshakerResp__fields[4] = { - {1, UPB_SIZE(8, 8), 0, 0, 12, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 13, 1}, - {3, UPB_SIZE(16, 24), 1, 0, 11, 1}, - {4, UPB_SIZE(20, 32), 2, 1, 11, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 1, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 32), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_HandshakerResp_msginit = { &grpc_gcp_HandshakerResp_submsgs[0], &grpc_gcp_HandshakerResp__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h b/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h index e4c5bf63bea..922657aac4a 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +++ b/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h @@ -9,7 +9,7 @@ #ifndef SRC_PROTO_GRPC_GCP_HANDSHAKER_PROTO_UPB_H_ #define SRC_PROTO_GRPC_GCP_HANDSHAKER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -80,13 +80,19 @@ UPB_INLINE grpc_gcp_Endpoint *grpc_gcp_Endpoint_new(upb_arena *arena) { UPB_INLINE grpc_gcp_Endpoint *grpc_gcp_Endpoint_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_Endpoint *ret = grpc_gcp_Endpoint_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_Endpoint_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_Endpoint_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_Endpoint *grpc_gcp_Endpoint_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_Endpoint *ret = grpc_gcp_Endpoint_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_Endpoint_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_Endpoint_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_Endpoint_serialize(const grpc_gcp_Endpoint *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_Endpoint_msginit, arena, len); @@ -114,13 +120,19 @@ UPB_INLINE grpc_gcp_Identity *grpc_gcp_Identity_new(upb_arena *arena) { UPB_INLINE grpc_gcp_Identity *grpc_gcp_Identity_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_Identity *ret = grpc_gcp_Identity_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_Identity_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_Identity_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_Identity *grpc_gcp_Identity_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_Identity *ret = grpc_gcp_Identity_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_Identity_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_Identity_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_Identity_serialize(const grpc_gcp_Identity *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_Identity_msginit, arena, len); @@ -178,13 +190,19 @@ UPB_INLINE grpc_gcp_StartClientHandshakeReq *grpc_gcp_StartClientHandshakeReq_ne UPB_INLINE grpc_gcp_StartClientHandshakeReq *grpc_gcp_StartClientHandshakeReq_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_StartClientHandshakeReq *ret = grpc_gcp_StartClientHandshakeReq_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_StartClientHandshakeReq_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_StartClientHandshakeReq_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_StartClientHandshakeReq *grpc_gcp_StartClientHandshakeReq_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_StartClientHandshakeReq *ret = grpc_gcp_StartClientHandshakeReq_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_StartClientHandshakeReq_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_StartClientHandshakeReq_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_StartClientHandshakeReq_serialize(const grpc_gcp_StartClientHandshakeReq *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_StartClientHandshakeReq_msginit, arena, len); @@ -309,13 +327,19 @@ UPB_INLINE grpc_gcp_ServerHandshakeParameters *grpc_gcp_ServerHandshakeParameter UPB_INLINE grpc_gcp_ServerHandshakeParameters *grpc_gcp_ServerHandshakeParameters_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_ServerHandshakeParameters *ret = grpc_gcp_ServerHandshakeParameters_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_ServerHandshakeParameters_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_ServerHandshakeParameters_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_ServerHandshakeParameters *grpc_gcp_ServerHandshakeParameters_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_ServerHandshakeParameters *ret = grpc_gcp_ServerHandshakeParameters_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_ServerHandshakeParameters_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_ServerHandshakeParameters_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_ServerHandshakeParameters_serialize(const grpc_gcp_ServerHandshakeParameters *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_ServerHandshakeParameters_msginit, arena, len); @@ -357,13 +381,19 @@ UPB_INLINE grpc_gcp_StartServerHandshakeReq *grpc_gcp_StartServerHandshakeReq_ne UPB_INLINE grpc_gcp_StartServerHandshakeReq *grpc_gcp_StartServerHandshakeReq_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_StartServerHandshakeReq *ret = grpc_gcp_StartServerHandshakeReq_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_StartServerHandshakeReq_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_StartServerHandshakeReq_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_StartServerHandshakeReq *grpc_gcp_StartServerHandshakeReq_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_StartServerHandshakeReq *ret = grpc_gcp_StartServerHandshakeReq_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_StartServerHandshakeReq_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_StartServerHandshakeReq_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_StartServerHandshakeReq_serialize(const grpc_gcp_StartServerHandshakeReq *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_StartServerHandshakeReq_msginit, arena, len); @@ -469,13 +499,19 @@ UPB_INLINE grpc_gcp_NextHandshakeMessageReq *grpc_gcp_NextHandshakeMessageReq_ne UPB_INLINE grpc_gcp_NextHandshakeMessageReq *grpc_gcp_NextHandshakeMessageReq_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_NextHandshakeMessageReq *ret = grpc_gcp_NextHandshakeMessageReq_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_NextHandshakeMessageReq_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_NextHandshakeMessageReq_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_NextHandshakeMessageReq *grpc_gcp_NextHandshakeMessageReq_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_NextHandshakeMessageReq *ret = grpc_gcp_NextHandshakeMessageReq_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_NextHandshakeMessageReq_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_NextHandshakeMessageReq_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_NextHandshakeMessageReq_serialize(const grpc_gcp_NextHandshakeMessageReq *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_NextHandshakeMessageReq_msginit, arena, len); @@ -495,13 +531,19 @@ UPB_INLINE grpc_gcp_HandshakerReq *grpc_gcp_HandshakerReq_new(upb_arena *arena) UPB_INLINE grpc_gcp_HandshakerReq *grpc_gcp_HandshakerReq_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_HandshakerReq *ret = grpc_gcp_HandshakerReq_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_HandshakerReq_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_HandshakerReq_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_HandshakerReq *grpc_gcp_HandshakerReq_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_HandshakerReq *ret = grpc_gcp_HandshakerReq_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_HandshakerReq_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_HandshakerReq_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_HandshakerReq_serialize(const grpc_gcp_HandshakerReq *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_HandshakerReq_msginit, arena, len); @@ -567,13 +609,19 @@ UPB_INLINE grpc_gcp_HandshakerResult *grpc_gcp_HandshakerResult_new(upb_arena *a UPB_INLINE grpc_gcp_HandshakerResult *grpc_gcp_HandshakerResult_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_HandshakerResult *ret = grpc_gcp_HandshakerResult_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_HandshakerResult_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_HandshakerResult_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_HandshakerResult *grpc_gcp_HandshakerResult_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_HandshakerResult *ret = grpc_gcp_HandshakerResult_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_HandshakerResult_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_HandshakerResult_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_HandshakerResult_serialize(const grpc_gcp_HandshakerResult *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_HandshakerResult_msginit, arena, len); @@ -654,13 +702,19 @@ UPB_INLINE grpc_gcp_HandshakerStatus *grpc_gcp_HandshakerStatus_new(upb_arena *a UPB_INLINE grpc_gcp_HandshakerStatus *grpc_gcp_HandshakerStatus_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_HandshakerStatus *ret = grpc_gcp_HandshakerStatus_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_HandshakerStatus_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_HandshakerStatus_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_HandshakerStatus *grpc_gcp_HandshakerStatus_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_HandshakerStatus *ret = grpc_gcp_HandshakerStatus_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_HandshakerStatus_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_HandshakerStatus_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_HandshakerStatus_serialize(const grpc_gcp_HandshakerStatus *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_HandshakerStatus_msginit, arena, len); @@ -684,13 +738,19 @@ UPB_INLINE grpc_gcp_HandshakerResp *grpc_gcp_HandshakerResp_new(upb_arena *arena UPB_INLINE grpc_gcp_HandshakerResp *grpc_gcp_HandshakerResp_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_HandshakerResp *ret = grpc_gcp_HandshakerResp_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_HandshakerResp_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_HandshakerResp_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_HandshakerResp *grpc_gcp_HandshakerResp_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_HandshakerResp *ret = grpc_gcp_HandshakerResp_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_HandshakerResp_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_HandshakerResp_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_HandshakerResp_serialize(const grpc_gcp_HandshakerResp *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_HandshakerResp_msginit, arena, len); diff --git a/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c b/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c index 136c30da0e0..a29a4857a4e 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +++ b/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "src/proto/grpc/gcp/transport_security_common.upb.h" #include "upb/port_def.inc" @@ -17,25 +17,25 @@ static const upb_msglayout *const grpc_gcp_RpcProtocolVersions_submsgs[1] = { }; static const upb_msglayout_field grpc_gcp_RpcProtocolVersions__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 16), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_RpcProtocolVersions_msginit = { &grpc_gcp_RpcProtocolVersions_submsgs[0], &grpc_gcp_RpcProtocolVersions__fields[0], - UPB_SIZE(16, 24), 2, false, 255, + UPB_SIZE(16, 24), 2, false, 2, 255, }; static const upb_msglayout_field grpc_gcp_RpcProtocolVersions_Version__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 13, 1}, - {2, UPB_SIZE(4, 4), 0, 0, 13, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 0, 0, 13, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_gcp_RpcProtocolVersions_Version_msginit = { NULL, &grpc_gcp_RpcProtocolVersions_Version__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h b/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h index 9e02e0b57b4..fbba7cca475 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +++ b/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h @@ -9,7 +9,7 @@ #ifndef SRC_PROTO_GRPC_GCP_TRANSPORT_SECURITY_COMMON_PROTO_UPB_H_ #define SRC_PROTO_GRPC_GCP_TRANSPORT_SECURITY_COMMON_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -42,13 +42,19 @@ UPB_INLINE grpc_gcp_RpcProtocolVersions *grpc_gcp_RpcProtocolVersions_new(upb_ar UPB_INLINE grpc_gcp_RpcProtocolVersions *grpc_gcp_RpcProtocolVersions_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_RpcProtocolVersions *ret = grpc_gcp_RpcProtocolVersions_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_RpcProtocolVersions *grpc_gcp_RpcProtocolVersions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_RpcProtocolVersions *ret = grpc_gcp_RpcProtocolVersions_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_RpcProtocolVersions_serialize(const grpc_gcp_RpcProtocolVersions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_RpcProtocolVersions_msginit, arena, len); @@ -94,13 +100,19 @@ UPB_INLINE grpc_gcp_RpcProtocolVersions_Version *grpc_gcp_RpcProtocolVersions_Ve UPB_INLINE grpc_gcp_RpcProtocolVersions_Version *grpc_gcp_RpcProtocolVersions_Version_parse(const char *buf, size_t size, upb_arena *arena) { grpc_gcp_RpcProtocolVersions_Version *ret = grpc_gcp_RpcProtocolVersions_Version_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_Version_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_Version_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_gcp_RpcProtocolVersions_Version *grpc_gcp_RpcProtocolVersions_Version_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_gcp_RpcProtocolVersions_Version *ret = grpc_gcp_RpcProtocolVersions_Version_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_Version_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_gcp_RpcProtocolVersions_Version_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_gcp_RpcProtocolVersions_Version_serialize(const grpc_gcp_RpcProtocolVersions_Version *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_gcp_RpcProtocolVersions_Version_msginit, arena, len); diff --git a/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c b/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c index df8d846627e..5a728e6a8b7 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +++ b/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c @@ -7,29 +7,29 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "src/proto/grpc/health/v1/health.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field grpc_health_v1_HealthCheckRequest__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_health_v1_HealthCheckRequest_msginit = { NULL, &grpc_health_v1_HealthCheckRequest__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field grpc_health_v1_HealthCheckResponse__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_health_v1_HealthCheckResponse_msginit = { NULL, &grpc_health_v1_HealthCheckResponse__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h b/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h index 361b221ffea..22bc39c08d8 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +++ b/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h @@ -9,7 +9,7 @@ #ifndef SRC_PROTO_GRPC_HEALTH_V1_HEALTH_PROTO_UPB_H_ #define SRC_PROTO_GRPC_HEALTH_V1_HEALTH_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -43,13 +43,19 @@ UPB_INLINE grpc_health_v1_HealthCheckRequest *grpc_health_v1_HealthCheckRequest_ UPB_INLINE grpc_health_v1_HealthCheckRequest *grpc_health_v1_HealthCheckRequest_parse(const char *buf, size_t size, upb_arena *arena) { grpc_health_v1_HealthCheckRequest *ret = grpc_health_v1_HealthCheckRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_health_v1_HealthCheckRequest *grpc_health_v1_HealthCheckRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_health_v1_HealthCheckRequest *ret = grpc_health_v1_HealthCheckRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_health_v1_HealthCheckRequest_serialize(const grpc_health_v1_HealthCheckRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_health_v1_HealthCheckRequest_msginit, arena, len); @@ -69,13 +75,19 @@ UPB_INLINE grpc_health_v1_HealthCheckResponse *grpc_health_v1_HealthCheckRespons UPB_INLINE grpc_health_v1_HealthCheckResponse *grpc_health_v1_HealthCheckResponse_parse(const char *buf, size_t size, upb_arena *arena) { grpc_health_v1_HealthCheckResponse *ret = grpc_health_v1_HealthCheckResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_health_v1_HealthCheckResponse *grpc_health_v1_HealthCheckResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_health_v1_HealthCheckResponse *ret = grpc_health_v1_HealthCheckResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_health_v1_HealthCheckResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_health_v1_HealthCheckResponse_serialize(const grpc_health_v1_HealthCheckResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_health_v1_HealthCheckResponse_msginit, arena, len); diff --git a/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c b/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c index 3ecf09f145d..032fbc6f481 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +++ b/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "src/proto/grpc/lb/v1/load_balancer.upb.h" #include "google/protobuf/duration.upb.h" #include "google/protobuf/timestamp.upb.h" @@ -20,35 +20,35 @@ static const upb_msglayout *const grpc_lb_v1_LoadBalanceRequest_submsgs[2] = { }; static const upb_msglayout_field grpc_lb_v1_LoadBalanceRequest__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_lb_v1_LoadBalanceRequest_msginit = { &grpc_lb_v1_LoadBalanceRequest_submsgs[0], &grpc_lb_v1_LoadBalanceRequest__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout_field grpc_lb_v1_InitialLoadBalanceRequest__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_lb_v1_InitialLoadBalanceRequest_msginit = { NULL, &grpc_lb_v1_InitialLoadBalanceRequest__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field grpc_lb_v1_ClientStatsPerToken__fields[2] = { - {1, UPB_SIZE(8, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 3, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 3, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_lb_v1_ClientStatsPerToken_msginit = { NULL, &grpc_lb_v1_ClientStatsPerToken__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const grpc_lb_v1_ClientStats_submsgs[2] = { @@ -57,18 +57,18 @@ static const upb_msglayout *const grpc_lb_v1_ClientStats_submsgs[2] = { }; static const upb_msglayout_field grpc_lb_v1_ClientStats__fields[6] = { - {1, UPB_SIZE(40, 40), 1, 0, 11, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 3, 1}, - {3, UPB_SIZE(16, 16), 0, 0, 3, 1}, - {6, UPB_SIZE(24, 24), 0, 0, 3, 1}, - {7, UPB_SIZE(32, 32), 0, 0, 3, 1}, - {8, UPB_SIZE(44, 48), 0, 1, 11, 3}, + {1, UPB_SIZE(40, 40), 1, 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 3, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 16), 0, 0, 3, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 24), 0, 0, 3, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(32, 32), 0, 0, 3, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(44, 48), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout grpc_lb_v1_ClientStats_msginit = { &grpc_lb_v1_ClientStats_submsgs[0], &grpc_lb_v1_ClientStats__fields[0], - UPB_SIZE(48, 56), 6, false, 255, + UPB_SIZE(48, 56), 6, false, 3, 255, }; static const upb_msglayout *const grpc_lb_v1_LoadBalanceResponse_submsgs[3] = { @@ -78,15 +78,15 @@ static const upb_msglayout *const grpc_lb_v1_LoadBalanceResponse_submsgs[3] = { }; static const upb_msglayout_field grpc_lb_v1_LoadBalanceResponse__fields[3] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, 1}, - {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 2, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_lb_v1_LoadBalanceResponse_msginit = { &grpc_lb_v1_LoadBalanceResponse_submsgs[0], &grpc_lb_v1_LoadBalanceResponse__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 3, 255, }; static const upb_msglayout *const grpc_lb_v1_InitialLoadBalanceResponse_submsgs[1] = { @@ -94,14 +94,14 @@ static const upb_msglayout *const grpc_lb_v1_InitialLoadBalanceResponse_submsgs[ }; static const upb_msglayout_field grpc_lb_v1_InitialLoadBalanceResponse__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_lb_v1_InitialLoadBalanceResponse_msginit = { &grpc_lb_v1_InitialLoadBalanceResponse_submsgs[0], &grpc_lb_v1_InitialLoadBalanceResponse__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const grpc_lb_v1_ServerList_submsgs[1] = { @@ -109,32 +109,32 @@ static const upb_msglayout *const grpc_lb_v1_ServerList_submsgs[1] = { }; static const upb_msglayout_field grpc_lb_v1_ServerList__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout grpc_lb_v1_ServerList_msginit = { &grpc_lb_v1_ServerList_submsgs[0], &grpc_lb_v1_ServerList__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field grpc_lb_v1_Server__fields[4] = { - {1, UPB_SIZE(8, 8), 0, 0, 12, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 5, 1}, - {3, UPB_SIZE(16, 24), 0, 0, 9, 1}, - {4, UPB_SIZE(4, 4), 0, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 0, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout grpc_lb_v1_Server_msginit = { NULL, &grpc_lb_v1_Server__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; const upb_msglayout grpc_lb_v1_FallbackResponse_msginit = { NULL, NULL, - UPB_SIZE(0, 0), 0, false, 255, + UPB_SIZE(0, 0), 0, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h b/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h index c8c352ce989..6d19430feee 100644 --- a/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +++ b/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h @@ -9,7 +9,7 @@ #ifndef SRC_PROTO_GRPC_LB_V1_LOAD_BALANCER_PROTO_UPB_H_ #define SRC_PROTO_GRPC_LB_V1_LOAD_BALANCER_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -61,13 +61,19 @@ UPB_INLINE grpc_lb_v1_LoadBalanceRequest *grpc_lb_v1_LoadBalanceRequest_new(upb_ UPB_INLINE grpc_lb_v1_LoadBalanceRequest *grpc_lb_v1_LoadBalanceRequest_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_LoadBalanceRequest *ret = grpc_lb_v1_LoadBalanceRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_LoadBalanceRequest *grpc_lb_v1_LoadBalanceRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_LoadBalanceRequest *ret = grpc_lb_v1_LoadBalanceRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_LoadBalanceRequest_serialize(const grpc_lb_v1_LoadBalanceRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_LoadBalanceRequest_msginit, arena, len); @@ -118,13 +124,19 @@ UPB_INLINE grpc_lb_v1_InitialLoadBalanceRequest *grpc_lb_v1_InitialLoadBalanceRe UPB_INLINE grpc_lb_v1_InitialLoadBalanceRequest *grpc_lb_v1_InitialLoadBalanceRequest_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_InitialLoadBalanceRequest *ret = grpc_lb_v1_InitialLoadBalanceRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_InitialLoadBalanceRequest *grpc_lb_v1_InitialLoadBalanceRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_InitialLoadBalanceRequest *ret = grpc_lb_v1_InitialLoadBalanceRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_InitialLoadBalanceRequest_serialize(const grpc_lb_v1_InitialLoadBalanceRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_InitialLoadBalanceRequest_msginit, arena, len); @@ -144,13 +156,19 @@ UPB_INLINE grpc_lb_v1_ClientStatsPerToken *grpc_lb_v1_ClientStatsPerToken_new(up UPB_INLINE grpc_lb_v1_ClientStatsPerToken *grpc_lb_v1_ClientStatsPerToken_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_ClientStatsPerToken *ret = grpc_lb_v1_ClientStatsPerToken_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_ClientStatsPerToken_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_ClientStatsPerToken_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_ClientStatsPerToken *grpc_lb_v1_ClientStatsPerToken_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_ClientStatsPerToken *ret = grpc_lb_v1_ClientStatsPerToken_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_ClientStatsPerToken_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_ClientStatsPerToken_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_ClientStatsPerToken_serialize(const grpc_lb_v1_ClientStatsPerToken *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_ClientStatsPerToken_msginit, arena, len); @@ -174,13 +192,19 @@ UPB_INLINE grpc_lb_v1_ClientStats *grpc_lb_v1_ClientStats_new(upb_arena *arena) UPB_INLINE grpc_lb_v1_ClientStats *grpc_lb_v1_ClientStats_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_ClientStats *ret = grpc_lb_v1_ClientStats_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_ClientStats_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_ClientStats_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_ClientStats *grpc_lb_v1_ClientStats_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_ClientStats *ret = grpc_lb_v1_ClientStats_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_ClientStats_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_ClientStats_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_ClientStats_serialize(const grpc_lb_v1_ClientStats *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_ClientStats_msginit, arena, len); @@ -242,13 +266,19 @@ UPB_INLINE grpc_lb_v1_LoadBalanceResponse *grpc_lb_v1_LoadBalanceResponse_new(up UPB_INLINE grpc_lb_v1_LoadBalanceResponse *grpc_lb_v1_LoadBalanceResponse_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_LoadBalanceResponse *ret = grpc_lb_v1_LoadBalanceResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_LoadBalanceResponse *grpc_lb_v1_LoadBalanceResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_LoadBalanceResponse *ret = grpc_lb_v1_LoadBalanceResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_LoadBalanceResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_LoadBalanceResponse_serialize(const grpc_lb_v1_LoadBalanceResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_LoadBalanceResponse_msginit, arena, len); @@ -314,13 +344,19 @@ UPB_INLINE grpc_lb_v1_InitialLoadBalanceResponse *grpc_lb_v1_InitialLoadBalanceR UPB_INLINE grpc_lb_v1_InitialLoadBalanceResponse *grpc_lb_v1_InitialLoadBalanceResponse_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_InitialLoadBalanceResponse *ret = grpc_lb_v1_InitialLoadBalanceResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_InitialLoadBalanceResponse *grpc_lb_v1_InitialLoadBalanceResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_InitialLoadBalanceResponse *ret = grpc_lb_v1_InitialLoadBalanceResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_InitialLoadBalanceResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_InitialLoadBalanceResponse_serialize(const grpc_lb_v1_InitialLoadBalanceResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_InitialLoadBalanceResponse_msginit, arena, len); @@ -355,13 +391,19 @@ UPB_INLINE grpc_lb_v1_ServerList *grpc_lb_v1_ServerList_new(upb_arena *arena) { UPB_INLINE grpc_lb_v1_ServerList *grpc_lb_v1_ServerList_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_ServerList *ret = grpc_lb_v1_ServerList_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_ServerList_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_ServerList_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_ServerList *grpc_lb_v1_ServerList_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_ServerList *ret = grpc_lb_v1_ServerList_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_ServerList_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_ServerList_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_ServerList_serialize(const grpc_lb_v1_ServerList *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_ServerList_msginit, arena, len); @@ -392,13 +434,19 @@ UPB_INLINE grpc_lb_v1_Server *grpc_lb_v1_Server_new(upb_arena *arena) { UPB_INLINE grpc_lb_v1_Server *grpc_lb_v1_Server_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_Server *ret = grpc_lb_v1_Server_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_Server_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_Server_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_Server *grpc_lb_v1_Server_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_Server *ret = grpc_lb_v1_Server_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_Server_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_Server_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_Server_serialize(const grpc_lb_v1_Server *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_Server_msginit, arena, len); @@ -430,13 +478,19 @@ UPB_INLINE grpc_lb_v1_FallbackResponse *grpc_lb_v1_FallbackResponse_new(upb_aren UPB_INLINE grpc_lb_v1_FallbackResponse *grpc_lb_v1_FallbackResponse_parse(const char *buf, size_t size, upb_arena *arena) { grpc_lb_v1_FallbackResponse *ret = grpc_lb_v1_FallbackResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &grpc_lb_v1_FallbackResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &grpc_lb_v1_FallbackResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE grpc_lb_v1_FallbackResponse *grpc_lb_v1_FallbackResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { grpc_lb_v1_FallbackResponse *ret = grpc_lb_v1_FallbackResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &grpc_lb_v1_FallbackResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &grpc_lb_v1_FallbackResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *grpc_lb_v1_FallbackResponse_serialize(const grpc_lb_v1_FallbackResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &grpc_lb_v1_FallbackResponse_msginit, arena, len); diff --git a/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.c b/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.c index a4d95cc671c..41f38d31062 100644 --- a/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.c +++ b/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "third_party/istio/security/proto/providers/google/meshca.upb.h" #include "google/protobuf/duration.upb.h" @@ -18,25 +18,25 @@ static const upb_msglayout *const google_security_meshca_v1_MeshCertificateReque }; static const upb_msglayout_field google_security_meshca_v1_MeshCertificateRequest__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_security_meshca_v1_MeshCertificateRequest_msginit = { &google_security_meshca_v1_MeshCertificateRequest_submsgs[0], &google_security_meshca_v1_MeshCertificateRequest__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout_field google_security_meshca_v1_MeshCertificateResponse__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_ARRAY}, }; const upb_msglayout google_security_meshca_v1_MeshCertificateResponse_msginit = { NULL, &google_security_meshca_v1_MeshCertificateResponse__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.h b/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.h index f301a028973..1c1da2231d5 100644 --- a/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.h +++ b/src/core/ext/upb-generated/third_party/istio/security/proto/providers/google/meshca.upb.h @@ -9,7 +9,7 @@ #ifndef THIRD_PARTY_ISTIO_SECURITY_PROTO_PROVIDERS_GOOGLE_MESHCA_PROTO_UPB_H_ #define THIRD_PARTY_ISTIO_SECURITY_PROTO_PROVIDERS_GOOGLE_MESHCA_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -38,13 +38,19 @@ UPB_INLINE google_security_meshca_v1_MeshCertificateRequest *google_security_mes UPB_INLINE google_security_meshca_v1_MeshCertificateRequest *google_security_meshca_v1_MeshCertificateRequest_parse(const char *buf, size_t size, upb_arena *arena) { google_security_meshca_v1_MeshCertificateRequest *ret = google_security_meshca_v1_MeshCertificateRequest_new(arena); - return (ret && upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateRequest_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateRequest_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_security_meshca_v1_MeshCertificateRequest *google_security_meshca_v1_MeshCertificateRequest_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_security_meshca_v1_MeshCertificateRequest *ret = google_security_meshca_v1_MeshCertificateRequest_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateRequest_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateRequest_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_security_meshca_v1_MeshCertificateRequest_serialize(const google_security_meshca_v1_MeshCertificateRequest *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_security_meshca_v1_MeshCertificateRequest_msginit, arena, len); @@ -83,13 +89,19 @@ UPB_INLINE google_security_meshca_v1_MeshCertificateResponse *google_security_me UPB_INLINE google_security_meshca_v1_MeshCertificateResponse *google_security_meshca_v1_MeshCertificateResponse_parse(const char *buf, size_t size, upb_arena *arena) { google_security_meshca_v1_MeshCertificateResponse *ret = google_security_meshca_v1_MeshCertificateResponse_new(arena); - return (ret && upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateResponse_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateResponse_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_security_meshca_v1_MeshCertificateResponse *google_security_meshca_v1_MeshCertificateResponse_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_security_meshca_v1_MeshCertificateResponse *ret = google_security_meshca_v1_MeshCertificateResponse_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateResponse_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_security_meshca_v1_MeshCertificateResponse_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_security_meshca_v1_MeshCertificateResponse_serialize(const google_security_meshca_v1_MeshCertificateResponse *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_security_meshca_v1_MeshCertificateResponse_msginit, arena, len); diff --git a/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c b/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c index 5f5f1edd030..b39816259fb 100644 --- a/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +++ b/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c @@ -7,41 +7,41 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/annotations/migrate.upb.h" #include "google/protobuf/descriptor.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field udpa_annotations_MigrateAnnotation__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_annotations_MigrateAnnotation_msginit = { NULL, &udpa_annotations_MigrateAnnotation__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; static const upb_msglayout_field udpa_annotations_FieldMigrateAnnotation__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_annotations_FieldMigrateAnnotation_msginit = { NULL, &udpa_annotations_FieldMigrateAnnotation__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field udpa_annotations_FileMigrateAnnotation__fields[1] = { - {2, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {2, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_annotations_FileMigrateAnnotation_msginit = { NULL, &udpa_annotations_FileMigrateAnnotation__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 0, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h b/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h index 8d55a775b8a..1efb8c543b3 100644 --- a/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +++ b/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_ANNOTATIONS_MIGRATE_PROTO_UPB_H_ #define UDPA_ANNOTATIONS_MIGRATE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE udpa_annotations_MigrateAnnotation *udpa_annotations_MigrateAnnotatio UPB_INLINE udpa_annotations_MigrateAnnotation *udpa_annotations_MigrateAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { udpa_annotations_MigrateAnnotation *ret = udpa_annotations_MigrateAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_annotations_MigrateAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_annotations_MigrateAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_annotations_MigrateAnnotation *udpa_annotations_MigrateAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_annotations_MigrateAnnotation *ret = udpa_annotations_MigrateAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_annotations_MigrateAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_annotations_MigrateAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_annotations_MigrateAnnotation_serialize(const udpa_annotations_MigrateAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_annotations_MigrateAnnotation_msginit, arena, len); @@ -65,13 +71,19 @@ UPB_INLINE udpa_annotations_FieldMigrateAnnotation *udpa_annotations_FieldMigrat UPB_INLINE udpa_annotations_FieldMigrateAnnotation *udpa_annotations_FieldMigrateAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { udpa_annotations_FieldMigrateAnnotation *ret = udpa_annotations_FieldMigrateAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_annotations_FieldMigrateAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_annotations_FieldMigrateAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_annotations_FieldMigrateAnnotation *udpa_annotations_FieldMigrateAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_annotations_FieldMigrateAnnotation *ret = udpa_annotations_FieldMigrateAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_annotations_FieldMigrateAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_annotations_FieldMigrateAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_annotations_FieldMigrateAnnotation_serialize(const udpa_annotations_FieldMigrateAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_annotations_FieldMigrateAnnotation_msginit, arena, len); @@ -95,13 +107,19 @@ UPB_INLINE udpa_annotations_FileMigrateAnnotation *udpa_annotations_FileMigrateA UPB_INLINE udpa_annotations_FileMigrateAnnotation *udpa_annotations_FileMigrateAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { udpa_annotations_FileMigrateAnnotation *ret = udpa_annotations_FileMigrateAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_annotations_FileMigrateAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_annotations_FileMigrateAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_annotations_FileMigrateAnnotation *udpa_annotations_FileMigrateAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_annotations_FileMigrateAnnotation *ret = udpa_annotations_FileMigrateAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_annotations_FileMigrateAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_annotations_FileMigrateAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_annotations_FileMigrateAnnotation_serialize(const udpa_annotations_FileMigrateAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_annotations_FileMigrateAnnotation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/udpa/annotations/security.upb.c b/src/core/ext/upb-generated/udpa/annotations/security.upb.c index d135d4f73be..732903d1a88 100644 --- a/src/core/ext/upb-generated/udpa/annotations/security.upb.c +++ b/src/core/ext/upb-generated/udpa/annotations/security.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/annotations/security.upb.h" #include "udpa/annotations/status.upb.h" #include "google/protobuf/any.upb.h" @@ -17,14 +17,14 @@ #include "upb/port_def.inc" static const upb_msglayout_field udpa_annotations_FieldSecurityAnnotation__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 8, 1}, - {2, UPB_SIZE(1, 1), 0, 0, 8, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 0, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_annotations_FieldSecurityAnnotation_msginit = { NULL, &udpa_annotations_FieldSecurityAnnotation__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/udpa/annotations/security.upb.h b/src/core/ext/upb-generated/udpa/annotations/security.upb.h index 415ba045bdf..1ce4b82808d 100644 --- a/src/core/ext/upb-generated/udpa/annotations/security.upb.h +++ b/src/core/ext/upb-generated/udpa/annotations/security.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_ANNOTATIONS_SECURITY_PROTO_UPB_H_ #define UDPA_ANNOTATIONS_SECURITY_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE udpa_annotations_FieldSecurityAnnotation *udpa_annotations_FieldSecur UPB_INLINE udpa_annotations_FieldSecurityAnnotation *udpa_annotations_FieldSecurityAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { udpa_annotations_FieldSecurityAnnotation *ret = udpa_annotations_FieldSecurityAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_annotations_FieldSecurityAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_annotations_FieldSecurityAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_annotations_FieldSecurityAnnotation *udpa_annotations_FieldSecurityAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_annotations_FieldSecurityAnnotation *ret = udpa_annotations_FieldSecurityAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_annotations_FieldSecurityAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_annotations_FieldSecurityAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_annotations_FieldSecurityAnnotation_serialize(const udpa_annotations_FieldSecurityAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_annotations_FieldSecurityAnnotation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c b/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c index ca1fcb59aed..f9bd0f2126a 100644 --- a/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +++ b/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/annotations/sensitive.upb.h" #include "google/protobuf/descriptor.upb.h" diff --git a/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h b/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h index 69f2a862967..bbfd4e92cfb 100644 --- a/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +++ b/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_ANNOTATIONS_SENSITIVE_PROTO_UPB_H_ #define UDPA_ANNOTATIONS_SENSITIVE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" diff --git a/src/core/ext/upb-generated/udpa/annotations/status.upb.c b/src/core/ext/upb-generated/udpa/annotations/status.upb.c index 16b0181ab80..7d41360753f 100644 --- a/src/core/ext/upb-generated/udpa/annotations/status.upb.c +++ b/src/core/ext/upb-generated/udpa/annotations/status.upb.c @@ -7,21 +7,21 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/annotations/status.upb.h" #include "google/protobuf/descriptor.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field udpa_annotations_StatusAnnotation__fields[2] = { - {1, UPB_SIZE(4, 4), 0, 0, 8, 1}, - {2, UPB_SIZE(0, 0), 0, 0, 14, 1}, + {1, UPB_SIZE(4, 4), 0, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_annotations_StatusAnnotation_msginit = { NULL, &udpa_annotations_StatusAnnotation__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/udpa/annotations/status.upb.h b/src/core/ext/upb-generated/udpa/annotations/status.upb.h index a55570df678..cef5cc5f9cb 100644 --- a/src/core/ext/upb-generated/udpa/annotations/status.upb.h +++ b/src/core/ext/upb-generated/udpa/annotations/status.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_ANNOTATIONS_STATUS_PROTO_UPB_H_ #define UDPA_ANNOTATIONS_STATUS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -40,13 +40,19 @@ UPB_INLINE udpa_annotations_StatusAnnotation *udpa_annotations_StatusAnnotation_ UPB_INLINE udpa_annotations_StatusAnnotation *udpa_annotations_StatusAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { udpa_annotations_StatusAnnotation *ret = udpa_annotations_StatusAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_annotations_StatusAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_annotations_StatusAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_annotations_StatusAnnotation *udpa_annotations_StatusAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_annotations_StatusAnnotation *ret = udpa_annotations_StatusAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_annotations_StatusAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_annotations_StatusAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_annotations_StatusAnnotation_serialize(const udpa_annotations_StatusAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_annotations_StatusAnnotation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c b/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c index 253afc858b6..daf3a8a01bc 100644 --- a/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +++ b/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c @@ -7,20 +7,20 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/annotations/versioning.upb.h" #include "google/protobuf/descriptor.upb.h" #include "upb/port_def.inc" static const upb_msglayout_field udpa_annotations_VersioningAnnotation__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_annotations_VersioningAnnotation_msginit = { NULL, &udpa_annotations_VersioningAnnotation__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h b/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h index e39f8c397c7..9a37aeda5c2 100644 --- a/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +++ b/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_ANNOTATIONS_VERSIONING_PROTO_UPB_H_ #define UDPA_ANNOTATIONS_VERSIONING_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE udpa_annotations_VersioningAnnotation *udpa_annotations_VersioningAnn UPB_INLINE udpa_annotations_VersioningAnnotation *udpa_annotations_VersioningAnnotation_parse(const char *buf, size_t size, upb_arena *arena) { udpa_annotations_VersioningAnnotation *ret = udpa_annotations_VersioningAnnotation_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_annotations_VersioningAnnotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_annotations_VersioningAnnotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_annotations_VersioningAnnotation *udpa_annotations_VersioningAnnotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_annotations_VersioningAnnotation *ret = udpa_annotations_VersioningAnnotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_annotations_VersioningAnnotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_annotations_VersioningAnnotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_annotations_VersioningAnnotation_serialize(const udpa_annotations_VersioningAnnotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_annotations_VersioningAnnotation_msginit, arena, len); diff --git a/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c b/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c index e5069b7f13b..38feb7b88d3 100644 --- a/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +++ b/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/data/orca/v1/orca_load_report.upb.h" #include "validate/validate.upb.h" @@ -19,39 +19,39 @@ static const upb_msglayout *const udpa_data_orca_v1_OrcaLoadReport_submsgs[2] = }; static const upb_msglayout_field udpa_data_orca_v1_OrcaLoadReport__fields[5] = { - {1, UPB_SIZE(0, 0), 0, 0, 1, 1}, - {2, UPB_SIZE(8, 8), 0, 0, 1, 1}, - {3, UPB_SIZE(16, 16), 0, 0, 4, 1}, - {4, UPB_SIZE(24, 24), 0, 0, 11, _UPB_LABEL_MAP}, - {5, UPB_SIZE(28, 32), 0, 1, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 1, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 0, 0, 1, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 16), 0, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 24), 0, 0, 11, _UPB_MODE_MAP}, + {5, UPB_SIZE(28, 32), 0, 1, 11, _UPB_MODE_MAP}, }; const upb_msglayout udpa_data_orca_v1_OrcaLoadReport_msginit = { &udpa_data_orca_v1_OrcaLoadReport_submsgs[0], &udpa_data_orca_v1_OrcaLoadReport__fields[0], - UPB_SIZE(32, 40), 5, false, 255, + UPB_SIZE(32, 40), 5, false, 5, 255, }; static const upb_msglayout_field udpa_data_orca_v1_OrcaLoadReport_RequestCostEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_data_orca_v1_OrcaLoadReport_RequestCostEntry_msginit = { NULL, &udpa_data_orca_v1_OrcaLoadReport_RequestCostEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout_field udpa_data_orca_v1_OrcaLoadReport_UtilizationEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 1, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 1, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_data_orca_v1_OrcaLoadReport_UtilizationEntry_msginit = { NULL, &udpa_data_orca_v1_OrcaLoadReport_UtilizationEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h b/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h index e5923cc5e12..dbefd808680 100644 --- a/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +++ b/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_DATA_ORCA_V1_ORCA_LOAD_REPORT_PROTO_UPB_H_ #define UDPA_DATA_ORCA_V1_ORCA_LOAD_REPORT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -39,13 +39,19 @@ UPB_INLINE udpa_data_orca_v1_OrcaLoadReport *udpa_data_orca_v1_OrcaLoadReport_ne UPB_INLINE udpa_data_orca_v1_OrcaLoadReport *udpa_data_orca_v1_OrcaLoadReport_parse(const char *buf, size_t size, upb_arena *arena) { udpa_data_orca_v1_OrcaLoadReport *ret = udpa_data_orca_v1_OrcaLoadReport_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_data_orca_v1_OrcaLoadReport_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_data_orca_v1_OrcaLoadReport_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_data_orca_v1_OrcaLoadReport *udpa_data_orca_v1_OrcaLoadReport_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_data_orca_v1_OrcaLoadReport *ret = udpa_data_orca_v1_OrcaLoadReport_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_data_orca_v1_OrcaLoadReport_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_data_orca_v1_OrcaLoadReport_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_data_orca_v1_OrcaLoadReport_serialize(const udpa_data_orca_v1_OrcaLoadReport *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_data_orca_v1_OrcaLoadReport_msginit, arena, len); diff --git a/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c b/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c index 24407fa6eac..347fb1e8a97 100644 --- a/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +++ b/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "udpa/type/v1/typed_struct.upb.h" #include "validate/validate.upb.h" #include "google/protobuf/struct.upb.h" @@ -19,14 +19,14 @@ static const upb_msglayout *const udpa_type_v1_TypedStruct_submsgs[1] = { }; static const upb_msglayout_field udpa_type_v1_TypedStruct__fields[2] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout udpa_type_v1_TypedStruct_msginit = { &udpa_type_v1_TypedStruct_submsgs[0], &udpa_type_v1_TypedStruct__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h b/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h index 2dd03ff12d7..431413ccd2a 100644 --- a/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +++ b/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h @@ -9,7 +9,7 @@ #ifndef UDPA_TYPE_V1_TYPED_STRUCT_PROTO_UPB_H_ #define UDPA_TYPE_V1_TYPED_STRUCT_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE udpa_type_v1_TypedStruct *udpa_type_v1_TypedStruct_new(upb_arena *are UPB_INLINE udpa_type_v1_TypedStruct *udpa_type_v1_TypedStruct_parse(const char *buf, size_t size, upb_arena *arena) { udpa_type_v1_TypedStruct *ret = udpa_type_v1_TypedStruct_new(arena); - return (ret && upb_decode(buf, size, ret, &udpa_type_v1_TypedStruct_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &udpa_type_v1_TypedStruct_msginit, arena)) return NULL; + return ret; } UPB_INLINE udpa_type_v1_TypedStruct *udpa_type_v1_TypedStruct_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { udpa_type_v1_TypedStruct *ret = udpa_type_v1_TypedStruct_new(arena); - return (ret && _upb_decode(buf, size, ret, &udpa_type_v1_TypedStruct_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &udpa_type_v1_TypedStruct_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *udpa_type_v1_TypedStruct_serialize(const udpa_type_v1_TypedStruct *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &udpa_type_v1_TypedStruct_msginit, arena, len); diff --git a/src/core/ext/upb-generated/validate/validate.upb.c b/src/core/ext/upb-generated/validate/validate.upb.c index f210e3cb283..f25077ba835 100644 --- a/src/core/ext/upb-generated/validate/validate.upb.c +++ b/src/core/ext/upb-generated/validate/validate.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "validate/validate.upb.h" #include "google/protobuf/descriptor.upb.h" #include "google/protobuf/duration.upb.h" @@ -41,330 +41,330 @@ static const upb_msglayout *const validate_FieldRules_submsgs[22] = { }; static const upb_msglayout_field validate_FieldRules__fields[22] = { - {1, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 8, 11, 1}, - {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, 1}, - {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 9, 11, 1}, - {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 10, 11, 1}, - {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 20, 11, 1}, - {6, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 21, 11, 1}, - {7, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 16, 11, 1}, - {8, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 17, 11, 1}, - {9, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 6, 11, 1}, - {10, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 7, 11, 1}, - {11, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 14, 11, 1}, - {12, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 15, 11, 1}, - {13, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1}, - {14, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 18, 11, 1}, - {15, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, 1}, - {16, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 5, 11, 1}, - {17, UPB_SIZE(4, 8), 1, 12, 11, 1}, - {18, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 13, 11, 1}, - {19, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 11, 11, 1}, - {20, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1}, - {21, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 4, 11, 1}, - {22, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 19, 11, 1}, + {1, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 8, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 9, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 10, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 20, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 21, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 16, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 17, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 6, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 7, 11, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 14, 11, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 15, 11, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 18, 11, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 5, 11, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(4, 8), 1, 12, 11, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 13, 11, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 11, 11, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 4, 11, _UPB_MODE_SCALAR}, + {22, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 19, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_FieldRules_msginit = { &validate_FieldRules_submsgs[0], &validate_FieldRules__fields[0], - UPB_SIZE(16, 32), 22, false, 255, + UPB_SIZE(16, 32), 22, false, 22, 255, }; static const upb_msglayout_field validate_FloatRules__fields[8] = { - {1, UPB_SIZE(4, 4), 1, 0, 2, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 2, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 2, 1}, - {4, UPB_SIZE(16, 16), 4, 0, 2, 1}, - {5, UPB_SIZE(20, 20), 5, 0, 2, 1}, - {6, UPB_SIZE(28, 32), 0, 0, 2, 3}, - {7, UPB_SIZE(32, 40), 0, 0, 2, 3}, - {8, UPB_SIZE(24, 24), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 2, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 2, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 2, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 4, 0, 2, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 20), 5, 0, 2, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 32), 0, 0, 2, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 40), 0, 0, 2, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(24, 24), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_FloatRules_msginit = { NULL, &validate_FloatRules__fields[0], - UPB_SIZE(40, 48), 8, false, 255, + UPB_SIZE(40, 48), 8, false, 8, 255, }; static const upb_msglayout_field validate_DoubleRules__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 1, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 1, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 1, 1}, - {4, UPB_SIZE(32, 32), 4, 0, 1, 1}, - {5, UPB_SIZE(40, 40), 5, 0, 1, 1}, - {6, UPB_SIZE(52, 56), 0, 0, 1, 3}, - {7, UPB_SIZE(56, 64), 0, 0, 1, 3}, - {8, UPB_SIZE(48, 48), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 1, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 1, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 1, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 32), 4, 0, 1, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 40), 5, 0, 1, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(52, 56), 0, 0, 1, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 64), 0, 0, 1, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(48, 48), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_DoubleRules_msginit = { NULL, &validate_DoubleRules__fields[0], - UPB_SIZE(64, 72), 8, false, 255, + UPB_SIZE(64, 72), 8, false, 8, 255, }; static const upb_msglayout_field validate_Int32Rules__fields[8] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 5, 1}, - {4, UPB_SIZE(16, 16), 4, 0, 5, 1}, - {5, UPB_SIZE(20, 20), 5, 0, 5, 1}, - {6, UPB_SIZE(28, 32), 0, 0, 5, 3}, - {7, UPB_SIZE(32, 40), 0, 0, 5, 3}, - {8, UPB_SIZE(24, 24), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 5, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 4, 0, 5, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 20), 5, 0, 5, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 32), 0, 0, 5, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 40), 0, 0, 5, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(24, 24), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_Int32Rules_msginit = { NULL, &validate_Int32Rules__fields[0], - UPB_SIZE(40, 48), 8, false, 255, + UPB_SIZE(40, 48), 8, false, 8, 255, }; static const upb_msglayout_field validate_Int64Rules__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 3, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 3, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 3, 1}, - {4, UPB_SIZE(32, 32), 4, 0, 3, 1}, - {5, UPB_SIZE(40, 40), 5, 0, 3, 1}, - {6, UPB_SIZE(52, 56), 0, 0, 3, 3}, - {7, UPB_SIZE(56, 64), 0, 0, 3, 3}, - {8, UPB_SIZE(48, 48), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 3, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 3, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 3, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 32), 4, 0, 3, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 40), 5, 0, 3, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(52, 56), 0, 0, 3, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 64), 0, 0, 3, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(48, 48), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_Int64Rules_msginit = { NULL, &validate_Int64Rules__fields[0], - UPB_SIZE(64, 72), 8, false, 255, + UPB_SIZE(64, 72), 8, false, 8, 255, }; static const upb_msglayout_field validate_UInt32Rules__fields[8] = { - {1, UPB_SIZE(4, 4), 1, 0, 13, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 13, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 13, 1}, - {4, UPB_SIZE(16, 16), 4, 0, 13, 1}, - {5, UPB_SIZE(20, 20), 5, 0, 13, 1}, - {6, UPB_SIZE(28, 32), 0, 0, 13, 3}, - {7, UPB_SIZE(32, 40), 0, 0, 13, 3}, - {8, UPB_SIZE(24, 24), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 13, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 13, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 13, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 4, 0, 13, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 20), 5, 0, 13, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 32), 0, 0, 13, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 40), 0, 0, 13, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(24, 24), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_UInt32Rules_msginit = { NULL, &validate_UInt32Rules__fields[0], - UPB_SIZE(40, 48), 8, false, 255, + UPB_SIZE(40, 48), 8, false, 8, 255, }; static const upb_msglayout_field validate_UInt64Rules__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 4, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 4, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 4, 1}, - {4, UPB_SIZE(32, 32), 4, 0, 4, 1}, - {5, UPB_SIZE(40, 40), 5, 0, 4, 1}, - {6, UPB_SIZE(52, 56), 0, 0, 4, 3}, - {7, UPB_SIZE(56, 64), 0, 0, 4, 3}, - {8, UPB_SIZE(48, 48), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 4, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 32), 4, 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 40), 5, 0, 4, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(52, 56), 0, 0, 4, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 64), 0, 0, 4, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(48, 48), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_UInt64Rules_msginit = { NULL, &validate_UInt64Rules__fields[0], - UPB_SIZE(64, 72), 8, false, 255, + UPB_SIZE(64, 72), 8, false, 8, 255, }; static const upb_msglayout_field validate_SInt32Rules__fields[8] = { - {1, UPB_SIZE(4, 4), 1, 0, 17, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 17, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 17, 1}, - {4, UPB_SIZE(16, 16), 4, 0, 17, 1}, - {5, UPB_SIZE(20, 20), 5, 0, 17, 1}, - {6, UPB_SIZE(28, 32), 0, 0, 17, 3}, - {7, UPB_SIZE(32, 40), 0, 0, 17, 3}, - {8, UPB_SIZE(24, 24), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 17, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 17, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 17, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 4, 0, 17, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 20), 5, 0, 17, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 32), 0, 0, 17, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 40), 0, 0, 17, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(24, 24), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_SInt32Rules_msginit = { NULL, &validate_SInt32Rules__fields[0], - UPB_SIZE(40, 48), 8, false, 255, + UPB_SIZE(40, 48), 8, false, 8, 255, }; static const upb_msglayout_field validate_SInt64Rules__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 18, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 18, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 18, 1}, - {4, UPB_SIZE(32, 32), 4, 0, 18, 1}, - {5, UPB_SIZE(40, 40), 5, 0, 18, 1}, - {6, UPB_SIZE(52, 56), 0, 0, 18, 3}, - {7, UPB_SIZE(56, 64), 0, 0, 18, 3}, - {8, UPB_SIZE(48, 48), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 18, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 18, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 18, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 32), 4, 0, 18, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 40), 5, 0, 18, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(52, 56), 0, 0, 18, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 64), 0, 0, 18, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(48, 48), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_SInt64Rules_msginit = { NULL, &validate_SInt64Rules__fields[0], - UPB_SIZE(64, 72), 8, false, 255, + UPB_SIZE(64, 72), 8, false, 8, 255, }; static const upb_msglayout_field validate_Fixed32Rules__fields[8] = { - {1, UPB_SIZE(4, 4), 1, 0, 7, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 7, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 7, 1}, - {4, UPB_SIZE(16, 16), 4, 0, 7, 1}, - {5, UPB_SIZE(20, 20), 5, 0, 7, 1}, - {6, UPB_SIZE(28, 32), 0, 0, 7, 3}, - {7, UPB_SIZE(32, 40), 0, 0, 7, 3}, - {8, UPB_SIZE(24, 24), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 7, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 7, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 7, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 4, 0, 7, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 20), 5, 0, 7, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 32), 0, 0, 7, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 40), 0, 0, 7, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(24, 24), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_Fixed32Rules_msginit = { NULL, &validate_Fixed32Rules__fields[0], - UPB_SIZE(40, 48), 8, false, 255, + UPB_SIZE(40, 48), 8, false, 8, 255, }; static const upb_msglayout_field validate_Fixed64Rules__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 6, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 6, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 6, 1}, - {4, UPB_SIZE(32, 32), 4, 0, 6, 1}, - {5, UPB_SIZE(40, 40), 5, 0, 6, 1}, - {6, UPB_SIZE(52, 56), 0, 0, 6, 3}, - {7, UPB_SIZE(56, 64), 0, 0, 6, 3}, - {8, UPB_SIZE(48, 48), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 6, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 6, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 6, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 32), 4, 0, 6, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 40), 5, 0, 6, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(52, 56), 0, 0, 6, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 64), 0, 0, 6, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(48, 48), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_Fixed64Rules_msginit = { NULL, &validate_Fixed64Rules__fields[0], - UPB_SIZE(64, 72), 8, false, 255, + UPB_SIZE(64, 72), 8, false, 8, 255, }; static const upb_msglayout_field validate_SFixed32Rules__fields[8] = { - {1, UPB_SIZE(4, 4), 1, 0, 15, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 15, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 15, 1}, - {4, UPB_SIZE(16, 16), 4, 0, 15, 1}, - {5, UPB_SIZE(20, 20), 5, 0, 15, 1}, - {6, UPB_SIZE(28, 32), 0, 0, 15, 3}, - {7, UPB_SIZE(32, 40), 0, 0, 15, 3}, - {8, UPB_SIZE(24, 24), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 15, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 15, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 15, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 16), 4, 0, 15, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 20), 5, 0, 15, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 32), 0, 0, 15, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(32, 40), 0, 0, 15, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(24, 24), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_SFixed32Rules_msginit = { NULL, &validate_SFixed32Rules__fields[0], - UPB_SIZE(40, 48), 8, false, 255, + UPB_SIZE(40, 48), 8, false, 8, 255, }; static const upb_msglayout_field validate_SFixed64Rules__fields[8] = { - {1, UPB_SIZE(8, 8), 1, 0, 16, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 16, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 16, 1}, - {4, UPB_SIZE(32, 32), 4, 0, 16, 1}, - {5, UPB_SIZE(40, 40), 5, 0, 16, 1}, - {6, UPB_SIZE(52, 56), 0, 0, 16, 3}, - {7, UPB_SIZE(56, 64), 0, 0, 16, 3}, - {8, UPB_SIZE(48, 48), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 16, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 16, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 16, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(32, 32), 4, 0, 16, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(40, 40), 5, 0, 16, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(52, 56), 0, 0, 16, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(56, 64), 0, 0, 16, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(48, 48), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_SFixed64Rules_msginit = { NULL, &validate_SFixed64Rules__fields[0], - UPB_SIZE(64, 72), 8, false, 255, + UPB_SIZE(64, 72), 8, false, 8, 255, }; static const upb_msglayout_field validate_BoolRules__fields[1] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_BoolRules_msginit = { NULL, &validate_BoolRules__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field validate_StringRules__fields[26] = { - {1, UPB_SIZE(60, 64), 1, 0, 12, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 4, 1}, - {3, UPB_SIZE(16, 16), 3, 0, 4, 1}, - {4, UPB_SIZE(24, 24), 4, 0, 4, 1}, - {5, UPB_SIZE(32, 32), 5, 0, 4, 1}, - {6, UPB_SIZE(68, 80), 6, 0, 12, 1}, - {7, UPB_SIZE(76, 96), 7, 0, 12, 1}, - {8, UPB_SIZE(84, 112), 8, 0, 12, 1}, - {9, UPB_SIZE(92, 128), 9, 0, 12, 1}, - {10, UPB_SIZE(108, 160), 0, 0, 12, 3}, - {11, UPB_SIZE(112, 168), 0, 0, 12, 3}, - {12, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {13, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {14, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {15, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {16, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {17, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {18, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {19, UPB_SIZE(40, 40), 10, 0, 4, 1}, - {20, UPB_SIZE(48, 48), 11, 0, 4, 1}, - {21, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {22, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, 1}, - {23, UPB_SIZE(100, 144), 12, 0, 12, 1}, - {24, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 14, 1}, - {25, UPB_SIZE(56, 56), 13, 0, 8, 1}, - {26, UPB_SIZE(57, 57), 14, 0, 8, 1}, + {1, UPB_SIZE(60, 64), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 16), 3, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(24, 24), 4, 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 32), 5, 0, 4, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(68, 80), 6, 0, 12, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(76, 96), 7, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(84, 112), 8, 0, 12, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(92, 128), 9, 0, 12, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(108, 160), 0, 0, 12, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(112, 168), 0, 0, 12, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {15, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {19, UPB_SIZE(40, 40), 10, 0, 4, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(48, 48), 11, 0, 4, _UPB_MODE_SCALAR}, + {21, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {22, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 8, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(100, 144), 12, 0, 12, _UPB_MODE_SCALAR}, + {24, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 14, _UPB_MODE_SCALAR}, + {25, UPB_SIZE(56, 56), 13, 0, 8, _UPB_MODE_SCALAR}, + {26, UPB_SIZE(57, 57), 14, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_StringRules_msginit = { NULL, &validate_StringRules__fields[0], - UPB_SIZE(128, 192), 26, false, 255, + UPB_SIZE(128, 192), 26, false, 26, 255, }; static const upb_msglayout_field validate_BytesRules__fields[14] = { - {1, UPB_SIZE(36, 40), 1, 0, 12, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 4, 1}, - {3, UPB_SIZE(16, 16), 3, 0, 4, 1}, - {4, UPB_SIZE(44, 56), 4, 0, 12, 1}, - {5, UPB_SIZE(52, 72), 5, 0, 12, 1}, - {6, UPB_SIZE(60, 88), 6, 0, 12, 1}, - {7, UPB_SIZE(68, 104), 7, 0, 12, 1}, - {8, UPB_SIZE(76, 120), 0, 0, 12, 3}, - {9, UPB_SIZE(80, 128), 0, 0, 12, 3}, - {10, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, 1}, - {11, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, 1}, - {12, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, 1}, - {13, UPB_SIZE(24, 24), 8, 0, 4, 1}, - {14, UPB_SIZE(32, 32), 9, 0, 8, 1}, + {1, UPB_SIZE(36, 40), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 16), 3, 0, 4, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(44, 56), 4, 0, 12, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(52, 72), 5, 0, 12, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(60, 88), 6, 0, 12, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(68, 104), 7, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(76, 120), 0, 0, 12, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(80, 128), 0, 0, 12, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, _UPB_MODE_SCALAR}, + {12, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, _UPB_MODE_SCALAR}, + {13, UPB_SIZE(24, 24), 8, 0, 4, _UPB_MODE_SCALAR}, + {14, UPB_SIZE(32, 32), 9, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_BytesRules_msginit = { NULL, &validate_BytesRules__fields[0], - UPB_SIZE(96, 144), 14, false, 255, + UPB_SIZE(96, 144), 14, false, 14, 255, }; static const upb_msglayout_field validate_EnumRules__fields[4] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 8, 1}, - {3, UPB_SIZE(12, 16), 0, 0, 5, 3}, - {4, UPB_SIZE(16, 24), 0, 0, 5, 3}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 16), 0, 0, 5, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(16, 24), 0, 0, 5, _UPB_MODE_ARRAY}, }; const upb_msglayout validate_EnumRules_msginit = { NULL, &validate_EnumRules__fields[0], - UPB_SIZE(24, 32), 4, false, 255, + UPB_SIZE(24, 32), 4, false, 4, 255, }; static const upb_msglayout_field validate_MessageRules__fields[2] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {2, UPB_SIZE(2, 2), 2, 0, 8, 1}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(2, 2), 2, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_MessageRules_msginit = { NULL, &validate_MessageRules__fields[0], - UPB_SIZE(8, 8), 2, false, 255, + UPB_SIZE(8, 8), 2, false, 2, 255, }; static const upb_msglayout *const validate_RepeatedRules_submsgs[1] = { @@ -372,17 +372,17 @@ static const upb_msglayout *const validate_RepeatedRules_submsgs[1] = { }; static const upb_msglayout_field validate_RepeatedRules__fields[5] = { - {1, UPB_SIZE(8, 8), 1, 0, 4, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 4, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 8, 1}, - {4, UPB_SIZE(28, 32), 4, 0, 11, 1}, - {5, UPB_SIZE(25, 25), 5, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 4, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 32), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(25, 25), 5, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_RepeatedRules_msginit = { &validate_RepeatedRules_submsgs[0], &validate_RepeatedRules__fields[0], - UPB_SIZE(32, 40), 5, false, 255, + UPB_SIZE(32, 40), 5, false, 5, 255, }; static const upb_msglayout *const validate_MapRules_submsgs[1] = { @@ -390,30 +390,30 @@ static const upb_msglayout *const validate_MapRules_submsgs[1] = { }; static const upb_msglayout_field validate_MapRules__fields[6] = { - {1, UPB_SIZE(8, 8), 1, 0, 4, 1}, - {2, UPB_SIZE(16, 16), 2, 0, 4, 1}, - {3, UPB_SIZE(24, 24), 3, 0, 8, 1}, - {4, UPB_SIZE(28, 32), 4, 0, 11, 1}, - {5, UPB_SIZE(32, 40), 5, 0, 11, 1}, - {6, UPB_SIZE(25, 25), 6, 0, 8, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 4, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 16), 2, 0, 4, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(24, 24), 3, 0, 8, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 32), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 40), 5, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(25, 25), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_MapRules_msginit = { &validate_MapRules_submsgs[0], &validate_MapRules__fields[0], - UPB_SIZE(40, 48), 6, false, 255, + UPB_SIZE(40, 48), 6, false, 6, 255, }; static const upb_msglayout_field validate_AnyRules__fields[3] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 12, 3}, - {3, UPB_SIZE(8, 16), 0, 0, 12, 3}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 12, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(8, 16), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout validate_AnyRules_msginit = { NULL, &validate_AnyRules__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout *const validate_DurationRules_submsgs[1] = { @@ -421,20 +421,20 @@ static const upb_msglayout *const validate_DurationRules_submsgs[1] = { }; static const upb_msglayout_field validate_DurationRules__fields[8] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {2, UPB_SIZE(4, 8), 2, 0, 11, 1}, - {3, UPB_SIZE(8, 16), 3, 0, 11, 1}, - {4, UPB_SIZE(12, 24), 4, 0, 11, 1}, - {5, UPB_SIZE(16, 32), 5, 0, 11, 1}, - {6, UPB_SIZE(20, 40), 6, 0, 11, 1}, - {7, UPB_SIZE(24, 48), 0, 0, 11, 3}, - {8, UPB_SIZE(28, 56), 0, 0, 11, 3}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 2, 0, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(8, 16), 3, 0, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 32), 5, 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(20, 40), 6, 0, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(24, 48), 0, 0, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(28, 56), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout validate_DurationRules_msginit = { &validate_DurationRules_submsgs[0], &validate_DurationRules__fields[0], - UPB_SIZE(32, 64), 8, false, 255, + UPB_SIZE(32, 64), 8, false, 8, 255, }; static const upb_msglayout *const validate_TimestampRules_submsgs[2] = { @@ -443,21 +443,21 @@ static const upb_msglayout *const validate_TimestampRules_submsgs[2] = { }; static const upb_msglayout_field validate_TimestampRules__fields[9] = { - {1, UPB_SIZE(2, 2), 1, 0, 8, 1}, - {2, UPB_SIZE(8, 8), 2, 1, 11, 1}, - {3, UPB_SIZE(12, 16), 3, 1, 11, 1}, - {4, UPB_SIZE(16, 24), 4, 1, 11, 1}, - {5, UPB_SIZE(20, 32), 5, 1, 11, 1}, - {6, UPB_SIZE(24, 40), 6, 1, 11, 1}, - {7, UPB_SIZE(3, 3), 7, 0, 8, 1}, - {8, UPB_SIZE(4, 4), 8, 0, 8, 1}, - {9, UPB_SIZE(28, 48), 9, 0, 11, 1}, + {1, UPB_SIZE(2, 2), 1, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 1, 11, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 16), 3, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(16, 24), 4, 1, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(20, 32), 5, 1, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 40), 6, 1, 11, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(3, 3), 7, 0, 8, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(4, 4), 8, 0, 8, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(28, 48), 9, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout validate_TimestampRules_msginit = { &validate_TimestampRules_submsgs[0], &validate_TimestampRules__fields[0], - UPB_SIZE(32, 56), 9, false, 255, + UPB_SIZE(32, 56), 9, false, 9, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/validate/validate.upb.h b/src/core/ext/upb-generated/validate/validate.upb.h index 640cdf9f1f9..e121fd88bae 100644 --- a/src/core/ext/upb-generated/validate/validate.upb.h +++ b/src/core/ext/upb-generated/validate/validate.upb.h @@ -9,7 +9,7 @@ #ifndef VALIDATE_VALIDATE_PROTO_UPB_H_ #define VALIDATE_VALIDATE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -109,13 +109,19 @@ UPB_INLINE validate_FieldRules *validate_FieldRules_new(upb_arena *arena) { UPB_INLINE validate_FieldRules *validate_FieldRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_FieldRules *ret = validate_FieldRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_FieldRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_FieldRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_FieldRules *validate_FieldRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_FieldRules *ret = validate_FieldRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_FieldRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_FieldRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_FieldRules_serialize(const validate_FieldRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_FieldRules_msginit, arena, len); @@ -466,13 +472,19 @@ UPB_INLINE validate_FloatRules *validate_FloatRules_new(upb_arena *arena) { UPB_INLINE validate_FloatRules *validate_FloatRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_FloatRules *ret = validate_FloatRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_FloatRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_FloatRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_FloatRules *validate_FloatRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_FloatRules *ret = validate_FloatRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_FloatRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_FloatRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_FloatRules_serialize(const validate_FloatRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_FloatRules_msginit, arena, len); @@ -546,13 +558,19 @@ UPB_INLINE validate_DoubleRules *validate_DoubleRules_new(upb_arena *arena) { UPB_INLINE validate_DoubleRules *validate_DoubleRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_DoubleRules *ret = validate_DoubleRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_DoubleRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_DoubleRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_DoubleRules *validate_DoubleRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_DoubleRules *ret = validate_DoubleRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_DoubleRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_DoubleRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_DoubleRules_serialize(const validate_DoubleRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_DoubleRules_msginit, arena, len); @@ -626,13 +644,19 @@ UPB_INLINE validate_Int32Rules *validate_Int32Rules_new(upb_arena *arena) { UPB_INLINE validate_Int32Rules *validate_Int32Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_Int32Rules *ret = validate_Int32Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_Int32Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_Int32Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_Int32Rules *validate_Int32Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_Int32Rules *ret = validate_Int32Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_Int32Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_Int32Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_Int32Rules_serialize(const validate_Int32Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_Int32Rules_msginit, arena, len); @@ -706,13 +730,19 @@ UPB_INLINE validate_Int64Rules *validate_Int64Rules_new(upb_arena *arena) { UPB_INLINE validate_Int64Rules *validate_Int64Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_Int64Rules *ret = validate_Int64Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_Int64Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_Int64Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_Int64Rules *validate_Int64Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_Int64Rules *ret = validate_Int64Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_Int64Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_Int64Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_Int64Rules_serialize(const validate_Int64Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_Int64Rules_msginit, arena, len); @@ -786,13 +816,19 @@ UPB_INLINE validate_UInt32Rules *validate_UInt32Rules_new(upb_arena *arena) { UPB_INLINE validate_UInt32Rules *validate_UInt32Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_UInt32Rules *ret = validate_UInt32Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_UInt32Rules *validate_UInt32Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_UInt32Rules *ret = validate_UInt32Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_UInt32Rules_serialize(const validate_UInt32Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_UInt32Rules_msginit, arena, len); @@ -866,13 +902,19 @@ UPB_INLINE validate_UInt64Rules *validate_UInt64Rules_new(upb_arena *arena) { UPB_INLINE validate_UInt64Rules *validate_UInt64Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_UInt64Rules *ret = validate_UInt64Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_UInt64Rules *validate_UInt64Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_UInt64Rules *ret = validate_UInt64Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_UInt64Rules_serialize(const validate_UInt64Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_UInt64Rules_msginit, arena, len); @@ -946,13 +988,19 @@ UPB_INLINE validate_SInt32Rules *validate_SInt32Rules_new(upb_arena *arena) { UPB_INLINE validate_SInt32Rules *validate_SInt32Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_SInt32Rules *ret = validate_SInt32Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_SInt32Rules *validate_SInt32Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_SInt32Rules *ret = validate_SInt32Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_SInt32Rules_serialize(const validate_SInt32Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_SInt32Rules_msginit, arena, len); @@ -1026,13 +1074,19 @@ UPB_INLINE validate_SInt64Rules *validate_SInt64Rules_new(upb_arena *arena) { UPB_INLINE validate_SInt64Rules *validate_SInt64Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_SInt64Rules *ret = validate_SInt64Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_SInt64Rules *validate_SInt64Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_SInt64Rules *ret = validate_SInt64Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_SInt64Rules_serialize(const validate_SInt64Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_SInt64Rules_msginit, arena, len); @@ -1106,13 +1160,19 @@ UPB_INLINE validate_Fixed32Rules *validate_Fixed32Rules_new(upb_arena *arena) { UPB_INLINE validate_Fixed32Rules *validate_Fixed32Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_Fixed32Rules *ret = validate_Fixed32Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_Fixed32Rules *validate_Fixed32Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_Fixed32Rules *ret = validate_Fixed32Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_Fixed32Rules_serialize(const validate_Fixed32Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_Fixed32Rules_msginit, arena, len); @@ -1186,13 +1246,19 @@ UPB_INLINE validate_Fixed64Rules *validate_Fixed64Rules_new(upb_arena *arena) { UPB_INLINE validate_Fixed64Rules *validate_Fixed64Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_Fixed64Rules *ret = validate_Fixed64Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_Fixed64Rules *validate_Fixed64Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_Fixed64Rules *ret = validate_Fixed64Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_Fixed64Rules_serialize(const validate_Fixed64Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_Fixed64Rules_msginit, arena, len); @@ -1266,13 +1332,19 @@ UPB_INLINE validate_SFixed32Rules *validate_SFixed32Rules_new(upb_arena *arena) UPB_INLINE validate_SFixed32Rules *validate_SFixed32Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_SFixed32Rules *ret = validate_SFixed32Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_SFixed32Rules *validate_SFixed32Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_SFixed32Rules *ret = validate_SFixed32Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_SFixed32Rules_serialize(const validate_SFixed32Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_SFixed32Rules_msginit, arena, len); @@ -1346,13 +1418,19 @@ UPB_INLINE validate_SFixed64Rules *validate_SFixed64Rules_new(upb_arena *arena) UPB_INLINE validate_SFixed64Rules *validate_SFixed64Rules_parse(const char *buf, size_t size, upb_arena *arena) { validate_SFixed64Rules *ret = validate_SFixed64Rules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_SFixed64Rules *validate_SFixed64Rules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_SFixed64Rules *ret = validate_SFixed64Rules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_SFixed64Rules_serialize(const validate_SFixed64Rules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_SFixed64Rules_msginit, arena, len); @@ -1426,13 +1504,19 @@ UPB_INLINE validate_BoolRules *validate_BoolRules_new(upb_arena *arena) { UPB_INLINE validate_BoolRules *validate_BoolRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_BoolRules *ret = validate_BoolRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_BoolRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_BoolRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_BoolRules *validate_BoolRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_BoolRules *ret = validate_BoolRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_BoolRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_BoolRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_BoolRules_serialize(const validate_BoolRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_BoolRules_msginit, arena, len); @@ -1454,13 +1538,19 @@ UPB_INLINE validate_StringRules *validate_StringRules_new(upb_arena *arena) { UPB_INLINE validate_StringRules *validate_StringRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_StringRules *ret = validate_StringRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_StringRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_StringRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_StringRules *validate_StringRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_StringRules *ret = validate_StringRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_StringRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_StringRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_StringRules_serialize(const validate_StringRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_StringRules_msginit, arena, len); @@ -1647,13 +1737,19 @@ UPB_INLINE validate_BytesRules *validate_BytesRules_new(upb_arena *arena) { UPB_INLINE validate_BytesRules *validate_BytesRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_BytesRules *ret = validate_BytesRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_BytesRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_BytesRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_BytesRules *validate_BytesRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_BytesRules *ret = validate_BytesRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_BytesRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_BytesRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_BytesRules_serialize(const validate_BytesRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_BytesRules_msginit, arena, len); @@ -1768,13 +1864,19 @@ UPB_INLINE validate_EnumRules *validate_EnumRules_new(upb_arena *arena) { UPB_INLINE validate_EnumRules *validate_EnumRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_EnumRules *ret = validate_EnumRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_EnumRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_EnumRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_EnumRules *validate_EnumRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_EnumRules *ret = validate_EnumRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_EnumRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_EnumRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_EnumRules_serialize(const validate_EnumRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_EnumRules_msginit, arena, len); @@ -1824,13 +1926,19 @@ UPB_INLINE validate_MessageRules *validate_MessageRules_new(upb_arena *arena) { UPB_INLINE validate_MessageRules *validate_MessageRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_MessageRules *ret = validate_MessageRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_MessageRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_MessageRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_MessageRules *validate_MessageRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_MessageRules *ret = validate_MessageRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_MessageRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_MessageRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_MessageRules_serialize(const validate_MessageRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_MessageRules_msginit, arena, len); @@ -1858,13 +1966,19 @@ UPB_INLINE validate_RepeatedRules *validate_RepeatedRules_new(upb_arena *arena) UPB_INLINE validate_RepeatedRules *validate_RepeatedRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_RepeatedRules *ret = validate_RepeatedRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_RepeatedRules *validate_RepeatedRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_RepeatedRules *ret = validate_RepeatedRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_RepeatedRules_serialize(const validate_RepeatedRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_RepeatedRules_msginit, arena, len); @@ -1919,13 +2033,19 @@ UPB_INLINE validate_MapRules *validate_MapRules_new(upb_arena *arena) { UPB_INLINE validate_MapRules *validate_MapRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_MapRules *ret = validate_MapRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_MapRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_MapRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_MapRules *validate_MapRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_MapRules *ret = validate_MapRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_MapRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_MapRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_MapRules_serialize(const validate_MapRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_MapRules_msginit, arena, len); @@ -1995,13 +2115,19 @@ UPB_INLINE validate_AnyRules *validate_AnyRules_new(upb_arena *arena) { UPB_INLINE validate_AnyRules *validate_AnyRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_AnyRules *ret = validate_AnyRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_AnyRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_AnyRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_AnyRules *validate_AnyRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_AnyRules *ret = validate_AnyRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_AnyRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_AnyRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_AnyRules_serialize(const validate_AnyRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_AnyRules_msginit, arena, len); @@ -2045,13 +2171,19 @@ UPB_INLINE validate_DurationRules *validate_DurationRules_new(upb_arena *arena) UPB_INLINE validate_DurationRules *validate_DurationRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_DurationRules *ret = validate_DurationRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_DurationRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_DurationRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_DurationRules *validate_DurationRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_DurationRules *ret = validate_DurationRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_DurationRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_DurationRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_DurationRules_serialize(const validate_DurationRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_DurationRules_msginit, arena, len); @@ -2178,13 +2310,19 @@ UPB_INLINE validate_TimestampRules *validate_TimestampRules_new(upb_arena *arena UPB_INLINE validate_TimestampRules *validate_TimestampRules_parse(const char *buf, size_t size, upb_arena *arena) { validate_TimestampRules *ret = validate_TimestampRules_new(arena); - return (ret && upb_decode(buf, size, ret, &validate_TimestampRules_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &validate_TimestampRules_msginit, arena)) return NULL; + return ret; } UPB_INLINE validate_TimestampRules *validate_TimestampRules_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { validate_TimestampRules *ret = validate_TimestampRules_new(arena); - return (ret && _upb_decode(buf, size, ret, &validate_TimestampRules_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &validate_TimestampRules_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *validate_TimestampRules_serialize(const validate_TimestampRules *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &validate_TimestampRules_msginit, arena, len); diff --git a/src/core/ext/upb-generated/xds/core/v3/authority.upb.c b/src/core/ext/upb-generated/xds/core/v3/authority.upb.c index 6c6da7d75b7..de06e076b7e 100644 --- a/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +++ b/src/core/ext/upb-generated/xds/core/v3/authority.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "xds/core/v3/authority.upb.h" #include "udpa/annotations/status.upb.h" #include "validate/validate.upb.h" @@ -15,13 +15,13 @@ #include "upb/port_def.inc" static const upb_msglayout_field xds_core_v3_Authority__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_Authority_msginit = { NULL, &xds_core_v3_Authority__fields[0], - UPB_SIZE(8, 16), 1, false, 255, + UPB_SIZE(8, 16), 1, false, 1, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/xds/core/v3/authority.upb.h b/src/core/ext/upb-generated/xds/core/v3/authority.upb.h index 2f1ff445416..fa75a11bb32 100644 --- a/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +++ b/src/core/ext/upb-generated/xds/core/v3/authority.upb.h @@ -9,7 +9,7 @@ #ifndef XDS_CORE_V3_AUTHORITY_PROTO_UPB_H_ #define XDS_CORE_V3_AUTHORITY_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -33,13 +33,19 @@ UPB_INLINE xds_core_v3_Authority *xds_core_v3_Authority_new(upb_arena *arena) { UPB_INLINE xds_core_v3_Authority *xds_core_v3_Authority_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_Authority *ret = xds_core_v3_Authority_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_Authority_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_Authority_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_Authority *xds_core_v3_Authority_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_Authority *ret = xds_core_v3_Authority_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_Authority_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_Authority_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_Authority_serialize(const xds_core_v3_Authority *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_Authority_msginit, arena, len); diff --git a/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c b/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c index 20cc2970982..e4584e44597 100644 --- a/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +++ b/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "xds/core/v3/collection_entry.upb.h" #include "google/protobuf/any.upb.h" #include "udpa/annotations/status.upb.h" @@ -22,14 +22,14 @@ static const upb_msglayout *const xds_core_v3_CollectionEntry_submsgs[2] = { }; static const upb_msglayout_field xds_core_v3_CollectionEntry__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_CollectionEntry_msginit = { &xds_core_v3_CollectionEntry_submsgs[0], &xds_core_v3_CollectionEntry__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 2, 255, }; static const upb_msglayout *const xds_core_v3_CollectionEntry_InlineEntry_submsgs[1] = { @@ -37,15 +37,15 @@ static const upb_msglayout *const xds_core_v3_CollectionEntry_InlineEntry_submsg }; static const upb_msglayout_field xds_core_v3_CollectionEntry_InlineEntry__fields[3] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_CollectionEntry_InlineEntry_msginit = { &xds_core_v3_CollectionEntry_InlineEntry_submsgs[0], &xds_core_v3_CollectionEntry_InlineEntry__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h b/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h index 983a3455c8f..df01757e814 100644 --- a/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +++ b/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h @@ -9,7 +9,7 @@ #ifndef XDS_CORE_V3_COLLECTION_ENTRY_PROTO_UPB_H_ #define XDS_CORE_V3_COLLECTION_ENTRY_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -40,13 +40,19 @@ UPB_INLINE xds_core_v3_CollectionEntry *xds_core_v3_CollectionEntry_new(upb_aren UPB_INLINE xds_core_v3_CollectionEntry *xds_core_v3_CollectionEntry_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_CollectionEntry *ret = xds_core_v3_CollectionEntry_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_CollectionEntry *xds_core_v3_CollectionEntry_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_CollectionEntry *ret = xds_core_v3_CollectionEntry_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_CollectionEntry_serialize(const xds_core_v3_CollectionEntry *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_CollectionEntry_msginit, arena, len); @@ -97,13 +103,19 @@ UPB_INLINE xds_core_v3_CollectionEntry_InlineEntry *xds_core_v3_CollectionEntry_ UPB_INLINE xds_core_v3_CollectionEntry_InlineEntry *xds_core_v3_CollectionEntry_InlineEntry_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_CollectionEntry_InlineEntry *ret = xds_core_v3_CollectionEntry_InlineEntry_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_InlineEntry_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_InlineEntry_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_CollectionEntry_InlineEntry *xds_core_v3_CollectionEntry_InlineEntry_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_CollectionEntry_InlineEntry *ret = xds_core_v3_CollectionEntry_InlineEntry_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_InlineEntry_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_CollectionEntry_InlineEntry_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_CollectionEntry_InlineEntry_serialize(const xds_core_v3_CollectionEntry_InlineEntry *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_CollectionEntry_InlineEntry_msginit, arena, len); diff --git a/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c b/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c index 17c3c61cda9..b78d54cf295 100644 --- a/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +++ b/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "xds/core/v3/context_params.upb.h" #include "udpa/annotations/status.upb.h" @@ -18,24 +18,24 @@ static const upb_msglayout *const xds_core_v3_ContextParams_submsgs[1] = { }; static const upb_msglayout_field xds_core_v3_ContextParams__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_LABEL_MAP}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_MAP}, }; const upb_msglayout xds_core_v3_ContextParams_msginit = { &xds_core_v3_ContextParams_submsgs[0], &xds_core_v3_ContextParams__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field xds_core_v3_ContextParams_ParamsEntry__fields[2] = { - {1, UPB_SIZE(0, 0), 0, 0, 9, 1}, - {2, UPB_SIZE(8, 16), 0, 0, 9, 1}, + {1, UPB_SIZE(0, 0), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 16), 0, 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_ContextParams_ParamsEntry_msginit = { NULL, &xds_core_v3_ContextParams_ParamsEntry__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h b/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h index 0bcd2425962..3fab0c4ff54 100644 --- a/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +++ b/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h @@ -9,7 +9,7 @@ #ifndef XDS_CORE_V3_CONTEXT_PARAMS_PROTO_UPB_H_ #define XDS_CORE_V3_CONTEXT_PARAMS_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -36,13 +36,19 @@ UPB_INLINE xds_core_v3_ContextParams *xds_core_v3_ContextParams_new(upb_arena *a UPB_INLINE xds_core_v3_ContextParams *xds_core_v3_ContextParams_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_ContextParams *ret = xds_core_v3_ContextParams_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_ContextParams_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_ContextParams_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_ContextParams *xds_core_v3_ContextParams_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_ContextParams *ret = xds_core_v3_ContextParams_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_ContextParams_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_ContextParams_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_ContextParams_serialize(const xds_core_v3_ContextParams *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_ContextParams_msginit, arena, len); diff --git a/src/core/ext/upb-generated/xds/core/v3/resource.upb.c b/src/core/ext/upb-generated/xds/core/v3/resource.upb.c index fa2375e98ee..c3fa6abb15e 100644 --- a/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +++ b/src/core/ext/upb-generated/xds/core/v3/resource.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "xds/core/v3/resource.upb.h" #include "google/protobuf/any.upb.h" #include "udpa/annotations/status.upb.h" @@ -21,15 +21,15 @@ static const upb_msglayout *const xds_core_v3_Resource_submsgs[2] = { }; static const upb_msglayout_field xds_core_v3_Resource__fields[3] = { - {1, UPB_SIZE(12, 24), 1, 1, 11, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(16, 32), 2, 0, 11, 1}, + {1, UPB_SIZE(12, 24), 1, 1, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 32), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_Resource_msginit = { &xds_core_v3_Resource_submsgs[0], &xds_core_v3_Resource__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/xds/core/v3/resource.upb.h b/src/core/ext/upb-generated/xds/core/v3/resource.upb.h index ab8e2df41b6..7be74628774 100644 --- a/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +++ b/src/core/ext/upb-generated/xds/core/v3/resource.upb.h @@ -9,7 +9,7 @@ #ifndef XDS_CORE_V3_RESOURCE_PROTO_UPB_H_ #define XDS_CORE_V3_RESOURCE_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -37,13 +37,19 @@ UPB_INLINE xds_core_v3_Resource *xds_core_v3_Resource_new(upb_arena *arena) { UPB_INLINE xds_core_v3_Resource *xds_core_v3_Resource_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_Resource *ret = xds_core_v3_Resource_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_Resource_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_Resource_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_Resource *xds_core_v3_Resource_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_Resource *ret = xds_core_v3_Resource_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_Resource_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_Resource_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_Resource_serialize(const xds_core_v3_Resource *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_Resource_msginit, arena, len); diff --git a/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c b/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c index 2bd099a5e4c..575e5561d40 100644 --- a/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +++ b/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "xds/core/v3/resource_locator.upb.h" #include "udpa/annotations/status.upb.h" #include "xds/core/v3/context_params.upb.h" @@ -21,18 +21,18 @@ static const upb_msglayout *const xds_core_v3_ResourceLocator_submsgs[2] = { }; static const upb_msglayout_field xds_core_v3_ResourceLocator__fields[6] = { - {1, UPB_SIZE(0, 0), 0, 0, 14, 1}, - {2, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {3, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {4, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {5, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 0, 11, 1}, - {6, UPB_SIZE(28, 56), 0, 1, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(32, 64), UPB_SIZE(-37, -73), 0, 11, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 56), 0, 1, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout xds_core_v3_ResourceLocator_msginit = { &xds_core_v3_ResourceLocator_submsgs[0], &xds_core_v3_ResourceLocator__fields[0], - UPB_SIZE(40, 80), 6, false, 255, + UPB_SIZE(40, 80), 6, false, 6, 255, }; static const upb_msglayout *const xds_core_v3_ResourceLocator_Directive_submsgs[1] = { @@ -40,14 +40,14 @@ static const upb_msglayout *const xds_core_v3_ResourceLocator_Directive_submsgs[ }; static const upb_msglayout_field xds_core_v3_ResourceLocator_Directive__fields[2] = { - {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, 1}, - {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1}, + {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 11, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_ResourceLocator_Directive_msginit = { &xds_core_v3_ResourceLocator_Directive_submsgs[0], &xds_core_v3_ResourceLocator_Directive__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h b/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h index da7442bd179..797cc45af9b 100644 --- a/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +++ b/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h @@ -9,7 +9,7 @@ #ifndef XDS_CORE_V3_RESOURCE_LOCATOR_PROTO_UPB_H_ #define XDS_CORE_V3_RESOURCE_LOCATOR_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -44,13 +44,19 @@ UPB_INLINE xds_core_v3_ResourceLocator *xds_core_v3_ResourceLocator_new(upb_aren UPB_INLINE xds_core_v3_ResourceLocator *xds_core_v3_ResourceLocator_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_ResourceLocator *ret = xds_core_v3_ResourceLocator_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_ResourceLocator *xds_core_v3_ResourceLocator_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_ResourceLocator *ret = xds_core_v3_ResourceLocator_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_ResourceLocator_serialize(const xds_core_v3_ResourceLocator *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_ResourceLocator_msginit, arena, len); @@ -117,13 +123,19 @@ UPB_INLINE xds_core_v3_ResourceLocator_Directive *xds_core_v3_ResourceLocator_Di UPB_INLINE xds_core_v3_ResourceLocator_Directive *xds_core_v3_ResourceLocator_Directive_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_ResourceLocator_Directive *ret = xds_core_v3_ResourceLocator_Directive_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_Directive_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_Directive_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_ResourceLocator_Directive *xds_core_v3_ResourceLocator_Directive_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_ResourceLocator_Directive *ret = xds_core_v3_ResourceLocator_Directive_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_Directive_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_ResourceLocator_Directive_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_ResourceLocator_Directive_serialize(const xds_core_v3_ResourceLocator_Directive *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_ResourceLocator_Directive_msginit, arena, len); diff --git a/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c b/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c index ff645f687ff..f0bf9b36940 100644 --- a/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +++ b/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "xds/core/v3/resource_name.upb.h" #include "udpa/annotations/status.upb.h" #include "xds/core/v3/context_params.upb.h" @@ -20,16 +20,16 @@ static const upb_msglayout *const xds_core_v3_ResourceName_submsgs[1] = { }; static const upb_msglayout_field xds_core_v3_ResourceName__fields[4] = { - {1, UPB_SIZE(4, 8), 0, 0, 9, 1}, - {2, UPB_SIZE(12, 24), 0, 0, 9, 1}, - {3, UPB_SIZE(20, 40), 0, 0, 9, 1}, - {4, UPB_SIZE(28, 56), 1, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 0, 0, 9, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 0, 0, 9, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 0, 0, 9, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 56), 1, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout xds_core_v3_ResourceName_msginit = { &xds_core_v3_ResourceName_submsgs[0], &xds_core_v3_ResourceName__fields[0], - UPB_SIZE(32, 64), 4, false, 255, + UPB_SIZE(32, 64), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h b/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h index 3f38cc5139d..06fe8a09460 100644 --- a/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +++ b/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h @@ -9,7 +9,7 @@ #ifndef XDS_CORE_V3_RESOURCE_NAME_PROTO_UPB_H_ #define XDS_CORE_V3_RESOURCE_NAME_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -35,13 +35,19 @@ UPB_INLINE xds_core_v3_ResourceName *xds_core_v3_ResourceName_new(upb_arena *are UPB_INLINE xds_core_v3_ResourceName *xds_core_v3_ResourceName_parse(const char *buf, size_t size, upb_arena *arena) { xds_core_v3_ResourceName *ret = xds_core_v3_ResourceName_new(arena); - return (ret && upb_decode(buf, size, ret, &xds_core_v3_ResourceName_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &xds_core_v3_ResourceName_msginit, arena)) return NULL; + return ret; } UPB_INLINE xds_core_v3_ResourceName *xds_core_v3_ResourceName_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { xds_core_v3_ResourceName *ret = xds_core_v3_ResourceName_new(arena); - return (ret && _upb_decode(buf, size, ret, &xds_core_v3_ResourceName_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &xds_core_v3_ResourceName_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *xds_core_v3_ResourceName_serialize(const xds_core_v3_ResourceName *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &xds_core_v3_ResourceName_msginit, arena, len); diff --git a/src/upb/gen_build_yaml.py b/src/upb/gen_build_yaml.py index b556c3dea89..5b528ef15ac 100755 --- a/src/upb/gen_build_yaml.py +++ b/src/upb/gen_build_yaml.py @@ -43,21 +43,22 @@ try: ], 'headers': [ "third_party/upb/upb/decode_fast.h", + "third_party/upb/upb/decode_internal.h", "third_party/upb/upb/decode.h", - "third_party/upb/upb/decode.int.h", "third_party/upb/upb/def.h", "third_party/upb/upb/def.hpp", "third_party/upb/upb/encode.h", + "third_party/upb/upb/msg_internal.h", "third_party/upb/upb/msg.h", "third_party/upb/upb/port_def.inc", "third_party/upb/upb/port_undef.inc", "third_party/upb/upb/reflection.h", - "third_party/upb/upb/table.int.h", + "third_party/upb/upb/reflection.hpp", + "third_party/upb/upb/table_internal.h", "third_party/upb/upb/text_encode.h", + "third_party/upb/upb/upb_internal.h", "third_party/upb/upb/upb.h", "third_party/upb/upb/upb.hpp", - "third_party/upb/upb/upb.int.h", - "third_party/upb/third_party/wyhash/wyhash.h", "src/core/ext/upb-generated/google/protobuf/descriptor.upb.h", "src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h", ], diff --git a/third_party/upb/.bazelci/presubmit.yml b/third_party/upb/.bazelci/presubmit.yml index 38ca79304f9..a754f32284e 100644 --- a/third_party/upb/.bazelci/presubmit.yml +++ b/third_party/upb/.bazelci/presubmit.yml @@ -1,7 +1,7 @@ --- tasks: ubuntu: - platform: ubuntu1604 + platform: ubuntu1804 test_targets: - //... macos: diff --git a/third_party/upb/.bazelrc b/third_party/upb/.bazelrc index 7b9da717aa2..bfaa00cca89 100644 --- a/third_party/upb/.bazelrc +++ b/third_party/upb/.bazelrc @@ -1,3 +1,6 @@ +# temporary fix for https://github.com/bazelbuild/bazel/issues/12905 on macOS +build --features=-debug_prefix_map_pwd_is_dot + # Use our custom-configured c++ toolchain. build:m32 --copt=-m32 --linkopt=-m32 @@ -8,6 +11,8 @@ build:ubsan --copt=-fsanitize=undefined --linkopt=-fsanitize=undefined --action_ # Workaround for the fact that Bazel links with $CC, not $CXX # https://github.com/bazelbuild/bazel/issues/11122#issuecomment-613746748 build:ubsan --copt=-fno-sanitize=function --copt=-fno-sanitize=vptr +# Workaround for https://bugs.llvm.org/show_bug.cgi?id=16404 +build:ubsan --linkopt=--rtlib=compiler-rt --linkopt=-lunwind build:Werror --copt=-Werror build:Werror --per_file_copt=json/parser@-Wno-error diff --git a/third_party/upb/.github/workflows/cifuzz.yml b/third_party/upb/.github/workflows/cifuzz.yml new file mode 100644 index 00000000000..092b1079fff --- /dev/null +++ b/third_party/upb/.github/workflows/cifuzz.yml @@ -0,0 +1,29 @@ +name: CIFuzz +on: [pull_request] +jobs: + Fuzzing: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + sanitizer: [address, undefined] + steps: + - name: Build Fuzzers (${{ matrix.sanitizer }}) + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + with: + oss-fuzz-project-name: 'upb' + dry-run: false + sanitizer: ${{ matrix.sanitizer }} + - name: Run Fuzzers (${{ matrix.sanitizer }}) + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + with: + oss-fuzz-project-name: 'upb' + fuzz-seconds: 600 + dry-run: false + sanitizer: ${{ matrix.sanitizer }} + - name: Upload Crash + uses: actions/upload-artifact@v1 + if: failure() + with: + name: ${{ matrix.sanitizer }}-artifacts + path: ./out/artifacts diff --git a/third_party/upb/BUILD b/third_party/upb/BUILD index 2e133263a7c..719f2b4fd20 100644 --- a/third_party/upb/BUILD +++ b/third_party/upb/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "//bazel:build_defs.bzl", "UPB_DEFAULT_COPTS", @@ -11,15 +36,7 @@ load( "upb_proto_reflection_library", ) -# copybara:strip_for_google3_begin -load( - "@rules_proto//proto:defs.bzl", - "proto_library", -) - -# copybara:strip_end - -licenses(["notice"]) # BSD (Google-authored w/ possible external contributions) +licenses(["notice"]) exports_files([ "LICENSE", @@ -64,18 +81,19 @@ cc_library( name = "upb", srcs = [ "upb/decode.c", - "upb/decode.int.h", + "upb/decode_internal.h", "upb/encode.c", "upb/msg.c", - "upb/msg.h", + "upb/msg_internal.h", "upb/table.c", - "upb/table.int.h", + "upb/table_internal.h", "upb/upb.c", - "upb/upb.int.h", + "upb/upb_internal.h", ], hdrs = [ "upb/decode.h", "upb/encode.h", + "upb/msg.h", "upb/upb.h", "upb/upb.hpp", ], @@ -84,18 +102,18 @@ cc_library( deps = [ ":fastdecode", ":port", - "//third_party/wyhash", ], ) cc_library( name = "fastdecode", srcs = [ - "upb/decode.int.h", + "upb/decode_internal.h", "upb/decode_fast.c", "upb/decode_fast.h", "upb/msg.h", - "upb/upb.int.h", + "upb/msg_internal.h", + "upb/upb_internal.h", ], copts = UPB_DEFAULT_COPTS, deps = [ @@ -115,6 +133,7 @@ cc_library( hdrs = [ "upb/decode_fast.h", "upb/msg.h", + "upb/msg_internal.h", "upb/port_def.inc", "upb/port_undef.inc", ], @@ -149,6 +168,7 @@ cc_library( "upb/def.h", "upb/def.hpp", "upb/reflection.h", + "upb/reflection.hpp", ], copts = UPB_DEFAULT_COPTS, visibility = ["//visibility:public"], @@ -200,7 +220,7 @@ cc_library( cc_library( name = "table", hdrs = [ - "upb/table.int.h", + "upb/table_internal.h", "upb/upb.h", ], visibility = ["//tests:__pkg__"], @@ -209,86 +229,9 @@ cc_library( ], ) -# Legacy C/C++ Libraries (not recommended for new code) ######################## - -cc_library( - name = "handlers", - srcs = [ - "upb/handlers.c", - "upb/handlers-inl.h", - "upb/sink.c", - ], - hdrs = [ - "upb/handlers.h", - "upb/sink.h", - ], - copts = UPB_DEFAULT_COPTS, - visibility = ["//tests:__pkg__"], - deps = [ - ":port", - ":reflection", - ":table", - ":upb", - ], -) - -cc_library( - name = "upb_pb", - srcs = [ - "upb/pb/compile_decoder.c", - "upb/pb/decoder.c", - "upb/pb/decoder.int.h", - "upb/pb/encoder.c", - "upb/pb/textprinter.c", - "upb/pb/varint.c", - "upb/pb/varint.int.h", - ], - hdrs = [ - "upb/pb/decoder.h", - "upb/pb/encoder.h", - "upb/pb/textprinter.h", - ], - copts = UPB_DEFAULT_COPTS, - visibility = ["//tests:__pkg__"], - deps = [ - ":descriptor_upb_proto", - ":handlers", - ":port", - ":reflection", - ":table", - ":upb", - ], -) +# Amalgamation ################################################################# # copybara:strip_for_google3_begin -cc_library( - name = "upb_json", - srcs = [ - "upb/json/parser.c", - "upb/json/printer.c", - ], - hdrs = [ - "upb/json/parser.h", - "upb/json/printer.h", - ], - copts = UPB_DEFAULT_COPTS, - visibility = ["//tests:__pkg__"], - deps = [ - ":upb", - ":upb_pb", - ], -) - -genrule( - name = "generate_json_ragel", - srcs = ["//:upb/json/parser.rl"], - outs = ["upb/json/parser.c"], - cmd = "$(location @ragel//:ragelc) -C -o upb/json/parser.c $< && mv upb/json/parser.c $@", - tools = ["@ragel//:ragelc"], - visibility = ["//cmake:__pkg__"], -) - -# Amalgamation ################################################################# py_binary( name = "amalgamate", @@ -307,10 +250,7 @@ upb_amalgamation( ":fastdecode", ":descriptor_upb_proto", ":reflection", - ":handlers", ":port", - ":upb_pb", - ":upb_json", ], ) @@ -319,7 +259,6 @@ cc_library( srcs = ["upb.c"], hdrs = ["upb.h"], copts = UPB_DEFAULT_COPTS, - deps = ["//third_party/wyhash"], ) upb_amalgamation( @@ -346,7 +285,6 @@ cc_library( srcs = ["php-upb.c"], hdrs = ["php-upb.h"], copts = UPB_DEFAULT_COPTS, - deps = ["//third_party/wyhash"], ) upb_amalgamation( @@ -372,7 +310,6 @@ cc_library( srcs = ["ruby-upb.c"], hdrs = ["ruby-upb.h"], copts = UPB_DEFAULT_COPTS, - deps = ["//third_party/wyhash"], ) exports_files( @@ -395,9 +332,6 @@ exports_files( filegroup( name = "cmake_files", srcs = glob([ - "upb/json/parser.c", - "CMakeLists.txt", - "generated_for_cmake/**/*", "google/**/*", "upbc/**/*", "upb/**/*", diff --git a/third_party/upb/LICENSE b/third_party/upb/LICENSE index da939845db6..7f3bd16837e 100644 --- a/third_party/upb/LICENSE +++ b/third_party/upb/LICENSE @@ -1,5 +1,5 @@ -Copyright (c) 2009-2011, Google Inc. +Copyright (c) 2009-2021, Google LLC All rights reserved. Redistribution and use in source and binary forms, with or without @@ -10,14 +10,14 @@ modification, are permitted provided that the following conditions are met: * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of any other + * Neither the name of Google LLC nor the names of any other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL GOOGLE INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +EVENT SHALL GOOGLE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER diff --git a/third_party/upb/README.md b/third_party/upb/README.md index a08aa0e9092..91147eaf094 100644 --- a/third_party/upb/README.md +++ b/third_party/upb/README.md @@ -111,16 +111,6 @@ Then in your `.c` file you can #include the generated header: /* Insert code that uses generated types. */ ``` -## Old "handlers" interfaces - -This library contains several semi-deprecated interfaces (see BUILD -file for more info about which interfaces are deprecated). These -deprecated interfaces are still used in some significant projects, -such as the Ruby and PHP C bindings for protobuf in the [main protobuf -repo](https://github.com/protocolbuffers/protobuf). The goal is to -migrate the Ruby/PHP bindings to use the newer, simpler interfaces -instead. Please do not use the old interfaces in new code. - ## Lua bindings This repo has some Lua bindings for the core library. These are diff --git a/third_party/upb/WORKSPACE b/third_party/upb/WORKSPACE index 870ebf7467f..eb3c0ccacb0 100644 --- a/third_party/upb/WORKSPACE +++ b/third_party/upb/WORKSPACE @@ -18,18 +18,10 @@ http_archive( ) http_archive( - name = "ragel", - build_file = "//bazel:ragel.BUILD", - sha256 = "5f156edb65d20b856d638dd9ee2dfb43285914d9aa2b6ec779dac0270cd56c3f", - strip_prefix = "ragel-6.10", - urls = ["http://www.colm.net/files/ragel/ragel-6.10.tar.gz"], -) - -http_archive( - name = "com_google_googletest", - sha256 = "ff7a82736e158c077e76188232eac77913a15dac0b22508c390ab3f88e6d6d86", - strip_prefix = "googletest-b6cd405286ed8635ece71c72f118e659f4ade3fb", - urls = ["https://github.com/google/googletest/archive/b6cd405286ed8635ece71c72f118e659f4ade3fb.zip"], # 2019-01-07 + name = "com_google_googletest", + urls = ["https://github.com/google/googletest/archive/b6cd405286ed8635ece71c72f118e659f4ade3fb.zip"], # 2019-01-07 + strip_prefix = "googletest-b6cd405286ed8635ece71c72f118e659f4ade3fb", + sha256 = "ff7a82736e158c077e76188232eac77913a15dac0b22508c390ab3f88e6d6d86", ) http_archive( diff --git a/third_party/upb/bazel/BUILD b/third_party/upb/bazel/BUILD index e69de29bb2d..371dd229293 100644 --- a/third_party/upb/bazel/BUILD +++ b/third_party/upb/bazel/BUILD @@ -0,0 +1,24 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/upb/bazel/build_defs.bzl b/third_party/upb/bazel/build_defs.bzl index ae41577ed99..acd474d3bb1 100644 --- a/third_party/upb/bazel/build_defs.bzl +++ b/third_party/upb/bazel/build_defs.bzl @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """Internal rules for building upb.""" load(":upb_proto_library.bzl", "GeneratedSrcsInfo") diff --git a/third_party/upb/bazel/lua.BUILD b/third_party/upb/bazel/lua.BUILD index 113c71f9ae8..11755a4f734 100644 --- a/third_party/upb/bazel/lua.BUILD +++ b/third_party/upb/bazel/lua.BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package( default_visibility = ["//visibility:public"], ) diff --git a/third_party/upb/bazel/ragel.BUILD b/third_party/upb/bazel/ragel.BUILD deleted file mode 100644 index 5916bea1985..00000000000 --- a/third_party/upb/bazel/ragel.BUILD +++ /dev/null @@ -1,195 +0,0 @@ -package( - default_visibility = ["//visibility:public"], -) - -cc_binary( - name = "ragelc", - srcs = [ - "ragel/rubycodegen.cpp", - "ragel/goipgoto.h", - "ragel/cdtable.h", - "ragel/rubycodegen.h", - "ragel/gotable.h", - "ragel/gocodegen.cpp", - "ragel/rubyfflat.cpp", - "ragel/common.cpp", - "ragel/gofflat.cpp", - "ragel/cdtable.cpp", - "ragel/cdsplit.cpp", - "ragel/rlparse.cpp", - "ragel/csfgoto.cpp", - "ragel/javacodegen.cpp", - "ragel/gocodegen.h", - "ragel/mlgoto.cpp", - "ragel/fsmgraph.cpp", - "ragel/version.h", - "ragel/mlfflat.h", - "ragel/fsmgraph.h", - "ragel/fsmbase.cpp", - "ragel/fsmstate.cpp", - "ragel/gotablish.cpp", - "ragel/rubyflat.cpp", - "ragel/cdfgoto.h", - "ragel/cscodegen.h", - "ragel/mlflat.cpp", - "ragel/rubyflat.h", - "ragel/goftable.h", - "ragel/rbxgoto.cpp", - "ragel/csfflat.cpp", - "ragel/gofgoto.cpp", - "ragel/gofgoto.h", - "ragel/ragel.h", - "ragel/goftable.cpp", - "ragel/cdcodegen.cpp", - "ragel/rlparse.h", - "ragel/cdsplit.h", - "ragel/xmlcodegen.cpp", - "ragel/goipgoto.cpp", - "ragel/dotcodegen.h", - "ragel/gogoto.cpp", - "ragel/csflat.h", - "ragel/csfflat.h", - #"ragel/config.h.in", - "ragel/csipgoto.cpp", - "ragel/mltable.cpp", - "ragel/mlflat.h", - "ragel/csftable.cpp", - "ragel/cdgoto.h", - "ragel/goflat.cpp", - "ragel/rubyfflat.h", - "ragel/mlftable.h", - "ragel/rubyftable.h", - "ragel/fsmap.cpp", - "ragel/redfsm.cpp", - "ragel/goflat.h", - "ragel/parsetree.cpp", - "ragel/fsmmin.cpp", - "ragel/dotcodegen.cpp", - "ragel/redfsm.h", - "ragel/mlcodegen.cpp", - "ragel/cdfgoto.cpp", - "ragel/cssplit.cpp", - "ragel/cstable.cpp", - "ragel/javacodegen.h", - "ragel/parsedata.cpp", - "ragel/buffer.h", - "ragel/gogoto.h", - "ragel/csgoto.h", - "ragel/pcheck.h", - "ragel/rubyftable.cpp", - "ragel/csfgoto.h", - "ragel/common.h", - "ragel/cdftable.h", - "ragel/mlgoto.h", - "ragel/csgoto.cpp", - "ragel/cdflat.h", - "ragel/cdipgoto.h", - "ragel/cstable.h", - "ragel/gendata.h", - "ragel/cdfflat.cpp", - "ragel/gotable.cpp", - "ragel/cdcodegen.h", - "ragel/gendata.cpp", - "ragel/rubytable.h", - "ragel/csflat.cpp", - "ragel/inputdata.h", - "ragel/inputdata.cpp", - "ragel/rubytable.cpp", - "ragel/fsmattach.cpp", - "ragel/csipgoto.h", - "ragel/cscodegen.cpp", - "ragel/cdfflat.h", - "ragel/rbxgoto.h", - "ragel/xmlcodegen.h", - "ragel/gofflat.h", - "ragel/parsedata.h", - "ragel/mlfgoto.h", - "ragel/cdflat.cpp", - "ragel/config.h", - "ragel/rlscan.cpp", - "ragel/mlcodegen.h", - "ragel/mlfflat.cpp", - "ragel/mlftable.cpp", - "ragel/mltable.h", - "ragel/cdipgoto.cpp", - "ragel/cdftable.cpp", - "ragel/parsetree.h", - "ragel/rlscan.h", - "ragel/main.cpp", - "ragel/cssplit.h", - "ragel/mlfgoto.cpp", - "ragel/csftable.h", - "ragel/gotablish.h", - "ragel/cdgoto.cpp", - "aapl/avlmelkey.h", - "aapl/dlistmel.h", - "aapl/avliset.h", - "aapl/avlkeyless.h", - "aapl/sbstset.h", - "aapl/sbsttable.h", - "aapl/quicksort.h", - "aapl/avlitree.h", - "aapl/avlcommon.h", - "aapl/bstset.h", - "aapl/avlmel.h", - "aapl/insertsort.h", - "aapl/dlist.h", - "aapl/avlmap.h", - "aapl/mergesort.h", - "aapl/resize.h", - "aapl/bstcommon.h", - "aapl/bstmap.h", - "aapl/compare.h", - "aapl/svector.h", - "aapl/avlset.h", - "aapl/bsttable.h", - "aapl/avlikeyless.h", - "aapl/bubblesort.h", - "aapl/table.h", - "aapl/avlbasic.h", - "aapl/vector.h", - "aapl/avlimap.h", - "aapl/dlistval.h", - "aapl/dlcommon.h", - "aapl/avlibasic.h", - "aapl/sbstmap.h", - "aapl/avlimel.h", - "aapl/avlimelkey.h", - "aapl/avltree.h", - ], - includes = [ - "aapl", - "ragel", - ], -) - -config_h_contents = """ -#define PACKAGE "ragel" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "ragel" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "ragel 6.10" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "ragel" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "6.10" - -/* Version number of package */ -#define VERSION "6.10" -""" - -genrule( - name = "gen_config_h", - outs = ["ragel/config.h"], - cmd = "(cat <<'HEREDOC'\n%s\nHEREDOC\n) > $@" % config_h_contents, -) diff --git a/third_party/upb/bazel/upb_proto_library.bzl b/third_party/upb/bazel/upb_proto_library.bzl index 155d18d98c4..cc02a9aa43a 100644 --- a/third_party/upb/bazel/upb_proto_library.bzl +++ b/third_party/upb/bazel/upb_proto_library.bzl @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """Public rules for using upb protos: - upb_proto_library() - upb_proto_reflection_library() @@ -323,6 +348,7 @@ _upb_proto_reflection_library_aspect = aspect( ), "_upbdefs": attr.label_list( default = [ + "//:generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", "//:upb", "//:reflection", ], diff --git a/third_party/upb/bazel/workspace_deps.bzl b/third_party/upb/bazel/workspace_deps.bzl index c724d7c2c20..d9b799c50a7 100644 --- a/third_party/upb/bazel/workspace_deps.bzl +++ b/third_party/upb/bazel/workspace_deps.bzl @@ -6,16 +6,20 @@ def upb_deps(): maybe( git_repository, name = "com_google_absl", - commit = "df3ea785d8c30a9503321a3d35ee7d35808f190d", # LTS 2020-02-25 + commit = "998805a4c79d5d7a771f7e5a8ee3cbbbcba04f94", remote = "https://github.com/abseil/abseil-cpp.git", shallow_since = "1583355457 -0500", ) maybe( - git_repository, + http_archive, name = "com_google_protobuf", - remote = "https://github.com/protocolbuffers/protobuf.git", - commit = "c8f76331abf682c289fa79f05b2ee39cc7bf5a48", # Need to use Git until proto3 optional is released + sha256 = "b10bf4e2d1a7586f54e64a5d9e7837e5188fc75ae69e36f215eb01def4f9721b", + strip_prefix = "protobuf-3.15.3", + urls = [ + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.15.3.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/v3.15.3.tar.gz", + ], ) maybe( @@ -32,8 +36,8 @@ def upb_deps(): maybe( http_archive, name = "bazel_skylib", - strip_prefix = "bazel-skylib-master", - urls = ["https://github.com/bazelbuild/bazel-skylib/archive/master.tar.gz"], + strip_prefix = "bazel-skylib-main", + urls = ["https://github.com/bazelbuild/bazel-skylib/archive/main.tar.gz"], ) maybe( diff --git a/third_party/upb/benchmarks/BUILD b/third_party/upb/benchmarks/BUILD index 2ab830f7fcb..19966f8676a 100644 --- a/third_party/upb/benchmarks/BUILD +++ b/third_party/upb/benchmarks/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "//bazel:upb_proto_library.bzl", "upb_proto_library", diff --git a/third_party/upb/benchmarks/BUILD.googleapis b/third_party/upb/benchmarks/BUILD.googleapis index 904bdeca6f6..a8f31b2a608 100644 --- a/third_party/upb/benchmarks/BUILD.googleapis +++ b/third_party/upb/benchmarks/BUILD.googleapis @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "@rules_proto//proto:defs.bzl", "proto_library", @@ -6,7 +31,7 @@ load( proto_library( name = "ads_proto", srcs = glob([ - "google/ads/googleads/v5/**/*.proto", + "google/ads/googleads/v7/**/*.proto", "google/api/**/*.proto", "google/rpc/**/*.proto", "google/longrunning/**/*.proto", diff --git a/third_party/upb/benchmarks/benchmark.cc b/third_party/upb/benchmarks/benchmark.cc index 7f4765a88c2..60e3b530d63 100644 --- a/third_party/upb/benchmarks/benchmark.cc +++ b/third_party/upb/benchmarks/benchmark.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include @@ -7,7 +31,7 @@ #include "benchmarks/descriptor.upb.h" #include "benchmarks/descriptor.upbdefs.h" #include "benchmarks/descriptor_sv.pb.h" -#include "google/ads/googleads/v5/services/google_ads_service.upbdefs.h" +#include "google/ads/googleads/v7/services/google_ads_service.upbdefs.h" #include "google/protobuf/descriptor.pb.h" #include "upb/def.hpp" @@ -60,7 +84,7 @@ static void BM_LoadAdsDescriptor_Upb(benchmark::State& state) { size_t bytes_per_iter = 0; for (auto _ : state) { upb::SymbolTable symtab; - google_ads_googleads_v5_services_SearchGoogleAdsRequest_getmsgdef( + google_ads_googleads_v7_services_SearchGoogleAdsRequest_getmsgdef( symtab.ptr()); bytes_per_iter = _upb_symtab_bytesloaded(symtab.ptr()); } @@ -87,11 +111,11 @@ static void BM_LoadDescriptor_Proto2(benchmark::State& state) { BENCHMARK(BM_LoadDescriptor_Proto2); static void BM_LoadAdsDescriptor_Proto2(benchmark::State& state) { - extern upb_def_init google_ads_googleads_v5_services_google_ads_service_proto_upbdefinit; + extern upb_def_init google_ads_googleads_v7_services_google_ads_service_proto_upbdefinit; std::vector serialized_files; absl::flat_hash_set seen_files; CollectFileDescriptors( - &google_ads_googleads_v5_services_google_ads_service_proto_upbdefinit, + &google_ads_googleads_v7_services_google_ads_service_proto_upbdefinit, serialized_files, seen_files); size_t bytes_per_iter = 0; for (auto _ : state) { @@ -138,8 +162,8 @@ static void BM_Parse_Upb_FileDesc(benchmark::State& state) { } upb_benchmark_FileDescriptorProto* set = upb_benchmark_FileDescriptorProto_parse_ex( - descriptor.data, descriptor.size, arena, - Copy == Alias ? UPB_DECODE_ALIAS : 0); + descriptor.data, descriptor.size, NULL, + Copy == Alias ? UPB_DECODE_ALIAS : 0, arena); if (!set) { printf("Failed to parse.\n"); exit(1); diff --git a/third_party/upb/benchmarks/build_defs.bzl b/third_party/upb/benchmarks/build_defs.bzl index ff534fb926c..f95a09ed1b2 100644 --- a/third_party/upb/benchmarks/build_defs.bzl +++ b/third_party/upb/benchmarks/build_defs.bzl @@ -1,3 +1,27 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # copybara:insert_for_google3_begin # load("//tools/build_defs/proto/cpp:cc_proto_library.bzl", _cc_proto_library="cc_proto_library") diff --git a/third_party/upb/benchmarks/compare.py b/third_party/upb/benchmarks/compare.py index 8d62d942725..38272215f98 100755 --- a/third_party/upb/benchmarks/compare.py +++ b/third_party/upb/benchmarks/compare.py @@ -1,4 +1,30 @@ -#!/usr/bin/env python3 +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """Benchmarks the current working directory against a given baseline. This script benchmarks both size and speed. Sample output: @@ -58,7 +84,7 @@ def Benchmark(outbase, bench_cpu=True, runs=12, fasttable=False): baseline = "master" -bench_cpu = False +bench_cpu = True fasttable = False if len(sys.argv) > 1: diff --git a/third_party/upb/benchmarks/gen_protobuf_binary_cc.py b/third_party/upb/benchmarks/gen_protobuf_binary_cc.py index 787e391547a..66c2df603d0 100644 --- a/third_party/upb/benchmarks/gen_protobuf_binary_cc.py +++ b/third_party/upb/benchmarks/gen_protobuf_binary_cc.py @@ -1,3 +1,29 @@ +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import sys import re diff --git a/third_party/upb/benchmarks/gen_synthetic_protos.py b/third_party/upb/benchmarks/gen_synthetic_protos.py index a95deff0802..54003d2b2d5 100644 --- a/third_party/upb/benchmarks/gen_synthetic_protos.py +++ b/third_party/upb/benchmarks/gen_synthetic_protos.py @@ -1,3 +1,29 @@ +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import sys import random diff --git a/third_party/upb/benchmarks/gen_upb_binary_c.py b/third_party/upb/benchmarks/gen_upb_binary_c.py index 4df8fd73277..d5c0d1db858 100644 --- a/third_party/upb/benchmarks/gen_upb_binary_c.py +++ b/third_party/upb/benchmarks/gen_upb_binary_c.py @@ -1,3 +1,29 @@ +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import sys import re diff --git a/third_party/upb/cmake/BUILD b/third_party/upb/cmake/BUILD index 53fbd07abe9..cc825c441bf 100644 --- a/third_party/upb/cmake/BUILD +++ b/third_party/upb/cmake/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( ":build_defs.bzl", "generated_file_staleness_test", @@ -28,7 +53,6 @@ genrule( "//:BUILD", "//:WORKSPACE", "//:cmake_files", - "//third_party/wyhash:cmake_files", ":cmake_files", ], outs = ["generated-in/CMakeLists.txt"], @@ -36,13 +60,6 @@ genrule( tools = [":make_cmakelists"], ) -genrule( - name = "copy_json_ragel", - srcs = ["//:upb/json/parser.c"], - outs = ["generated-in/upb/json/parser.c"], - cmd = "cp $< $@", -) - genrule( name = "copy_protos", srcs = ["//:descriptor_upb_proto"], @@ -59,7 +76,6 @@ generated_file_staleness_test( "CMakeLists.txt", "google/protobuf/descriptor.upb.c", "google/protobuf/descriptor.upb.h", - "upb/json/parser.c", ], generated_pattern = "generated-in/%s", ) @@ -85,7 +101,6 @@ sh_test( data = [ ":cmake_files", "//:cmake_files", - "//third_party/wyhash:cmake_files", ], deps = ["@bazel_tools//tools/bash/runfiles"], ) diff --git a/third_party/upb/cmake/CMakeLists.txt b/third_party/upb/cmake/CMakeLists.txt index d4cbcc91fc6..879fdb6e4b6 100644 --- a/third_party/upb/cmake/CMakeLists.txt +++ b/third_party/upb/cmake/CMakeLists.txt @@ -64,28 +64,29 @@ enable_testing() add_library(port INTERFACE) add_library(upb ../upb/decode.c - ../upb/decode.int.h + ../upb/decode_internal.h ../upb/encode.c ../upb/msg.c - ../upb/msg.h + ../upb/msg_internal.h ../upb/table.c - ../upb/table.int.h + ../upb/table_internal.h ../upb/upb.c - ../upb/upb.int.h + ../upb/upb_internal.h ../upb/decode.h ../upb/encode.h + ../upb/msg.h ../upb/upb.h ../upb/upb.hpp) target_link_libraries(upb fastdecode - port - /third_party/wyhash) + port) add_library(fastdecode - ../upb/decode.int.h + ../upb/decode_internal.h ../upb/decode_fast.c ../upb/decode_fast.h ../upb/msg.h - ../upb/upb.int.h) + ../upb/msg_internal.h + ../upb/upb_internal.h) target_link_libraries(fastdecode port table) @@ -99,7 +100,8 @@ add_library(reflection ../upb/reflection.c ../upb/def.h ../upb/def.hpp - ../upb/reflection.h) + ../upb/reflection.h + ../upb/reflection.hpp) target_link_libraries(reflection descriptor_upb_proto port @@ -123,43 +125,5 @@ target_link_libraries(json add_library(table INTERFACE) target_link_libraries(table INTERFACE port) -add_library(handlers - ../upb/handlers.c - ../upb/handlers-inl.h - ../upb/sink.c - ../upb/handlers.h - ../upb/sink.h) -target_link_libraries(handlers - port - reflection - table - upb) -add_library(upb_pb - ../upb/pb/compile_decoder.c - ../upb/pb/decoder.c - ../upb/pb/decoder.int.h - ../upb/pb/encoder.c - ../upb/pb/textprinter.c - ../upb/pb/varint.c - ../upb/pb/varint.int.h - ../upb/pb/decoder.h - ../upb/pb/encoder.h - ../upb/pb/textprinter.h) -target_link_libraries(upb_pb - descriptor_upb_proto - handlers - port - reflection - table - upb) -add_library(upb_json - ../cmake/upb/json/parser.c - ../upb/json/printer.c - ../upb/json/parser.h - ../upb/json/printer.h) -target_link_libraries(upb_json - upb - upb_pb) -add_library(wyhash INTERFACE) diff --git a/third_party/upb/cmake/build_defs.bzl b/third_party/upb/cmake/build_defs.bzl index 34b4537558a..4a6264b74c2 100644 --- a/third_party/upb/cmake/build_defs.bzl +++ b/third_party/upb/cmake/build_defs.bzl @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + def generated_file_staleness_test(name, outs, generated_pattern): """Tests that checked-in file(s) match the contents of generated file(s). diff --git a/third_party/upb/cmake/google/protobuf/descriptor.upb.c b/third_party/upb/cmake/google/protobuf/descriptor.upb.c index 339fafac090..a6b9af91322 100644 --- a/third_party/upb/cmake/google/protobuf/descriptor.upb.c +++ b/third_party/upb/cmake/google/protobuf/descriptor.upb.c @@ -7,7 +7,7 @@ * regenerated. */ #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "google/protobuf/descriptor.upb.h" #include "upb/port_def.inc" @@ -17,13 +17,13 @@ static const upb_msglayout *const google_protobuf_FileDescriptorSet_submsgs[1] = }; static const upb_msglayout_field google_protobuf_FileDescriptorSet__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_FileDescriptorSet_msginit = { &google_protobuf_FileDescriptorSet_submsgs[0], &google_protobuf_FileDescriptorSet__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout *const google_protobuf_FileDescriptorProto_submsgs[6] = { @@ -36,24 +36,24 @@ static const upb_msglayout *const google_protobuf_FileDescriptorProto_submsgs[6] }; static const upb_msglayout_field google_protobuf_FileDescriptorProto__fields[12] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(12, 24), 2, 0, 12, 1}, - {3, UPB_SIZE(36, 72), 0, 0, 12, 3}, - {4, UPB_SIZE(40, 80), 0, 0, 11, 3}, - {5, UPB_SIZE(44, 88), 0, 1, 11, 3}, - {6, UPB_SIZE(48, 96), 0, 4, 11, 3}, - {7, UPB_SIZE(52, 104), 0, 2, 11, 3}, - {8, UPB_SIZE(28, 56), 3, 3, 11, 1}, - {9, UPB_SIZE(32, 64), 4, 5, 11, 1}, - {10, UPB_SIZE(56, 112), 0, 0, 5, 3}, - {11, UPB_SIZE(60, 120), 0, 0, 5, 3}, - {12, UPB_SIZE(20, 40), 5, 0, 12, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 2, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(36, 72), 0, 0, 12, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(40, 80), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(44, 88), 0, 1, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(48, 96), 0, 4, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(52, 104), 0, 2, 11, _UPB_MODE_ARRAY}, + {8, UPB_SIZE(28, 56), 3, 3, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(32, 64), 4, 5, 11, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(56, 112), 0, 0, 5, _UPB_MODE_ARRAY}, + {11, UPB_SIZE(60, 120), 0, 0, 5, _UPB_MODE_ARRAY}, + {12, UPB_SIZE(20, 40), 5, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_FileDescriptorProto_msginit = { &google_protobuf_FileDescriptorProto_submsgs[0], &google_protobuf_FileDescriptorProto__fields[0], - UPB_SIZE(64, 128), 12, false, 255, + UPB_SIZE(64, 128), 12, false, 12, 255, }; static const upb_msglayout *const google_protobuf_DescriptorProto_submsgs[7] = { @@ -67,22 +67,22 @@ static const upb_msglayout *const google_protobuf_DescriptorProto_submsgs[7] = { }; static const upb_msglayout_field google_protobuf_DescriptorProto__fields[10] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(16, 32), 0, 4, 11, 3}, - {3, UPB_SIZE(20, 40), 0, 0, 11, 3}, - {4, UPB_SIZE(24, 48), 0, 3, 11, 3}, - {5, UPB_SIZE(28, 56), 0, 1, 11, 3}, - {6, UPB_SIZE(32, 64), 0, 4, 11, 3}, - {7, UPB_SIZE(12, 24), 2, 5, 11, 1}, - {8, UPB_SIZE(36, 72), 0, 6, 11, 3}, - {9, UPB_SIZE(40, 80), 0, 2, 11, 3}, - {10, UPB_SIZE(44, 88), 0, 0, 12, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 4, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_ARRAY}, + {4, UPB_SIZE(24, 48), 0, 3, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(28, 56), 0, 1, 11, _UPB_MODE_ARRAY}, + {6, UPB_SIZE(32, 64), 0, 4, 11, _UPB_MODE_ARRAY}, + {7, UPB_SIZE(12, 24), 2, 5, 11, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(36, 72), 0, 6, 11, _UPB_MODE_ARRAY}, + {9, UPB_SIZE(40, 80), 0, 2, 11, _UPB_MODE_ARRAY}, + {10, UPB_SIZE(44, 88), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_DescriptorProto_msginit = { &google_protobuf_DescriptorProto_submsgs[0], &google_protobuf_DescriptorProto__fields[0], - UPB_SIZE(48, 96), 10, false, 255, + UPB_SIZE(48, 96), 10, false, 10, 255, }; static const upb_msglayout *const google_protobuf_DescriptorProto_ExtensionRange_submsgs[1] = { @@ -90,26 +90,26 @@ static const upb_msglayout *const google_protobuf_DescriptorProto_ExtensionRange }; static const upb_msglayout_field google_protobuf_DescriptorProto_ExtensionRange__fields[3] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, - {3, UPB_SIZE(12, 16), 3, 0, 11, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 16), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_DescriptorProto_ExtensionRange_msginit = { &google_protobuf_DescriptorProto_ExtensionRange_submsgs[0], &google_protobuf_DescriptorProto_ExtensionRange__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 3, 255, }; static const upb_msglayout_field google_protobuf_DescriptorProto_ReservedRange__fields[2] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_DescriptorProto_ReservedRange_msginit = { NULL, &google_protobuf_DescriptorProto_ReservedRange__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_ExtensionRangeOptions_submsgs[1] = { @@ -117,13 +117,13 @@ static const upb_msglayout *const google_protobuf_ExtensionRangeOptions_submsgs[ }; static const upb_msglayout_field google_protobuf_ExtensionRangeOptions__fields[1] = { - {999, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {999, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_ExtensionRangeOptions_msginit = { &google_protobuf_ExtensionRangeOptions_submsgs[0], &google_protobuf_ExtensionRangeOptions__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 0, 255, }; static const upb_msglayout *const google_protobuf_FieldDescriptorProto_submsgs[1] = { @@ -131,23 +131,23 @@ static const upb_msglayout *const google_protobuf_FieldDescriptorProto_submsgs[1 }; static const upb_msglayout_field google_protobuf_FieldDescriptorProto__fields[11] = { - {1, UPB_SIZE(24, 24), 1, 0, 12, 1}, - {2, UPB_SIZE(32, 40), 2, 0, 12, 1}, - {3, UPB_SIZE(12, 12), 3, 0, 5, 1}, - {4, UPB_SIZE(4, 4), 4, 0, 14, 1}, - {5, UPB_SIZE(8, 8), 5, 0, 14, 1}, - {6, UPB_SIZE(40, 56), 6, 0, 12, 1}, - {7, UPB_SIZE(48, 72), 7, 0, 12, 1}, - {8, UPB_SIZE(64, 104), 8, 0, 11, 1}, - {9, UPB_SIZE(16, 16), 9, 0, 5, 1}, - {10, UPB_SIZE(56, 88), 10, 0, 12, 1}, - {17, UPB_SIZE(20, 20), 11, 0, 8, 1}, + {1, UPB_SIZE(24, 24), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(32, 40), 2, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(12, 12), 3, 0, 5, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(4, 4), 4, 0, 14, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(8, 8), 5, 0, 14, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(40, 56), 6, 0, 12, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(48, 72), 7, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(64, 104), 8, 0, 11, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(16, 16), 9, 0, 5, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(56, 88), 10, 0, 12, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(20, 20), 11, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_FieldDescriptorProto_msginit = { &google_protobuf_FieldDescriptorProto_submsgs[0], &google_protobuf_FieldDescriptorProto__fields[0], - UPB_SIZE(72, 112), 11, false, 255, + UPB_SIZE(72, 112), 11, false, 10, 255, }; static const upb_msglayout *const google_protobuf_OneofDescriptorProto_submsgs[1] = { @@ -155,14 +155,14 @@ static const upb_msglayout *const google_protobuf_OneofDescriptorProto_submsgs[1 }; static const upb_msglayout_field google_protobuf_OneofDescriptorProto__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(12, 24), 2, 0, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 2, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_OneofDescriptorProto_msginit = { &google_protobuf_OneofDescriptorProto_submsgs[0], &google_protobuf_OneofDescriptorProto__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_EnumDescriptorProto_submsgs[3] = { @@ -172,28 +172,28 @@ static const upb_msglayout *const google_protobuf_EnumDescriptorProto_submsgs[3] }; static const upb_msglayout_field google_protobuf_EnumDescriptorProto__fields[5] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(16, 32), 0, 2, 11, 3}, - {3, UPB_SIZE(12, 24), 2, 1, 11, 1}, - {4, UPB_SIZE(20, 40), 0, 0, 11, 3}, - {5, UPB_SIZE(24, 48), 0, 0, 12, 3}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 2, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 2, 1, 11, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(20, 40), 0, 0, 11, _UPB_MODE_ARRAY}, + {5, UPB_SIZE(24, 48), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_EnumDescriptorProto_msginit = { &google_protobuf_EnumDescriptorProto_submsgs[0], &google_protobuf_EnumDescriptorProto__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 5, 255, }; static const upb_msglayout_field google_protobuf_EnumDescriptorProto_EnumReservedRange__fields[2] = { - {1, UPB_SIZE(4, 4), 1, 0, 5, 1}, - {2, UPB_SIZE(8, 8), 2, 0, 5, 1}, + {1, UPB_SIZE(4, 4), 1, 0, 5, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(8, 8), 2, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit = { NULL, &google_protobuf_EnumDescriptorProto_EnumReservedRange__fields[0], - UPB_SIZE(16, 16), 2, false, 255, + UPB_SIZE(16, 16), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_EnumValueDescriptorProto_submsgs[1] = { @@ -201,15 +201,15 @@ static const upb_msglayout *const google_protobuf_EnumValueDescriptorProto_subms }; static const upb_msglayout_field google_protobuf_EnumValueDescriptorProto__fields[3] = { - {1, UPB_SIZE(8, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(4, 4), 2, 0, 5, 1}, - {3, UPB_SIZE(16, 24), 3, 0, 11, 1}, + {1, UPB_SIZE(8, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(4, 4), 2, 0, 5, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(16, 24), 3, 0, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_EnumValueDescriptorProto_msginit = { &google_protobuf_EnumValueDescriptorProto_submsgs[0], &google_protobuf_EnumValueDescriptorProto__fields[0], - UPB_SIZE(24, 32), 3, false, 255, + UPB_SIZE(24, 32), 3, false, 3, 255, }; static const upb_msglayout *const google_protobuf_ServiceDescriptorProto_submsgs[2] = { @@ -218,15 +218,15 @@ static const upb_msglayout *const google_protobuf_ServiceDescriptorProto_submsgs }; static const upb_msglayout_field google_protobuf_ServiceDescriptorProto__fields[3] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(16, 32), 0, 0, 11, 3}, - {3, UPB_SIZE(12, 24), 2, 1, 11, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(16, 32), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(12, 24), 2, 1, 11, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_ServiceDescriptorProto_msginit = { &google_protobuf_ServiceDescriptorProto_submsgs[0], &google_protobuf_ServiceDescriptorProto__fields[0], - UPB_SIZE(24, 48), 3, false, 255, + UPB_SIZE(24, 48), 3, false, 3, 255, }; static const upb_msglayout *const google_protobuf_MethodDescriptorProto_submsgs[1] = { @@ -234,18 +234,18 @@ static const upb_msglayout *const google_protobuf_MethodDescriptorProto_submsgs[ }; static const upb_msglayout_field google_protobuf_MethodDescriptorProto__fields[6] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {2, UPB_SIZE(12, 24), 2, 0, 12, 1}, - {3, UPB_SIZE(20, 40), 3, 0, 12, 1}, - {4, UPB_SIZE(28, 56), 4, 0, 11, 1}, - {5, UPB_SIZE(1, 1), 5, 0, 8, 1}, - {6, UPB_SIZE(2, 2), 6, 0, 8, 1}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 24), 2, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(20, 40), 3, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(28, 56), 4, 0, 11, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(1, 1), 5, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(2, 2), 6, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_MethodDescriptorProto_msginit = { &google_protobuf_MethodDescriptorProto_submsgs[0], &google_protobuf_MethodDescriptorProto__fields[0], - UPB_SIZE(32, 64), 6, false, 255, + UPB_SIZE(32, 64), 6, false, 6, 255, }; static const upb_msglayout *const google_protobuf_FileOptions_submsgs[1] = { @@ -253,33 +253,33 @@ static const upb_msglayout *const google_protobuf_FileOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_FileOptions__fields[21] = { - {1, UPB_SIZE(20, 24), 1, 0, 12, 1}, - {8, UPB_SIZE(28, 40), 2, 0, 12, 1}, - {9, UPB_SIZE(4, 4), 3, 0, 14, 1}, - {10, UPB_SIZE(8, 8), 4, 0, 8, 1}, - {11, UPB_SIZE(36, 56), 5, 0, 12, 1}, - {16, UPB_SIZE(9, 9), 6, 0, 8, 1}, - {17, UPB_SIZE(10, 10), 7, 0, 8, 1}, - {18, UPB_SIZE(11, 11), 8, 0, 8, 1}, - {20, UPB_SIZE(12, 12), 9, 0, 8, 1}, - {23, UPB_SIZE(13, 13), 10, 0, 8, 1}, - {27, UPB_SIZE(14, 14), 11, 0, 8, 1}, - {31, UPB_SIZE(15, 15), 12, 0, 8, 1}, - {36, UPB_SIZE(44, 72), 13, 0, 12, 1}, - {37, UPB_SIZE(52, 88), 14, 0, 12, 1}, - {39, UPB_SIZE(60, 104), 15, 0, 12, 1}, - {40, UPB_SIZE(68, 120), 16, 0, 12, 1}, - {41, UPB_SIZE(76, 136), 17, 0, 12, 1}, - {42, UPB_SIZE(16, 16), 18, 0, 8, 1}, - {44, UPB_SIZE(84, 152), 19, 0, 12, 1}, - {45, UPB_SIZE(92, 168), 20, 0, 12, 1}, - {999, UPB_SIZE(100, 184), 0, 0, 11, 3}, + {1, UPB_SIZE(20, 24), 1, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(28, 40), 2, 0, 12, _UPB_MODE_SCALAR}, + {9, UPB_SIZE(4, 4), 3, 0, 14, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(8, 8), 4, 0, 8, _UPB_MODE_SCALAR}, + {11, UPB_SIZE(36, 56), 5, 0, 12, _UPB_MODE_SCALAR}, + {16, UPB_SIZE(9, 9), 6, 0, 8, _UPB_MODE_SCALAR}, + {17, UPB_SIZE(10, 10), 7, 0, 8, _UPB_MODE_SCALAR}, + {18, UPB_SIZE(11, 11), 8, 0, 8, _UPB_MODE_SCALAR}, + {20, UPB_SIZE(12, 12), 9, 0, 8, _UPB_MODE_SCALAR}, + {23, UPB_SIZE(13, 13), 10, 0, 8, _UPB_MODE_SCALAR}, + {27, UPB_SIZE(14, 14), 11, 0, 8, _UPB_MODE_SCALAR}, + {31, UPB_SIZE(15, 15), 12, 0, 8, _UPB_MODE_SCALAR}, + {36, UPB_SIZE(44, 72), 13, 0, 12, _UPB_MODE_SCALAR}, + {37, UPB_SIZE(52, 88), 14, 0, 12, _UPB_MODE_SCALAR}, + {39, UPB_SIZE(60, 104), 15, 0, 12, _UPB_MODE_SCALAR}, + {40, UPB_SIZE(68, 120), 16, 0, 12, _UPB_MODE_SCALAR}, + {41, UPB_SIZE(76, 136), 17, 0, 12, _UPB_MODE_SCALAR}, + {42, UPB_SIZE(16, 16), 18, 0, 8, _UPB_MODE_SCALAR}, + {44, UPB_SIZE(84, 152), 19, 0, 12, _UPB_MODE_SCALAR}, + {45, UPB_SIZE(92, 168), 20, 0, 12, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(100, 184), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_FileOptions_msginit = { &google_protobuf_FileOptions_submsgs[0], &google_protobuf_FileOptions__fields[0], - UPB_SIZE(104, 192), 21, false, 255, + UPB_SIZE(104, 192), 21, false, 1, 255, }; static const upb_msglayout *const google_protobuf_MessageOptions_submsgs[1] = { @@ -287,17 +287,17 @@ static const upb_msglayout *const google_protobuf_MessageOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_MessageOptions__fields[5] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {2, UPB_SIZE(2, 2), 2, 0, 8, 1}, - {3, UPB_SIZE(3, 3), 3, 0, 8, 1}, - {7, UPB_SIZE(4, 4), 4, 0, 8, 1}, - {999, UPB_SIZE(8, 8), 0, 0, 11, 3}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(2, 2), 2, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(3, 3), 3, 0, 8, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(4, 4), 4, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(8, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_MessageOptions_msginit = { &google_protobuf_MessageOptions_submsgs[0], &google_protobuf_MessageOptions__fields[0], - UPB_SIZE(16, 16), 5, false, 255, + UPB_SIZE(16, 16), 5, false, 3, 255, }; static const upb_msglayout *const google_protobuf_FieldOptions_submsgs[1] = { @@ -305,19 +305,19 @@ static const upb_msglayout *const google_protobuf_FieldOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_FieldOptions__fields[7] = { - {1, UPB_SIZE(4, 4), 1, 0, 14, 1}, - {2, UPB_SIZE(12, 12), 2, 0, 8, 1}, - {3, UPB_SIZE(13, 13), 3, 0, 8, 1}, - {5, UPB_SIZE(14, 14), 4, 0, 8, 1}, - {6, UPB_SIZE(8, 8), 5, 0, 14, 1}, - {10, UPB_SIZE(15, 15), 6, 0, 8, 1}, - {999, UPB_SIZE(16, 16), 0, 0, 11, 3}, + {1, UPB_SIZE(4, 4), 1, 0, 14, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(12, 12), 2, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(13, 13), 3, 0, 8, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(14, 14), 4, 0, 8, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(8, 8), 5, 0, 14, _UPB_MODE_SCALAR}, + {10, UPB_SIZE(15, 15), 6, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(16, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_FieldOptions_msginit = { &google_protobuf_FieldOptions_submsgs[0], &google_protobuf_FieldOptions__fields[0], - UPB_SIZE(24, 24), 7, false, 255, + UPB_SIZE(24, 24), 7, false, 3, 255, }; static const upb_msglayout *const google_protobuf_OneofOptions_submsgs[1] = { @@ -325,13 +325,13 @@ static const upb_msglayout *const google_protobuf_OneofOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_OneofOptions__fields[1] = { - {999, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {999, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_OneofOptions_msginit = { &google_protobuf_OneofOptions_submsgs[0], &google_protobuf_OneofOptions__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 0, 255, }; static const upb_msglayout *const google_protobuf_EnumOptions_submsgs[1] = { @@ -339,15 +339,15 @@ static const upb_msglayout *const google_protobuf_EnumOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_EnumOptions__fields[3] = { - {2, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {3, UPB_SIZE(2, 2), 2, 0, 8, 1}, - {999, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {2, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(2, 2), 2, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_EnumOptions_msginit = { &google_protobuf_EnumOptions_submsgs[0], &google_protobuf_EnumOptions__fields[0], - UPB_SIZE(8, 16), 3, false, 255, + UPB_SIZE(8, 16), 3, false, 0, 255, }; static const upb_msglayout *const google_protobuf_EnumValueOptions_submsgs[1] = { @@ -355,14 +355,14 @@ static const upb_msglayout *const google_protobuf_EnumValueOptions_submsgs[1] = }; static const upb_msglayout_field google_protobuf_EnumValueOptions__fields[2] = { - {1, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {999, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {1, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_EnumValueOptions_msginit = { &google_protobuf_EnumValueOptions_submsgs[0], &google_protobuf_EnumValueOptions__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 1, 255, }; static const upb_msglayout *const google_protobuf_ServiceOptions_submsgs[1] = { @@ -370,14 +370,14 @@ static const upb_msglayout *const google_protobuf_ServiceOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_ServiceOptions__fields[2] = { - {33, UPB_SIZE(1, 1), 1, 0, 8, 1}, - {999, UPB_SIZE(4, 8), 0, 0, 11, 3}, + {33, UPB_SIZE(1, 1), 1, 0, 8, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(4, 8), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_ServiceOptions_msginit = { &google_protobuf_ServiceOptions_submsgs[0], &google_protobuf_ServiceOptions__fields[0], - UPB_SIZE(8, 16), 2, false, 255, + UPB_SIZE(8, 16), 2, false, 0, 255, }; static const upb_msglayout *const google_protobuf_MethodOptions_submsgs[1] = { @@ -385,15 +385,15 @@ static const upb_msglayout *const google_protobuf_MethodOptions_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_MethodOptions__fields[3] = { - {33, UPB_SIZE(8, 8), 1, 0, 8, 1}, - {34, UPB_SIZE(4, 4), 2, 0, 14, 1}, - {999, UPB_SIZE(12, 16), 0, 0, 11, 3}, + {33, UPB_SIZE(8, 8), 1, 0, 8, _UPB_MODE_SCALAR}, + {34, UPB_SIZE(4, 4), 2, 0, 14, _UPB_MODE_SCALAR}, + {999, UPB_SIZE(12, 16), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_MethodOptions_msginit = { &google_protobuf_MethodOptions_submsgs[0], &google_protobuf_MethodOptions__fields[0], - UPB_SIZE(16, 24), 3, false, 255, + UPB_SIZE(16, 24), 3, false, 0, 255, }; static const upb_msglayout *const google_protobuf_UninterpretedOption_submsgs[1] = { @@ -401,30 +401,30 @@ static const upb_msglayout *const google_protobuf_UninterpretedOption_submsgs[1] }; static const upb_msglayout_field google_protobuf_UninterpretedOption__fields[7] = { - {2, UPB_SIZE(56, 80), 0, 0, 11, 3}, - {3, UPB_SIZE(32, 32), 1, 0, 12, 1}, - {4, UPB_SIZE(8, 8), 2, 0, 4, 1}, - {5, UPB_SIZE(16, 16), 3, 0, 3, 1}, - {6, UPB_SIZE(24, 24), 4, 0, 1, 1}, - {7, UPB_SIZE(40, 48), 5, 0, 12, 1}, - {8, UPB_SIZE(48, 64), 6, 0, 12, 1}, + {2, UPB_SIZE(56, 80), 0, 0, 11, _UPB_MODE_ARRAY}, + {3, UPB_SIZE(32, 32), 1, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), 2, 0, 4, _UPB_MODE_SCALAR}, + {5, UPB_SIZE(16, 16), 3, 0, 3, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(24, 24), 4, 0, 1, _UPB_MODE_SCALAR}, + {7, UPB_SIZE(40, 48), 5, 0, 12, _UPB_MODE_SCALAR}, + {8, UPB_SIZE(48, 64), 6, 0, 12, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_UninterpretedOption_msginit = { &google_protobuf_UninterpretedOption_submsgs[0], &google_protobuf_UninterpretedOption__fields[0], - UPB_SIZE(64, 96), 7, false, 255, + UPB_SIZE(64, 96), 7, false, 0, 255, }; static const upb_msglayout_field google_protobuf_UninterpretedOption_NamePart__fields[2] = { - {1, UPB_SIZE(4, 8), 1, 0, 12, 2}, - {2, UPB_SIZE(1, 1), 2, 0, 8, 2}, + {1, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {2, UPB_SIZE(1, 1), 2, 0, 8, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_UninterpretedOption_NamePart_msginit = { NULL, &google_protobuf_UninterpretedOption_NamePart__fields[0], - UPB_SIZE(16, 32), 2, false, 255, + UPB_SIZE(16, 32), 2, false, 2, 255, }; static const upb_msglayout *const google_protobuf_SourceCodeInfo_submsgs[1] = { @@ -432,27 +432,27 @@ static const upb_msglayout *const google_protobuf_SourceCodeInfo_submsgs[1] = { }; static const upb_msglayout_field google_protobuf_SourceCodeInfo__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_SourceCodeInfo_msginit = { &google_protobuf_SourceCodeInfo_submsgs[0], &google_protobuf_SourceCodeInfo__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_SourceCodeInfo_Location__fields[5] = { - {1, UPB_SIZE(20, 40), 0, 0, 5, _UPB_LABEL_PACKED}, - {2, UPB_SIZE(24, 48), 0, 0, 5, _UPB_LABEL_PACKED}, - {3, UPB_SIZE(4, 8), 1, 0, 12, 1}, - {4, UPB_SIZE(12, 24), 2, 0, 12, 1}, - {6, UPB_SIZE(28, 56), 0, 0, 12, 3}, + {1, UPB_SIZE(20, 40), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {2, UPB_SIZE(24, 48), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {3, UPB_SIZE(4, 8), 1, 0, 12, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(12, 24), 2, 0, 12, _UPB_MODE_SCALAR}, + {6, UPB_SIZE(28, 56), 0, 0, 12, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_SourceCodeInfo_Location_msginit = { NULL, &google_protobuf_SourceCodeInfo_Location__fields[0], - UPB_SIZE(32, 64), 5, false, 255, + UPB_SIZE(32, 64), 5, false, 4, 255, }; static const upb_msglayout *const google_protobuf_GeneratedCodeInfo_submsgs[1] = { @@ -460,26 +460,26 @@ static const upb_msglayout *const google_protobuf_GeneratedCodeInfo_submsgs[1] = }; static const upb_msglayout_field google_protobuf_GeneratedCodeInfo__fields[1] = { - {1, UPB_SIZE(0, 0), 0, 0, 11, 3}, + {1, UPB_SIZE(0, 0), 0, 0, 11, _UPB_MODE_ARRAY}, }; const upb_msglayout google_protobuf_GeneratedCodeInfo_msginit = { &google_protobuf_GeneratedCodeInfo_submsgs[0], &google_protobuf_GeneratedCodeInfo__fields[0], - UPB_SIZE(8, 8), 1, false, 255, + UPB_SIZE(8, 8), 1, false, 1, 255, }; static const upb_msglayout_field google_protobuf_GeneratedCodeInfo_Annotation__fields[4] = { - {1, UPB_SIZE(20, 32), 0, 0, 5, _UPB_LABEL_PACKED}, - {2, UPB_SIZE(12, 16), 1, 0, 12, 1}, - {3, UPB_SIZE(4, 4), 2, 0, 5, 1}, - {4, UPB_SIZE(8, 8), 3, 0, 5, 1}, + {1, UPB_SIZE(20, 32), 0, 0, 5, _UPB_MODE_ARRAY | _UPB_MODE_IS_PACKED}, + {2, UPB_SIZE(12, 16), 1, 0, 12, _UPB_MODE_SCALAR}, + {3, UPB_SIZE(4, 4), 2, 0, 5, _UPB_MODE_SCALAR}, + {4, UPB_SIZE(8, 8), 3, 0, 5, _UPB_MODE_SCALAR}, }; const upb_msglayout google_protobuf_GeneratedCodeInfo_Annotation_msginit = { NULL, &google_protobuf_GeneratedCodeInfo_Annotation__fields[0], - UPB_SIZE(24, 48), 4, false, 255, + UPB_SIZE(24, 48), 4, false, 4, 255, }; #include "upb/port_undef.inc" diff --git a/third_party/upb/cmake/google/protobuf/descriptor.upb.h b/third_party/upb/cmake/google/protobuf/descriptor.upb.h index a8ed71a688c..4767b3af688 100644 --- a/third_party/upb/cmake/google/protobuf/descriptor.upb.h +++ b/third_party/upb/cmake/google/protobuf/descriptor.upb.h @@ -9,7 +9,7 @@ #ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_ #define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_ -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/decode.h" #include "upb/decode_fast.h" #include "upb/encode.h" @@ -162,13 +162,19 @@ UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_ UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FileDescriptorSet *ret = google_protobuf_FileDescriptorSet_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FileDescriptorSet *ret = google_protobuf_FileDescriptorSet_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FileDescriptorSet_serialize(const google_protobuf_FileDescriptorSet *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FileDescriptorSet_msginit, arena, len); @@ -199,13 +205,19 @@ UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorPr UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FileDescriptorProto *ret = google_protobuf_FileDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FileDescriptorProto *ret = google_protobuf_FileDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FileDescriptorProto_serialize(const google_protobuf_FileDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FileDescriptorProto_msginit, arena, len); @@ -362,13 +374,19 @@ UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_new( UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DescriptorProto *ret = google_protobuf_DescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DescriptorProto *ret = google_protobuf_DescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DescriptorProto_serialize(const google_protobuf_DescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DescriptorProto_msginit, arena, len); @@ -521,13 +539,19 @@ UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_Descr UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_DescriptorProto_ExtensionRange_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DescriptorProto_ExtensionRange *ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_DescriptorProto_ExtensionRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DescriptorProto_ExtensionRange *ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DescriptorProto_ExtensionRange_serialize(const google_protobuf_DescriptorProto_ExtensionRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena, len); @@ -570,13 +594,19 @@ UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_Descri UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_DescriptorProto_ReservedRange_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_DescriptorProto_ReservedRange *ret = google_protobuf_DescriptorProto_ReservedRange_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_DescriptorProto_ReservedRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_DescriptorProto_ReservedRange *ret = google_protobuf_DescriptorProto_ReservedRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_DescriptorProto_ReservedRange_serialize(const google_protobuf_DescriptorProto_ReservedRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena, len); @@ -604,13 +634,19 @@ UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRange UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRangeOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ExtensionRangeOptions *ret = google_protobuf_ExtensionRangeOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRangeOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ExtensionRangeOptions *ret = google_protobuf_ExtensionRangeOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ExtensionRangeOptions_serialize(const google_protobuf_ExtensionRangeOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ExtensionRangeOptions_msginit, arena, len); @@ -641,13 +677,19 @@ UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptor UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FieldDescriptorProto *ret = google_protobuf_FieldDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FieldDescriptorProto *ret = google_protobuf_FieldDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FieldDescriptorProto_serialize(const google_protobuf_FieldDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FieldDescriptorProto_msginit, arena, len); @@ -738,13 +780,19 @@ UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptor UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_OneofDescriptorProto *ret = google_protobuf_OneofDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_OneofDescriptorProto *ret = google_protobuf_OneofDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_OneofDescriptorProto_serialize(const google_protobuf_OneofDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_OneofDescriptorProto_msginit, arena, len); @@ -781,13 +829,19 @@ UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorPr UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumDescriptorProto *ret = google_protobuf_EnumDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumDescriptorProto *ret = google_protobuf_EnumDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumDescriptorProto_serialize(const google_protobuf_EnumDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumDescriptorProto_msginit, arena, len); @@ -865,13 +919,19 @@ UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobu UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobuf_EnumDescriptorProto_EnumReservedRange_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumDescriptorProto_EnumReservedRange *ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobuf_EnumDescriptorProto_EnumReservedRange_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumDescriptorProto_EnumReservedRange *ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumDescriptorProto_EnumReservedRange_serialize(const google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena, len); @@ -899,13 +959,19 @@ UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDe UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumValueDescriptorProto *ret = google_protobuf_EnumValueDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumValueDescriptorProto *ret = google_protobuf_EnumValueDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumValueDescriptorProto_serialize(const google_protobuf_EnumValueDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumValueDescriptorProto_msginit, arena, len); @@ -948,13 +1014,19 @@ UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescri UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ServiceDescriptorProto *ret = google_protobuf_ServiceDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ServiceDescriptorProto *ret = google_protobuf_ServiceDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ServiceDescriptorProto_serialize(const google_protobuf_ServiceDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ServiceDescriptorProto_msginit, arena, len); @@ -1006,13 +1078,19 @@ UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescript UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescriptorProto_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_MethodDescriptorProto *ret = google_protobuf_MethodDescriptorProto_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescriptorProto_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_MethodDescriptorProto *ret = google_protobuf_MethodDescriptorProto_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_MethodDescriptorProto_serialize(const google_protobuf_MethodDescriptorProto *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_MethodDescriptorProto_msginit, arena, len); @@ -1073,13 +1151,19 @@ UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_new(upb_aren UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FileOptions *ret = google_protobuf_FileOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FileOptions *ret = google_protobuf_FileOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FileOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FileOptions_serialize(const google_protobuf_FileOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FileOptions_msginit, arena, len); @@ -1230,13 +1314,19 @@ UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_new(up UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_MessageOptions *ret = google_protobuf_MessageOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_MessageOptions *ret = google_protobuf_MessageOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_MessageOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_MessageOptions_serialize(const google_protobuf_MessageOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_MessageOptions_msginit, arena, len); @@ -1291,13 +1381,19 @@ UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_new(upb_ar UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_FieldOptions *ret = google_protobuf_FieldOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_FieldOptions *ret = google_protobuf_FieldOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_FieldOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_FieldOptions_serialize(const google_protobuf_FieldOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_FieldOptions_msginit, arena, len); @@ -1364,13 +1460,19 @@ UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_new(upb_ar UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_OneofOptions *ret = google_protobuf_OneofOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_OneofOptions *ret = google_protobuf_OneofOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_OneofOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_OneofOptions_serialize(const google_protobuf_OneofOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_OneofOptions_msginit, arena, len); @@ -1401,13 +1503,19 @@ UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_new(upb_aren UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumOptions *ret = google_protobuf_EnumOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumOptions *ret = google_protobuf_EnumOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumOptions_serialize(const google_protobuf_EnumOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumOptions_msginit, arena, len); @@ -1450,13 +1558,19 @@ UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_ne UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_EnumValueOptions *ret = google_protobuf_EnumValueOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_EnumValueOptions *ret = google_protobuf_EnumValueOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_EnumValueOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_EnumValueOptions_serialize(const google_protobuf_EnumValueOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_EnumValueOptions_msginit, arena, len); @@ -1493,13 +1607,19 @@ UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_new(up UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_ServiceOptions *ret = google_protobuf_ServiceOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_ServiceOptions *ret = google_protobuf_ServiceOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_ServiceOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_ServiceOptions_serialize(const google_protobuf_ServiceOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_ServiceOptions_msginit, arena, len); @@ -1536,13 +1656,19 @@ UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_new(upb_ UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_MethodOptions *ret = google_protobuf_MethodOptions_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_MethodOptions *ret = google_protobuf_MethodOptions_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_MethodOptions_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_MethodOptions_serialize(const google_protobuf_MethodOptions *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_MethodOptions_msginit, arena, len); @@ -1585,13 +1711,19 @@ UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOpt UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOption_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_UninterpretedOption *ret = google_protobuf_UninterpretedOption_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOption_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_UninterpretedOption *ret = google_protobuf_UninterpretedOption_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_UninterpretedOption_serialize(const google_protobuf_UninterpretedOption *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_UninterpretedOption_msginit, arena, len); @@ -1658,13 +1790,19 @@ UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_Uninter UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_UninterpretedOption_NamePart_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_UninterpretedOption_NamePart *ret = google_protobuf_UninterpretedOption_NamePart_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_UninterpretedOption_NamePart_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_UninterpretedOption_NamePart *ret = google_protobuf_UninterpretedOption_NamePart_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_UninterpretedOption_NamePart_serialize(const google_protobuf_UninterpretedOption_NamePart *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_UninterpretedOption_NamePart_msginit, arena, len); @@ -1692,13 +1830,19 @@ UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_new(up UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_SourceCodeInfo *ret = google_protobuf_SourceCodeInfo_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_SourceCodeInfo *ret = google_protobuf_SourceCodeInfo_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_SourceCodeInfo_serialize(const google_protobuf_SourceCodeInfo *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_SourceCodeInfo_msginit, arena, len); @@ -1729,13 +1873,19 @@ UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeIn UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeInfo_Location_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_SourceCodeInfo_Location *ret = google_protobuf_SourceCodeInfo_Location_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeInfo_Location_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_SourceCodeInfo_Location *ret = google_protobuf_SourceCodeInfo_Location_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_SourceCodeInfo_Location_serialize(const google_protobuf_SourceCodeInfo_Location *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_SourceCodeInfo_Location_msginit, arena, len); @@ -1796,13 +1946,19 @@ UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_ UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_GeneratedCodeInfo *ret = google_protobuf_GeneratedCodeInfo_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_GeneratedCodeInfo *ret = google_protobuf_GeneratedCodeInfo_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_GeneratedCodeInfo_serialize(const google_protobuf_GeneratedCodeInfo *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_GeneratedCodeInfo_msginit, arena, len); @@ -1833,13 +1989,19 @@ UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_Generat UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_GeneratedCodeInfo_Annotation_parse(const char *buf, size_t size, upb_arena *arena) { google_protobuf_GeneratedCodeInfo_Annotation *ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena); - return (ret && upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena)) ? ret : NULL; + if (!ret) return NULL; + if (!upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena)) return NULL; + return ret; } UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_GeneratedCodeInfo_Annotation_parse_ex(const char *buf, size_t size, - upb_arena *arena, int options) { + const upb_extreg *extreg, int options, + upb_arena *arena) { google_protobuf_GeneratedCodeInfo_Annotation *ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena); - return (ret && _upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena, options)) - ? ret : NULL; + if (!ret) return NULL; + if (!_upb_decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, extreg, options, arena)) { + return NULL; + } + return ret; } UPB_INLINE char *google_protobuf_GeneratedCodeInfo_Annotation_serialize(const google_protobuf_GeneratedCodeInfo_Annotation *msg, upb_arena *arena, size_t *len) { return upb_encode(msg, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena, len); diff --git a/third_party/upb/cmake/make_cmakelists.py b/third_party/upb/cmake/make_cmakelists.py index 035debb730c..415f937c733 100755 --- a/third_party/upb/cmake/make_cmakelists.py +++ b/third_party/upb/cmake/make_cmakelists.py @@ -1,4 +1,29 @@ -#!/usr/bin/env python +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """TODO(haberman): DO NOT SUBMIT without one-line documentation for make_cmakelists. @@ -283,7 +308,6 @@ globs = GetDict(converter) exec(open("WORKSPACE").read(), GetDict(WorkspaceFileFunctions(converter))) exec(open("BUILD").read(), GetDict(BuildFileFunctions(converter))) -exec(open("third_party/wyhash/BUILD").read(), GetDict(BuildFileFunctions(converter))) with open(sys.argv[1], "w") as f: f.write(converter.convert()) diff --git a/third_party/upb/cmake/staleness_test.py b/third_party/upb/cmake/staleness_test.py index 585730715ed..58f1833c908 100644 --- a/third_party/upb/cmake/staleness_test.py +++ b/third_party/upb/cmake/staleness_test.py @@ -1,3 +1,30 @@ +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """The py_test() script for generated_file_staleness_test() rules. Note that this file is preprocessed! The INSERT_<...> text below is replaced diff --git a/third_party/upb/cmake/staleness_test_lib.py b/third_party/upb/cmake/staleness_test_lib.py index cdfcc0d17a5..0748969c342 100644 --- a/third_party/upb/cmake/staleness_test_lib.py +++ b/third_party/upb/cmake/staleness_test_lib.py @@ -1,3 +1,30 @@ +#!/usr/bin/python +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """Shared code for validating generated_file_staleness_test() rules. This code is used by test scripts generated from diff --git a/third_party/upb/cmake/upb/json/parser.c b/third_party/upb/cmake/upb/json/parser.c deleted file mode 100644 index 26996d8a59d..00000000000 --- a/third_party/upb/cmake/upb/json/parser.c +++ /dev/null @@ -1,3433 +0,0 @@ - -#line 1 "upb/json/parser.rl" -/* -** upb::json::Parser (upb_json_parser) -** -** A parser that uses the Ragel State Machine Compiler to generate -** the finite automata. -** -** Ragel only natively handles regular languages, but we can manually -** program it a bit to handle context-free languages like JSON, by using -** the "fcall" and "fret" constructs. -** -** This parser can handle the basics, but needs several things to be fleshed -** out: -** -** - handling of unicode escape sequences (including high surrogate pairs). -** - properly check and report errors for unknown fields, stack overflow, -** improper array nesting (or lack of nesting). -** - handling of base64 sequences with padding characters. -** - handling of push-back (non-success returns from sink functions). -** - handling of keys/escape-sequences/etc that span input buffers. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "upb/json/parser.h" -#include "upb/pb/encoder.h" - -#include "upb/port_def.inc" - -#define UPB_JSON_MAX_DEPTH 64 - -/* Type of value message */ -enum { - VALUE_NULLVALUE = 0, - VALUE_NUMBERVALUE = 1, - VALUE_STRINGVALUE = 2, - VALUE_BOOLVALUE = 3, - VALUE_STRUCTVALUE = 4, - VALUE_LISTVALUE = 5 -}; - -/* Forward declare */ -static bool is_top_level(upb_json_parser *p); -static bool is_wellknown_msg(upb_json_parser *p, upb_wellknowntype_t type); -static bool is_wellknown_field(upb_json_parser *p, upb_wellknowntype_t type); - -static bool is_number_wrapper_object(upb_json_parser *p); -static bool does_number_wrapper_start(upb_json_parser *p); -static bool does_number_wrapper_end(upb_json_parser *p); - -static bool is_string_wrapper_object(upb_json_parser *p); -static bool does_string_wrapper_start(upb_json_parser *p); -static bool does_string_wrapper_end(upb_json_parser *p); - -static bool does_fieldmask_start(upb_json_parser *p); -static bool does_fieldmask_end(upb_json_parser *p); -static void start_fieldmask_object(upb_json_parser *p); -static void end_fieldmask_object(upb_json_parser *p); - -static void start_wrapper_object(upb_json_parser *p); -static void end_wrapper_object(upb_json_parser *p); - -static void start_value_object(upb_json_parser *p, int value_type); -static void end_value_object(upb_json_parser *p); - -static void start_listvalue_object(upb_json_parser *p); -static void end_listvalue_object(upb_json_parser *p); - -static void start_structvalue_object(upb_json_parser *p); -static void end_structvalue_object(upb_json_parser *p); - -static void start_object(upb_json_parser *p); -static void end_object(upb_json_parser *p); - -static void start_any_object(upb_json_parser *p, const char *ptr); -static bool end_any_object(upb_json_parser *p, const char *ptr); - -static bool start_subobject(upb_json_parser *p); -static void end_subobject(upb_json_parser *p); - -static void start_member(upb_json_parser *p); -static void end_member(upb_json_parser *p); -static bool end_membername(upb_json_parser *p); - -static void start_any_member(upb_json_parser *p, const char *ptr); -static void end_any_member(upb_json_parser *p, const char *ptr); -static bool end_any_membername(upb_json_parser *p); - -size_t parse(void *closure, const void *hd, const char *buf, size_t size, - const upb_bufhandle *handle); -static bool end(void *closure, const void *hd); - -static const char eof_ch = 'e'; - -/* stringsink */ -typedef struct { - upb_byteshandler handler; - upb_bytessink sink; - char *ptr; - size_t len, size; -} upb_stringsink; - - -static void *stringsink_start(void *_sink, const void *hd, size_t size_hint) { - upb_stringsink *sink = _sink; - sink->len = 0; - UPB_UNUSED(hd); - UPB_UNUSED(size_hint); - return sink; -} - -static size_t stringsink_string(void *_sink, const void *hd, const char *ptr, - size_t len, const upb_bufhandle *handle) { - upb_stringsink *sink = _sink; - size_t new_size = sink->size; - - UPB_UNUSED(hd); - UPB_UNUSED(handle); - - while (sink->len + len > new_size) { - new_size *= 2; - } - - if (new_size != sink->size) { - sink->ptr = realloc(sink->ptr, new_size); - sink->size = new_size; - } - - memcpy(sink->ptr + sink->len, ptr, len); - sink->len += len; - - return len; -} - -void upb_stringsink_init(upb_stringsink *sink) { - upb_byteshandler_init(&sink->handler); - upb_byteshandler_setstartstr(&sink->handler, stringsink_start, NULL); - upb_byteshandler_setstring(&sink->handler, stringsink_string, NULL); - - upb_bytessink_reset(&sink->sink, &sink->handler, sink); - - sink->size = 32; - sink->ptr = malloc(sink->size); - sink->len = 0; -} - -void upb_stringsink_uninit(upb_stringsink *sink) { free(sink->ptr); } - -typedef struct { - /* For encoding Any value field in binary format. */ - upb_handlercache *encoder_handlercache; - upb_stringsink stringsink; - - /* For decoding Any value field in json format. */ - upb_json_codecache *parser_codecache; - upb_sink sink; - upb_json_parser *parser; - - /* Mark the range of uninterpreted values in json input before type url. */ - const char *before_type_url_start; - const char *before_type_url_end; - - /* Mark the range of uninterpreted values in json input after type url. */ - const char *after_type_url_start; -} upb_jsonparser_any_frame; - -typedef struct { - upb_sink sink; - - /* The current message in which we're parsing, and the field whose value we're - * expecting next. */ - const upb_msgdef *m; - const upb_fielddef *f; - - /* The table mapping json name to fielddef for this message. */ - const upb_strtable *name_table; - - /* We are in a repeated-field context. We need this flag to decide whether to - * handle the array as a normal repeated field or a - * google.protobuf.ListValue/google.protobuf.Value. */ - bool is_repeated; - - /* We are in a repeated-field context, ready to emit mapentries as - * submessages. This flag alters the start-of-object (open-brace) behavior to - * begin a sequence of mapentry messages rather than a single submessage. */ - bool is_map; - - /* We are in a map-entry message context. This flag is set when parsing the - * value field of a single map entry and indicates to all value-field parsers - * (subobjects, strings, numbers, and bools) that the map-entry submessage - * should end as soon as the value is parsed. */ - bool is_mapentry; - - /* If |is_map| or |is_mapentry| is true, |mapfield| refers to the parent - * message's map field that we're currently parsing. This differs from |f| - * because |f| is the field in the *current* message (i.e., the map-entry - * message itself), not the parent's field that leads to this map. */ - const upb_fielddef *mapfield; - - /* We are in an Any message context. This flag is set when parsing the Any - * message and indicates to all field parsers (subobjects, strings, numbers, - * and bools) that the parsed field should be serialized as binary data or - * cached (type url not found yet). */ - bool is_any; - - /* The type of packed message in Any. */ - upb_jsonparser_any_frame *any_frame; - - /* True if the field to be parsed is unknown. */ - bool is_unknown_field; -} upb_jsonparser_frame; - -static void init_frame(upb_jsonparser_frame* frame) { - frame->m = NULL; - frame->f = NULL; - frame->name_table = NULL; - frame->is_repeated = false; - frame->is_map = false; - frame->is_mapentry = false; - frame->mapfield = NULL; - frame->is_any = false; - frame->any_frame = NULL; - frame->is_unknown_field = false; -} - -struct upb_json_parser { - upb_arena *arena; - const upb_json_parsermethod *method; - upb_bytessink input_; - - /* Stack to track the JSON scopes we are in. */ - upb_jsonparser_frame stack[UPB_JSON_MAX_DEPTH]; - upb_jsonparser_frame *top; - upb_jsonparser_frame *limit; - - upb_status *status; - - /* Ragel's internal parsing stack for the parsing state machine. */ - int current_state; - int parser_stack[UPB_JSON_MAX_DEPTH]; - int parser_top; - - /* The handle for the current buffer. */ - const upb_bufhandle *handle; - - /* Accumulate buffer. See details in parser.rl. */ - const char *accumulated; - size_t accumulated_len; - char *accumulate_buf; - size_t accumulate_buf_size; - - /* Multi-part text data. See details in parser.rl. */ - int multipart_state; - upb_selector_t string_selector; - - /* Input capture. See details in parser.rl. */ - const char *capture; - - /* Intermediate result of parsing a unicode escape sequence. */ - uint32_t digit; - - /* For resolve type url in Any. */ - const upb_symtab *symtab; - - /* Whether to proceed if unknown field is met. */ - bool ignore_json_unknown; - - /* Cache for parsing timestamp due to base and zone are handled in different - * handlers. */ - struct tm tm; -}; - -static upb_jsonparser_frame* start_jsonparser_frame(upb_json_parser *p) { - upb_jsonparser_frame *inner; - inner = p->top + 1; - init_frame(inner); - return inner; -} - -struct upb_json_codecache { - upb_arena *arena; - upb_inttable methods; /* upb_msgdef* -> upb_json_parsermethod* */ -}; - -struct upb_json_parsermethod { - const upb_json_codecache *cache; - upb_byteshandler input_handler_; - - /* Maps json_name -> fielddef */ - upb_strtable name_table; -}; - -#define PARSER_CHECK_RETURN(x) if (!(x)) return false - -static upb_jsonparser_any_frame *json_parser_any_frame_new( - upb_json_parser *p) { - upb_jsonparser_any_frame *frame; - - frame = upb_arena_malloc(p->arena, sizeof(upb_jsonparser_any_frame)); - - frame->encoder_handlercache = upb_pb_encoder_newcache(); - frame->parser_codecache = upb_json_codecache_new(); - frame->parser = NULL; - frame->before_type_url_start = NULL; - frame->before_type_url_end = NULL; - frame->after_type_url_start = NULL; - - upb_stringsink_init(&frame->stringsink); - - return frame; -} - -static void json_parser_any_frame_set_payload_type( - upb_json_parser *p, - upb_jsonparser_any_frame *frame, - const upb_msgdef *payload_type) { - const upb_handlers *h; - const upb_json_parsermethod *parser_method; - upb_pb_encoder *encoder; - - /* Initialize encoder. */ - h = upb_handlercache_get(frame->encoder_handlercache, payload_type); - encoder = upb_pb_encoder_create(p->arena, h, frame->stringsink.sink); - - /* Initialize parser. */ - parser_method = upb_json_codecache_get(frame->parser_codecache, payload_type); - upb_sink_reset(&frame->sink, h, encoder); - frame->parser = - upb_json_parser_create(p->arena, parser_method, p->symtab, frame->sink, - p->status, p->ignore_json_unknown); -} - -static void json_parser_any_frame_free(upb_jsonparser_any_frame *frame) { - upb_handlercache_free(frame->encoder_handlercache); - upb_json_codecache_free(frame->parser_codecache); - upb_stringsink_uninit(&frame->stringsink); -} - -static bool json_parser_any_frame_has_type_url( - upb_jsonparser_any_frame *frame) { - return frame->parser != NULL; -} - -static bool json_parser_any_frame_has_value_before_type_url( - upb_jsonparser_any_frame *frame) { - return frame->before_type_url_start != frame->before_type_url_end; -} - -static bool json_parser_any_frame_has_value_after_type_url( - upb_jsonparser_any_frame *frame) { - return frame->after_type_url_start != NULL; -} - -static bool json_parser_any_frame_has_value( - upb_jsonparser_any_frame *frame) { - return json_parser_any_frame_has_value_before_type_url(frame) || - json_parser_any_frame_has_value_after_type_url(frame); -} - -static void json_parser_any_frame_set_before_type_url_end( - upb_jsonparser_any_frame *frame, - const char *ptr) { - if (frame->parser == NULL) { - frame->before_type_url_end = ptr; - } -} - -static void json_parser_any_frame_set_after_type_url_start_once( - upb_jsonparser_any_frame *frame, - const char *ptr) { - if (json_parser_any_frame_has_type_url(frame) && - frame->after_type_url_start == NULL) { - frame->after_type_url_start = ptr; - } -} - -/* Used to signal that a capture has been suspended. */ -static char suspend_capture; - -static upb_selector_t getsel_for_handlertype(upb_json_parser *p, - upb_handlertype_t type) { - upb_selector_t sel; - bool ok = upb_handlers_getselector(p->top->f, type, &sel); - UPB_ASSUME(ok); - return sel; -} - -static upb_selector_t parser_getsel(upb_json_parser *p) { - return getsel_for_handlertype( - p, upb_handlers_getprimitivehandlertype(p->top->f)); -} - -static bool check_stack(upb_json_parser *p) { - if ((p->top + 1) == p->limit) { - upb_status_seterrmsg(p->status, "Nesting too deep"); - return false; - } - - return true; -} - -static void set_name_table(upb_json_parser *p, upb_jsonparser_frame *frame) { - upb_value v; - const upb_json_codecache *cache = p->method->cache; - bool ok; - const upb_json_parsermethod *method; - - ok = upb_inttable_lookupptr(&cache->methods, frame->m, &v); - UPB_ASSUME(ok); - method = upb_value_getconstptr(v); - - frame->name_table = &method->name_table; -} - -/* There are GCC/Clang built-ins for overflow checking which we could start - * using if there was any performance benefit to it. */ - -static bool checked_add(size_t a, size_t b, size_t *c) { - if (SIZE_MAX - a < b) return false; - *c = a + b; - return true; -} - -static size_t saturating_multiply(size_t a, size_t b) { - /* size_t is unsigned, so this is defined behavior even on overflow. */ - size_t ret = a * b; - if (b != 0 && ret / b != a) { - ret = SIZE_MAX; - } - return ret; -} - - -/* Base64 decoding ************************************************************/ - -/* TODO(haberman): make this streaming. */ - -static const signed char b64table[] = { - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 62/*+*/, -1, -1, -1, 63/*/ */, - 52/*0*/, 53/*1*/, 54/*2*/, 55/*3*/, 56/*4*/, 57/*5*/, 58/*6*/, 59/*7*/, - 60/*8*/, 61/*9*/, -1, -1, -1, -1, -1, -1, - -1, 0/*A*/, 1/*B*/, 2/*C*/, 3/*D*/, 4/*E*/, 5/*F*/, 6/*G*/, - 07/*H*/, 8/*I*/, 9/*J*/, 10/*K*/, 11/*L*/, 12/*M*/, 13/*N*/, 14/*O*/, - 15/*P*/, 16/*Q*/, 17/*R*/, 18/*S*/, 19/*T*/, 20/*U*/, 21/*V*/, 22/*W*/, - 23/*X*/, 24/*Y*/, 25/*Z*/, -1, -1, -1, -1, -1, - -1, 26/*a*/, 27/*b*/, 28/*c*/, 29/*d*/, 30/*e*/, 31/*f*/, 32/*g*/, - 33/*h*/, 34/*i*/, 35/*j*/, 36/*k*/, 37/*l*/, 38/*m*/, 39/*n*/, 40/*o*/, - 41/*p*/, 42/*q*/, 43/*r*/, 44/*s*/, 45/*t*/, 46/*u*/, 47/*v*/, 48/*w*/, - 49/*x*/, 50/*y*/, 51/*z*/, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 -}; - -/* Returns the table value sign-extended to 32 bits. Knowing that the upper - * bits will be 1 for unrecognized characters makes it easier to check for - * this error condition later (see below). */ -int32_t b64lookup(unsigned char ch) { return b64table[ch]; } - -/* Returns true if the given character is not a valid base64 character or - * padding. */ -bool nonbase64(unsigned char ch) { return b64lookup(ch) == -1 && ch != '='; } - -static bool base64_push(upb_json_parser *p, upb_selector_t sel, const char *ptr, - size_t len) { - const char *limit = ptr + len; - for (; ptr < limit; ptr += 4) { - uint32_t val; - char output[3]; - - if (limit - ptr < 4) { - upb_status_seterrf(p->status, - "Base64 input for bytes field not a multiple of 4: %s", - upb_fielddef_name(p->top->f)); - return false; - } - - val = b64lookup(ptr[0]) << 18 | - b64lookup(ptr[1]) << 12 | - b64lookup(ptr[2]) << 6 | - b64lookup(ptr[3]); - - /* Test the upper bit; returns true if any of the characters returned -1. */ - if (val & 0x80000000) { - goto otherchar; - } - - output[0] = val >> 16; - output[1] = (val >> 8) & 0xff; - output[2] = val & 0xff; - upb_sink_putstring(p->top->sink, sel, output, 3, NULL); - } - return true; - -otherchar: - if (nonbase64(ptr[0]) || nonbase64(ptr[1]) || nonbase64(ptr[2]) || - nonbase64(ptr[3]) ) { - upb_status_seterrf(p->status, - "Non-base64 characters in bytes field: %s", - upb_fielddef_name(p->top->f)); - return false; - } if (ptr[2] == '=') { - uint32_t val; - char output; - - /* Last group contains only two input bytes, one output byte. */ - if (ptr[0] == '=' || ptr[1] == '=' || ptr[3] != '=') { - goto badpadding; - } - - val = b64lookup(ptr[0]) << 18 | - b64lookup(ptr[1]) << 12; - - UPB_ASSERT(!(val & 0x80000000)); - output = val >> 16; - upb_sink_putstring(p->top->sink, sel, &output, 1, NULL); - return true; - } else { - uint32_t val; - char output[2]; - - /* Last group contains only three input bytes, two output bytes. */ - if (ptr[0] == '=' || ptr[1] == '=' || ptr[2] == '=') { - goto badpadding; - } - - val = b64lookup(ptr[0]) << 18 | - b64lookup(ptr[1]) << 12 | - b64lookup(ptr[2]) << 6; - - output[0] = val >> 16; - output[1] = (val >> 8) & 0xff; - upb_sink_putstring(p->top->sink, sel, output, 2, NULL); - return true; - } - -badpadding: - upb_status_seterrf(p->status, - "Incorrect base64 padding for field: %s (%.*s)", - upb_fielddef_name(p->top->f), - 4, ptr); - return false; -} - - -/* Accumulate buffer **********************************************************/ - -/* Functionality for accumulating a buffer. - * - * Some parts of the parser need an entire value as a contiguous string. For - * example, to look up a member name in a hash table, or to turn a string into - * a number, the relevant library routines need the input string to be in - * contiguous memory, even if the value spanned two or more buffers in the - * input. These routines handle that. - * - * In the common case we can just point to the input buffer to get this - * contiguous string and avoid any actual copy. So we optimistically begin - * this way. But there are a few cases where we must instead copy into a - * separate buffer: - * - * 1. The string was not contiguous in the input (it spanned buffers). - * - * 2. The string included escape sequences that need to be interpreted to get - * the true value in a contiguous buffer. */ - -static void assert_accumulate_empty(upb_json_parser *p) { - UPB_ASSERT(p->accumulated == NULL); - UPB_ASSERT(p->accumulated_len == 0); -} - -static void accumulate_clear(upb_json_parser *p) { - p->accumulated = NULL; - p->accumulated_len = 0; -} - -/* Used internally by accumulate_append(). */ -static bool accumulate_realloc(upb_json_parser *p, size_t need) { - void *mem; - size_t old_size = p->accumulate_buf_size; - size_t new_size = UPB_MAX(old_size, 128); - while (new_size < need) { - new_size = saturating_multiply(new_size, 2); - } - - mem = upb_arena_realloc(p->arena, p->accumulate_buf, old_size, new_size); - if (!mem) { - upb_status_seterrmsg(p->status, "Out of memory allocating buffer."); - return false; - } - - p->accumulate_buf = mem; - p->accumulate_buf_size = new_size; - return true; -} - -/* Logically appends the given data to the append buffer. - * If "can_alias" is true, we will try to avoid actually copying, but the buffer - * must be valid until the next accumulate_append() call (if any). */ -static bool accumulate_append(upb_json_parser *p, const char *buf, size_t len, - bool can_alias) { - size_t need; - - if (!p->accumulated && can_alias) { - p->accumulated = buf; - p->accumulated_len = len; - return true; - } - - if (!checked_add(p->accumulated_len, len, &need)) { - upb_status_seterrmsg(p->status, "Integer overflow."); - return false; - } - - if (need > p->accumulate_buf_size && !accumulate_realloc(p, need)) { - return false; - } - - if (p->accumulated != p->accumulate_buf) { - if (p->accumulated_len) { - memcpy(p->accumulate_buf, p->accumulated, p->accumulated_len); - } - p->accumulated = p->accumulate_buf; - } - - memcpy(p->accumulate_buf + p->accumulated_len, buf, len); - p->accumulated_len += len; - return true; -} - -/* Returns a pointer to the data accumulated since the last accumulate_clear() - * call, and writes the length to *len. This with point either to the input - * buffer or a temporary accumulate buffer. */ -static const char *accumulate_getptr(upb_json_parser *p, size_t *len) { - UPB_ASSERT(p->accumulated); - *len = p->accumulated_len; - return p->accumulated; -} - - -/* Mult-part text data ********************************************************/ - -/* When we have text data in the input, it can often come in multiple segments. - * For example, there may be some raw string data followed by an escape - * sequence. The two segments are processed with different logic. Also buffer - * seams in the input can cause multiple segments. - * - * As we see segments, there are two main cases for how we want to process them: - * - * 1. we want to push the captured input directly to string handlers. - * - * 2. we need to accumulate all the parts into a contiguous buffer for further - * processing (field name lookup, string->number conversion, etc). */ - -/* This is the set of states for p->multipart_state. */ -enum { - /* We are not currently processing multipart data. */ - MULTIPART_INACTIVE = 0, - - /* We are processing multipart data by accumulating it into a contiguous - * buffer. */ - MULTIPART_ACCUMULATE = 1, - - /* We are processing multipart data by pushing each part directly to the - * current string handlers. */ - MULTIPART_PUSHEAGERLY = 2 -}; - -/* Start a multi-part text value where we accumulate the data for processing at - * the end. */ -static void multipart_startaccum(upb_json_parser *p) { - assert_accumulate_empty(p); - UPB_ASSERT(p->multipart_state == MULTIPART_INACTIVE); - p->multipart_state = MULTIPART_ACCUMULATE; -} - -/* Start a multi-part text value where we immediately push text data to a string - * value with the given selector. */ -static void multipart_start(upb_json_parser *p, upb_selector_t sel) { - assert_accumulate_empty(p); - UPB_ASSERT(p->multipart_state == MULTIPART_INACTIVE); - p->multipart_state = MULTIPART_PUSHEAGERLY; - p->string_selector = sel; -} - -static bool multipart_text(upb_json_parser *p, const char *buf, size_t len, - bool can_alias) { - switch (p->multipart_state) { - case MULTIPART_INACTIVE: - upb_status_seterrmsg( - p->status, "Internal error: unexpected state MULTIPART_INACTIVE"); - return false; - - case MULTIPART_ACCUMULATE: - if (!accumulate_append(p, buf, len, can_alias)) { - return false; - } - break; - - case MULTIPART_PUSHEAGERLY: { - const upb_bufhandle *handle = can_alias ? p->handle : NULL; - upb_sink_putstring(p->top->sink, p->string_selector, buf, len, handle); - break; - } - } - - return true; -} - -/* Note: this invalidates the accumulate buffer! Call only after reading its - * contents. */ -static void multipart_end(upb_json_parser *p) { - /* This is false sometimes. Probably a bug of some sort, but this code is - * intended for deletion soon. */ - /* UPB_ASSERT(p->multipart_state != MULTIPART_INACTIVE); */ - p->multipart_state = MULTIPART_INACTIVE; - accumulate_clear(p); -} - - -/* Input capture **************************************************************/ - -/* Functionality for capturing a region of the input as text. Gracefully - * handles the case where a buffer seam occurs in the middle of the captured - * region. */ - -static void capture_begin(upb_json_parser *p, const char *ptr) { - UPB_ASSERT(p->multipart_state != MULTIPART_INACTIVE); - UPB_ASSERT(p->capture == NULL); - p->capture = ptr; -} - -static bool capture_end(upb_json_parser *p, const char *ptr) { - UPB_ASSERT(p->capture); - if (multipart_text(p, p->capture, ptr - p->capture, true)) { - p->capture = NULL; - return true; - } else { - return false; - } -} - -/* This is called at the end of each input buffer (ie. when we have hit a - * buffer seam). If we are in the middle of capturing the input, this - * processes the unprocessed capture region. */ -static void capture_suspend(upb_json_parser *p, const char **ptr) { - if (!p->capture) return; - - if (multipart_text(p, p->capture, *ptr - p->capture, false)) { - /* We use this as a signal that we were in the middle of capturing, and - * that capturing should resume at the beginning of the next buffer. - * - * We can't use *ptr here, because we have no guarantee that this pointer - * will be valid when we resume (if the underlying memory is freed, then - * using the pointer at all, even to compare to NULL, is likely undefined - * behavior). */ - p->capture = &suspend_capture; - } else { - /* Need to back up the pointer to the beginning of the capture, since - * we were not able to actually preserve it. */ - *ptr = p->capture; - } -} - -static void capture_resume(upb_json_parser *p, const char *ptr) { - if (p->capture) { - UPB_ASSERT(p->capture == &suspend_capture); - p->capture = ptr; - } -} - - -/* Callbacks from the parser **************************************************/ - -/* These are the functions called directly from the parser itself. - * We define these in the same order as their declarations in the parser. */ - -static char escape_char(char in) { - switch (in) { - case 'r': return '\r'; - case 't': return '\t'; - case 'n': return '\n'; - case 'f': return '\f'; - case 'b': return '\b'; - case '/': return '/'; - case '"': return '"'; - case '\\': return '\\'; - default: - UPB_ASSERT(0); - return 'x'; - } -} - -static bool escape(upb_json_parser *p, const char *ptr) { - char ch = escape_char(*ptr); - return multipart_text(p, &ch, 1, false); -} - -static void start_hex(upb_json_parser *p) { - p->digit = 0; -} - -static void hexdigit(upb_json_parser *p, const char *ptr) { - char ch = *ptr; - - p->digit <<= 4; - - if (ch >= '0' && ch <= '9') { - p->digit += (ch - '0'); - } else if (ch >= 'a' && ch <= 'f') { - p->digit += ((ch - 'a') + 10); - } else { - UPB_ASSERT(ch >= 'A' && ch <= 'F'); - p->digit += ((ch - 'A') + 10); - } -} - -static bool end_hex(upb_json_parser *p) { - uint32_t codepoint = p->digit; - - /* emit the codepoint as UTF-8. */ - char utf8[3]; /* support \u0000 -- \uFFFF -- need only three bytes. */ - int length = 0; - if (codepoint <= 0x7F) { - utf8[0] = codepoint; - length = 1; - } else if (codepoint <= 0x07FF) { - utf8[1] = (codepoint & 0x3F) | 0x80; - codepoint >>= 6; - utf8[0] = (codepoint & 0x1F) | 0xC0; - length = 2; - } else /* codepoint <= 0xFFFF */ { - utf8[2] = (codepoint & 0x3F) | 0x80; - codepoint >>= 6; - utf8[1] = (codepoint & 0x3F) | 0x80; - codepoint >>= 6; - utf8[0] = (codepoint & 0x0F) | 0xE0; - length = 3; - } - /* TODO(haberman): Handle high surrogates: if codepoint is a high surrogate - * we have to wait for the next escape to get the full code point). */ - - return multipart_text(p, utf8, length, false); -} - -static void start_text(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_text(upb_json_parser *p, const char *ptr) { - return capture_end(p, ptr); -} - -static bool start_number(upb_json_parser *p, const char *ptr) { - if (is_top_level(p)) { - if (is_number_wrapper_object(p)) { - start_wrapper_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_NUMBERVALUE); - } else { - return false; - } - } else if (does_number_wrapper_start(p)) { - if (!start_subobject(p)) { - return false; - } - start_wrapper_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_NUMBERVALUE); - } - - multipart_startaccum(p); - capture_begin(p, ptr); - return true; -} - -static bool parse_number(upb_json_parser *p, bool is_quoted); - -static bool end_number_nontop(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - - if (p->top->f == NULL) { - multipart_end(p); - return true; - } - - return parse_number(p, false); -} - -static bool end_number(upb_json_parser *p, const char *ptr) { - if (!end_number_nontop(p, ptr)) { - return false; - } - - if (does_number_wrapper_end(p)) { - end_wrapper_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - return true; -} - -/* |buf| is NULL-terminated. |buf| itself will never include quotes; - * |is_quoted| tells us whether this text originally appeared inside quotes. */ -static bool parse_number_from_buffer(upb_json_parser *p, const char *buf, - bool is_quoted) { - size_t len = strlen(buf); - const char *bufend = buf + len; - char *end; - upb_fieldtype_t type = upb_fielddef_type(p->top->f); - double val; - double dummy; - double inf = INFINITY; - - errno = 0; - - if (len == 0 || buf[0] == ' ') { - return false; - } - - /* For integer types, first try parsing with integer-specific routines. - * If these succeed, they will be more accurate for int64/uint64 than - * strtod(). - */ - switch (type) { - case UPB_TYPE_ENUM: - case UPB_TYPE_INT32: { - long val = strtol(buf, &end, 0); - if (errno == ERANGE || end != bufend) { - break; - } else if (val > INT32_MAX || val < INT32_MIN) { - return false; - } else { - upb_sink_putint32(p->top->sink, parser_getsel(p), (int32_t)val); - return true; - } - UPB_UNREACHABLE(); - } - case UPB_TYPE_UINT32: { - unsigned long val = strtoul(buf, &end, 0); - if (end != bufend) { - break; - } else if (val > UINT32_MAX || errno == ERANGE) { - return false; - } else { - upb_sink_putuint32(p->top->sink, parser_getsel(p), (uint32_t)val); - return true; - } - UPB_UNREACHABLE(); - } - /* XXX: We can't handle [u]int64 properly on 32-bit machines because - * strto[u]ll isn't in C89. */ - case UPB_TYPE_INT64: { - long val = strtol(buf, &end, 0); - if (errno == ERANGE || end != bufend) { - break; - } else { - upb_sink_putint64(p->top->sink, parser_getsel(p), val); - return true; - } - UPB_UNREACHABLE(); - } - case UPB_TYPE_UINT64: { - unsigned long val = strtoul(p->accumulated, &end, 0); - if (end != bufend) { - break; - } else if (errno == ERANGE) { - return false; - } else { - upb_sink_putuint64(p->top->sink, parser_getsel(p), val); - return true; - } - UPB_UNREACHABLE(); - } - default: - break; - } - - if (type != UPB_TYPE_DOUBLE && type != UPB_TYPE_FLOAT && is_quoted) { - /* Quoted numbers for integer types are not allowed to be in double form. */ - return false; - } - - if (len == strlen("Infinity") && strcmp(buf, "Infinity") == 0) { - /* C89 does not have an INFINITY macro. */ - val = inf; - } else if (len == strlen("-Infinity") && strcmp(buf, "-Infinity") == 0) { - val = -inf; - } else { - val = strtod(buf, &end); - if (errno == ERANGE || end != bufend) { - return false; - } - } - - switch (type) { -#define CASE(capitaltype, smalltype, ctype, min, max) \ - case UPB_TYPE_ ## capitaltype: { \ - if (modf(val, &dummy) != 0 || val > max || val < min) { \ - return false; \ - } else { \ - upb_sink_put ## smalltype(p->top->sink, parser_getsel(p), \ - (ctype)val); \ - return true; \ - } \ - break; \ - } - case UPB_TYPE_ENUM: - CASE(INT32, int32, int32_t, INT32_MIN, INT32_MAX); - CASE(INT64, int64, int64_t, INT64_MIN, INT64_MAX); - CASE(UINT32, uint32, uint32_t, 0, UINT32_MAX); - CASE(UINT64, uint64, uint64_t, 0, UINT64_MAX); -#undef CASE - - case UPB_TYPE_DOUBLE: - upb_sink_putdouble(p->top->sink, parser_getsel(p), val); - return true; - case UPB_TYPE_FLOAT: - if ((val > FLT_MAX || val < -FLT_MAX) && val != inf && val != -inf) { - return false; - } else { - upb_sink_putfloat(p->top->sink, parser_getsel(p), val); - return true; - } - default: - return false; - } -} - -static bool parse_number(upb_json_parser *p, bool is_quoted) { - size_t len; - const char *buf; - - /* strtol() and friends unfortunately do not support specifying the length of - * the input string, so we need to force a copy into a NULL-terminated buffer. */ - if (!multipart_text(p, "\0", 1, false)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - if (parse_number_from_buffer(p, buf, is_quoted)) { - multipart_end(p); - return true; - } else { - upb_status_seterrf(p->status, "error parsing number: %s", buf); - multipart_end(p); - return false; - } -} - -static bool parser_putbool(upb_json_parser *p, bool val) { - bool ok; - - if (p->top->f == NULL) { - return true; - } - - if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL) { - upb_status_seterrf(p->status, - "Boolean value specified for non-bool field: %s", - upb_fielddef_name(p->top->f)); - return false; - } - - ok = upb_sink_putbool(p->top->sink, parser_getsel(p), val); - UPB_ASSERT(ok); - - return true; -} - -static bool end_bool(upb_json_parser *p, bool val) { - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_BOOLVALUE)) { - start_wrapper_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_BOOLVALUE); - } else { - return false; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_BOOLVALUE)) { - if (!start_subobject(p)) { - return false; - } - start_wrapper_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_BOOLVALUE); - } - - if (p->top->is_unknown_field) { - return true; - } - - if (!parser_putbool(p, val)) { - return false; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_BOOLVALUE)) { - end_wrapper_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - return true; -} - -static bool end_null(upb_json_parser *p) { - const char *zero_ptr = "0"; - - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_NULLVALUE); - } else { - return true; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_NULLVALUE); - } else { - return true; - } - - /* Fill null_value field. */ - multipart_startaccum(p); - capture_begin(p, zero_ptr); - capture_end(p, zero_ptr + 1); - parse_number(p, false); - - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - - return true; -} - -static bool start_any_stringval(upb_json_parser *p) { - multipart_startaccum(p); - return true; -} - -static bool start_stringval(upb_json_parser *p) { - if (is_top_level(p)) { - if (is_string_wrapper_object(p) || - is_number_wrapper_object(p)) { - start_wrapper_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_FIELDMASK)) { - start_fieldmask_object(p); - return true; - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_msg(p, UPB_WELLKNOWN_DURATION)) { - start_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_STRINGVALUE); - } else { - return false; - } - } else if (does_string_wrapper_start(p) || - does_number_wrapper_start(p)) { - if (!start_subobject(p)) { - return false; - } - start_wrapper_object(p); - } else if (does_fieldmask_start(p)) { - if (!start_subobject(p)) { - return false; - } - start_fieldmask_object(p); - return true; - } else if (is_wellknown_field(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_field(p, UPB_WELLKNOWN_DURATION)) { - if (!start_subobject(p)) { - return false; - } - start_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_STRINGVALUE); - } - - if (p->top->f == NULL) { - multipart_startaccum(p); - return true; - } - - if (p->top->is_any) { - return start_any_stringval(p); - } - - if (upb_fielddef_isstring(p->top->f)) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - if (!check_stack(p)) return false; - - /* Start a new parser frame: parser frames correspond one-to-one with - * handler frames, and string events occur in a sub-frame. */ - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - inner->m = p->top->m; - inner->f = p->top->f; - p->top = inner; - - if (upb_fielddef_type(p->top->f) == UPB_TYPE_STRING) { - /* For STRING fields we push data directly to the handlers as it is - * parsed. We don't do this yet for BYTES fields, because our base64 - * decoder is not streaming. - * - * TODO(haberman): make base64 decoding streaming also. */ - multipart_start(p, getsel_for_handlertype(p, UPB_HANDLER_STRING)); - return true; - } else { - multipart_startaccum(p); - return true; - } - } else if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL && - upb_fielddef_type(p->top->f) != UPB_TYPE_MESSAGE) { - /* No need to push a frame -- numeric values in quotes remain in the - * current parser frame. These values must accmulate so we can convert - * them all at once at the end. */ - multipart_startaccum(p); - return true; - } else { - upb_status_seterrf(p->status, - "String specified for bool or submessage field: %s", - upb_fielddef_name(p->top->f)); - return false; - } -} - -static bool end_any_stringval(upb_json_parser *p) { - size_t len; - const char *buf = accumulate_getptr(p, &len); - - /* Set type_url */ - upb_selector_t sel; - upb_jsonparser_frame *inner; - if (!check_stack(p)) return false; - inner = p->top + 1; - - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); - upb_sink_putstring(inner->sink, sel, buf, len, NULL); - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(inner->sink, sel); - - multipart_end(p); - - /* Resolve type url */ - if (strncmp(buf, "type.googleapis.com/", 20) == 0 && len > 20) { - const upb_msgdef *payload_type = NULL; - buf += 20; - len -= 20; - - payload_type = upb_symtab_lookupmsg2(p->symtab, buf, len); - if (payload_type == NULL) { - upb_status_seterrf( - p->status, "Cannot find packed type: %.*s\n", (int)len, buf); - return false; - } - - json_parser_any_frame_set_payload_type(p, p->top->any_frame, payload_type); - - return true; - } else { - upb_status_seterrf( - p->status, "Invalid type url: %.*s\n", (int)len, buf); - return false; - } -} - -static bool end_stringval_nontop(upb_json_parser *p) { - bool ok = true; - - if (is_wellknown_msg(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_msg(p, UPB_WELLKNOWN_DURATION)) { - multipart_end(p); - return true; - } - - if (p->top->f == NULL) { - multipart_end(p); - return true; - } - - if (p->top->is_any) { - return end_any_stringval(p); - } - - switch (upb_fielddef_type(p->top->f)) { - case UPB_TYPE_BYTES: - if (!base64_push(p, getsel_for_handlertype(p, UPB_HANDLER_STRING), - p->accumulated, p->accumulated_len)) { - return false; - } - /* Fall through. */ - - case UPB_TYPE_STRING: { - upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(p->top->sink, sel); - p->top--; - break; - } - - case UPB_TYPE_ENUM: { - /* Resolve enum symbolic name to integer value. */ - const upb_enumdef *enumdef = upb_fielddef_enumsubdef(p->top->f); - - size_t len; - const char *buf = accumulate_getptr(p, &len); - - int32_t int_val = 0; - ok = upb_enumdef_ntoi(enumdef, buf, len, &int_val); - - if (ok) { - upb_selector_t sel = parser_getsel(p); - upb_sink_putint32(p->top->sink, sel, int_val); - } else { - if (p->ignore_json_unknown) { - ok = true; - /* TODO(teboring): Should also clean this field. */ - } else { - upb_status_seterrf(p->status, "Enum value unknown: '%.*s'", len, buf); - } - } - - break; - } - - case UPB_TYPE_INT32: - case UPB_TYPE_INT64: - case UPB_TYPE_UINT32: - case UPB_TYPE_UINT64: - case UPB_TYPE_DOUBLE: - case UPB_TYPE_FLOAT: - ok = parse_number(p, true); - break; - - default: - UPB_ASSERT(false); - upb_status_seterrmsg(p->status, "Internal error in JSON decoder"); - ok = false; - break; - } - - multipart_end(p); - - return ok; -} - -static bool end_stringval(upb_json_parser *p) { - /* FieldMask's stringvals have been ended when handling them. Only need to - * close FieldMask here.*/ - if (does_fieldmask_end(p)) { - end_fieldmask_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (!end_stringval_nontop(p)) { - return false; - } - - if (does_string_wrapper_end(p) || - does_number_wrapper_end(p)) { - end_wrapper_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_msg(p, UPB_WELLKNOWN_DURATION) || - is_wellknown_msg(p, UPB_WELLKNOWN_FIELDMASK)) { - end_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - return true; -} - -static void start_duration_base(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_duration_base(upb_json_parser *p, const char *ptr) { - size_t len; - const char *buf; - char seconds_buf[14]; - char nanos_buf[12]; - char *end; - int64_t seconds = 0; - int32_t nanos = 0; - double val = 0.0; - const char *seconds_membername = "seconds"; - const char *nanos_membername = "nanos"; - size_t fraction_start; - - if (!capture_end(p, ptr)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - memset(seconds_buf, 0, 14); - memset(nanos_buf, 0, 12); - - /* Find out base end. The maximus duration is 315576000000, which cannot be - * represented by double without losing precision. Thus, we need to handle - * fraction and base separately. */ - for (fraction_start = 0; fraction_start < len && buf[fraction_start] != '.'; - fraction_start++); - - /* Parse base */ - memcpy(seconds_buf, buf, fraction_start); - seconds = strtol(seconds_buf, &end, 10); - if (errno == ERANGE || end != seconds_buf + fraction_start) { - upb_status_seterrf(p->status, "error parsing duration: %s", - seconds_buf); - return false; - } - - if (seconds > 315576000000) { - upb_status_seterrf(p->status, "error parsing duration: " - "maximum acceptable value is " - "315576000000"); - return false; - } - - if (seconds < -315576000000) { - upb_status_seterrf(p->status, "error parsing duration: " - "minimum acceptable value is " - "-315576000000"); - return false; - } - - /* Parse fraction */ - nanos_buf[0] = '0'; - memcpy(nanos_buf + 1, buf + fraction_start, len - fraction_start); - val = strtod(nanos_buf, &end); - if (errno == ERANGE || end != nanos_buf + len - fraction_start + 1) { - upb_status_seterrf(p->status, "error parsing duration: %s", - nanos_buf); - return false; - } - - nanos = val * 1000000000; - if (seconds < 0) nanos = -nanos; - - /* Clean up buffer */ - multipart_end(p); - - /* Set seconds */ - start_member(p); - capture_begin(p, seconds_membername); - capture_end(p, seconds_membername + 7); - end_membername(p); - upb_sink_putint64(p->top->sink, parser_getsel(p), seconds); - end_member(p); - - /* Set nanos */ - start_member(p); - capture_begin(p, nanos_membername); - capture_end(p, nanos_membername + 5); - end_membername(p); - upb_sink_putint32(p->top->sink, parser_getsel(p), nanos); - end_member(p); - - /* Continue previous arena */ - multipart_startaccum(p); - - return true; -} - -static int parse_timestamp_number(upb_json_parser *p) { - size_t len; - const char *buf; - int val; - - /* atoi() and friends unfortunately do not support specifying the length of - * the input string, so we need to force a copy into a NULL-terminated buffer. */ - multipart_text(p, "\0", 1, false); - - buf = accumulate_getptr(p, &len); - val = atoi(buf); - multipart_end(p); - multipart_startaccum(p); - - return val; -} - -static void start_year(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_year(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_year = parse_timestamp_number(p) - 1900; - return true; -} - -static void start_month(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_month(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_mon = parse_timestamp_number(p) - 1; - return true; -} - -static void start_day(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_day(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_mday = parse_timestamp_number(p); - return true; -} - -static void start_hour(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_hour(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_hour = parse_timestamp_number(p); - return true; -} - -static void start_minute(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_minute(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_min = parse_timestamp_number(p); - return true; -} - -static void start_second(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_second(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_sec = parse_timestamp_number(p); - return true; -} - -static void start_timestamp_base(upb_json_parser *p) { - memset(&p->tm, 0, sizeof(struct tm)); -} - -static void start_timestamp_fraction(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_timestamp_fraction(upb_json_parser *p, const char *ptr) { - size_t len; - const char *buf; - char nanos_buf[12]; - char *end; - double val = 0.0; - int32_t nanos; - const char *nanos_membername = "nanos"; - - memset(nanos_buf, 0, 12); - - if (!capture_end(p, ptr)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - if (len > 10) { - upb_status_seterrf(p->status, - "error parsing timestamp: at most 9-digit fraction."); - return false; - } - - /* Parse nanos */ - nanos_buf[0] = '0'; - memcpy(nanos_buf + 1, buf, len); - val = strtod(nanos_buf, &end); - - if (errno == ERANGE || end != nanos_buf + len + 1) { - upb_status_seterrf(p->status, "error parsing timestamp nanos: %s", - nanos_buf); - return false; - } - - nanos = val * 1000000000; - - /* Clean up previous environment */ - multipart_end(p); - - /* Set nanos */ - start_member(p); - capture_begin(p, nanos_membername); - capture_end(p, nanos_membername + 5); - end_membername(p); - upb_sink_putint32(p->top->sink, parser_getsel(p), nanos); - end_member(p); - - /* Continue previous environment */ - multipart_startaccum(p); - - return true; -} - -static void start_timestamp_zone(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -/* epoch_days(1970, 1, 1) == 1970-01-01 == 0. */ -static int epoch_days(int year, int month, int day) { - static const uint16_t month_yday[12] = {0, 31, 59, 90, 120, 151, - 181, 212, 243, 273, 304, 334}; - uint32_t year_adj = year + 4800; /* Ensure positive year, multiple of 400. */ - uint32_t febs = year_adj - (month <= 2 ? 1 : 0); /* Februaries since base. */ - uint32_t leap_days = 1 + (febs / 4) - (febs / 100) + (febs / 400); - uint32_t days = 365 * year_adj + leap_days + month_yday[month - 1] + day - 1; - return days - 2472692; /* Adjust to Unix epoch. */ -} - -static int64_t upb_timegm(const struct tm *tp) { - int64_t ret = epoch_days(tp->tm_year + 1900, tp->tm_mon + 1, tp->tm_mday); - ret = (ret * 24) + tp->tm_hour; - ret = (ret * 60) + tp->tm_min; - ret = (ret * 60) + tp->tm_sec; - return ret; -} - -static bool end_timestamp_zone(upb_json_parser *p, const char *ptr) { - size_t len; - const char *buf; - int hours; - int64_t seconds; - const char *seconds_membername = "seconds"; - - if (!capture_end(p, ptr)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - if (buf[0] != 'Z') { - if (sscanf(buf + 1, "%2d:00", &hours) != 1) { - upb_status_seterrf(p->status, "error parsing timestamp offset"); - return false; - } - - if (buf[0] == '+') { - hours = -hours; - } - - p->tm.tm_hour += hours; - } - - /* Normalize tm */ - seconds = upb_timegm(&p->tm); - - /* Check timestamp boundary */ - if (seconds < -62135596800) { - upb_status_seterrf(p->status, "error parsing timestamp: " - "minimum acceptable value is " - "0001-01-01T00:00:00Z"); - return false; - } - - /* Clean up previous environment */ - multipart_end(p); - - /* Set seconds */ - start_member(p); - capture_begin(p, seconds_membername); - capture_end(p, seconds_membername + 7); - end_membername(p); - upb_sink_putint64(p->top->sink, parser_getsel(p), seconds); - end_member(p); - - /* Continue previous environment */ - multipart_startaccum(p); - - return true; -} - -static void start_fieldmask_path_text(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_fieldmask_path_text(upb_json_parser *p, const char *ptr) { - return capture_end(p, ptr); -} - -static bool start_fieldmask_path(upb_json_parser *p) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - if (!check_stack(p)) return false; - - /* Start a new parser frame: parser frames correspond one-to-one with - * handler frames, and string events occur in a sub-frame. */ - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - inner->m = p->top->m; - inner->f = p->top->f; - p->top = inner; - - multipart_startaccum(p); - return true; -} - -static bool lower_camel_push( - upb_json_parser *p, upb_selector_t sel, const char *ptr, size_t len) { - const char *limit = ptr + len; - bool first = true; - for (;ptr < limit; ptr++) { - if (*ptr >= 'A' && *ptr <= 'Z' && !first) { - char lower = tolower(*ptr); - upb_sink_putstring(p->top->sink, sel, "_", 1, NULL); - upb_sink_putstring(p->top->sink, sel, &lower, 1, NULL); - } else { - upb_sink_putstring(p->top->sink, sel, ptr, 1, NULL); - } - first = false; - } - return true; -} - -static bool end_fieldmask_path(upb_json_parser *p) { - upb_selector_t sel; - - if (!lower_camel_push( - p, getsel_for_handlertype(p, UPB_HANDLER_STRING), - p->accumulated, p->accumulated_len)) { - return false; - } - - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(p->top->sink, sel); - p->top--; - - multipart_end(p); - return true; -} - -static void start_member(upb_json_parser *p) { - UPB_ASSERT(!p->top->f); - multipart_startaccum(p); -} - -/* Helper: invoked during parse_mapentry() to emit the mapentry message's key - * field based on the current contents of the accumulate buffer. */ -static bool parse_mapentry_key(upb_json_parser *p) { - - size_t len; - const char *buf = accumulate_getptr(p, &len); - - /* Emit the key field. We do a bit of ad-hoc parsing here because the - * parser state machine has already decided that this is a string field - * name, and we are reinterpreting it as some arbitrary key type. In - * particular, integer and bool keys are quoted, so we need to parse the - * quoted string contents here. */ - - p->top->f = upb_msgdef_itof(p->top->m, UPB_MAPENTRY_KEY); - if (p->top->f == NULL) { - upb_status_seterrmsg(p->status, "mapentry message has no key"); - return false; - } - switch (upb_fielddef_type(p->top->f)) { - case UPB_TYPE_INT32: - case UPB_TYPE_INT64: - case UPB_TYPE_UINT32: - case UPB_TYPE_UINT64: - /* Invoke end_number. The accum buffer has the number's text already. */ - if (!parse_number(p, true)) { - return false; - } - break; - case UPB_TYPE_BOOL: - if (len == 4 && !strncmp(buf, "true", 4)) { - if (!parser_putbool(p, true)) { - return false; - } - } else if (len == 5 && !strncmp(buf, "false", 5)) { - if (!parser_putbool(p, false)) { - return false; - } - } else { - upb_status_seterrmsg(p->status, - "Map bool key not 'true' or 'false'"); - return false; - } - multipart_end(p); - break; - case UPB_TYPE_STRING: - case UPB_TYPE_BYTES: { - upb_sink subsink; - upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, len, &subsink); - sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); - upb_sink_putstring(subsink, sel, buf, len, NULL); - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(subsink, sel); - multipart_end(p); - break; - } - default: - upb_status_seterrmsg(p->status, "Invalid field type for map key"); - return false; - } - - return true; -} - -/* Helper: emit one map entry (as a submessage in the map field sequence). This - * is invoked from end_membername(), at the end of the map entry's key string, - * with the map key in the accumulate buffer. It parses the key from that - * buffer, emits the handler calls to start the mapentry submessage (setting up - * its subframe in the process), and sets up state in the subframe so that the - * value parser (invoked next) will emit the mapentry's value field and then - * end the mapentry message. */ - -static bool handle_mapentry(upb_json_parser *p) { - const upb_fielddef *mapfield; - const upb_msgdef *mapentrymsg; - upb_jsonparser_frame *inner; - upb_selector_t sel; - - /* Map entry: p->top->sink is the seq frame, so we need to start a frame - * for the mapentry itself, and then set |f| in that frame so that the map - * value field is parsed, and also set a flag to end the frame after the - * map-entry value is parsed. */ - if (!check_stack(p)) return false; - - mapfield = p->top->mapfield; - mapentrymsg = upb_fielddef_msgsubdef(mapfield); - - inner = start_jsonparser_frame(p); - p->top->f = mapfield; - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSUBMSG); - upb_sink_startsubmsg(p->top->sink, sel, &inner->sink); - inner->m = mapentrymsg; - inner->mapfield = mapfield; - - /* Don't set this to true *yet* -- we reuse parsing handlers below to push - * the key field value to the sink, and these handlers will pop the frame - * if they see is_mapentry (when invoked by the parser state machine, they - * would have just seen the map-entry value, not key). */ - inner->is_mapentry = false; - p->top = inner; - - /* send STARTMSG in submsg frame. */ - upb_sink_startmsg(p->top->sink); - - parse_mapentry_key(p); - - /* Set up the value field to receive the map-entry value. */ - p->top->f = upb_msgdef_itof(p->top->m, UPB_MAPENTRY_VALUE); - p->top->is_mapentry = true; /* set up to pop frame after value is parsed. */ - p->top->mapfield = mapfield; - if (p->top->f == NULL) { - upb_status_seterrmsg(p->status, "mapentry message has no value"); - return false; - } - - return true; -} - -static bool end_membername(upb_json_parser *p) { - UPB_ASSERT(!p->top->f); - - if (!p->top->m) { - p->top->is_unknown_field = true; - multipart_end(p); - return true; - } - - if (p->top->is_any) { - return end_any_membername(p); - } else if (p->top->is_map) { - return handle_mapentry(p); - } else { - size_t len; - const char *buf = accumulate_getptr(p, &len); - upb_value v; - - if (upb_strtable_lookup2(p->top->name_table, buf, len, &v)) { - p->top->f = upb_value_getconstptr(v); - multipart_end(p); - - return true; - } else if (p->ignore_json_unknown) { - p->top->is_unknown_field = true; - multipart_end(p); - return true; - } else { - upb_status_seterrf(p->status, "No such field: %.*s\n", (int)len, buf); - return false; - } - } -} - -static bool end_any_membername(upb_json_parser *p) { - size_t len; - const char *buf = accumulate_getptr(p, &len); - upb_value v; - - if (len == 5 && strncmp(buf, "@type", len) == 0) { - upb_strtable_lookup2(p->top->name_table, "type_url", 8, &v); - p->top->f = upb_value_getconstptr(v); - multipart_end(p); - return true; - } else { - p->top->is_unknown_field = true; - multipart_end(p); - return true; - } -} - -static void end_member(upb_json_parser *p) { - /* If we just parsed a map-entry value, end that frame too. */ - if (p->top->is_mapentry) { - upb_selector_t sel; - bool ok; - const upb_fielddef *mapfield; - - UPB_ASSERT(p->top > p->stack); - /* send ENDMSG on submsg. */ - upb_sink_endmsg(p->top->sink, p->status); - mapfield = p->top->mapfield; - - /* send ENDSUBMSG in repeated-field-of-mapentries frame. */ - p->top--; - ok = upb_handlers_getselector(mapfield, UPB_HANDLER_ENDSUBMSG, &sel); - UPB_ASSUME(ok); - upb_sink_endsubmsg(p->top->sink, (p->top + 1)->sink, sel); - } - - p->top->f = NULL; - p->top->is_unknown_field = false; -} - -static void start_any_member(upb_json_parser *p, const char *ptr) { - start_member(p); - json_parser_any_frame_set_after_type_url_start_once(p->top->any_frame, ptr); -} - -static void end_any_member(upb_json_parser *p, const char *ptr) { - json_parser_any_frame_set_before_type_url_end(p->top->any_frame, ptr); - end_member(p); -} - -static bool start_subobject(upb_json_parser *p) { - if (p->top->is_unknown_field) { - if (!check_stack(p)) return false; - - p->top = start_jsonparser_frame(p); - return true; - } - - if (upb_fielddef_ismap(p->top->f)) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - /* Beginning of a map. Start a new parser frame in a repeated-field - * context. */ - if (!check_stack(p)) return false; - - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSEQ); - upb_sink_startseq(p->top->sink, sel, &inner->sink); - inner->m = upb_fielddef_msgsubdef(p->top->f); - inner->mapfield = p->top->f; - inner->is_map = true; - p->top = inner; - - return true; - } else if (upb_fielddef_issubmsg(p->top->f)) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - /* Beginning of a subobject. Start a new parser frame in the submsg - * context. */ - if (!check_stack(p)) return false; - - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSUBMSG); - upb_sink_startsubmsg(p->top->sink, sel, &inner->sink); - inner->m = upb_fielddef_msgsubdef(p->top->f); - set_name_table(p, inner); - p->top = inner; - - if (is_wellknown_msg(p, UPB_WELLKNOWN_ANY)) { - p->top->is_any = true; - p->top->any_frame = json_parser_any_frame_new(p); - } else { - p->top->is_any = false; - p->top->any_frame = NULL; - } - - return true; - } else { - upb_status_seterrf(p->status, - "Object specified for non-message/group field: %s", - upb_fielddef_name(p->top->f)); - return false; - } -} - -static bool start_subobject_full(upb_json_parser *p) { - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_STRUCTVALUE); - if (!start_subobject(p)) return false; - start_structvalue_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_STRUCT)) { - start_structvalue_object(p); - } else { - return true; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_STRUCT)) { - if (!start_subobject(p)) return false; - start_structvalue_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) return false; - start_value_object(p, VALUE_STRUCTVALUE); - if (!start_subobject(p)) return false; - start_structvalue_object(p); - } - - return start_subobject(p); -} - -static void end_subobject(upb_json_parser *p) { - if (is_top_level(p)) { - return; - } - - if (p->top->is_map) { - upb_selector_t sel; - p->top--; - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSEQ); - upb_sink_endseq(p->top->sink, sel); - } else { - upb_selector_t sel; - bool is_unknown = p->top->m == NULL; - p->top--; - if (!is_unknown) { - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSUBMSG); - upb_sink_endsubmsg(p->top->sink, (p->top + 1)->sink, sel); - } - } -} - -static void end_subobject_full(upb_json_parser *p) { - end_subobject(p); - - if (is_wellknown_msg(p, UPB_WELLKNOWN_STRUCT)) { - end_structvalue_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } -} - -static bool start_array(upb_json_parser *p) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_LISTVALUE); - if (!start_subobject(p)) return false; - start_listvalue_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_LISTVALUE)) { - start_listvalue_object(p); - } else { - return false; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_LISTVALUE) && - (!upb_fielddef_isseq(p->top->f) || - p->top->is_repeated)) { - if (!start_subobject(p)) return false; - start_listvalue_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE) && - (!upb_fielddef_isseq(p->top->f) || - p->top->is_repeated)) { - if (!start_subobject(p)) return false; - start_value_object(p, VALUE_LISTVALUE); - if (!start_subobject(p)) return false; - start_listvalue_object(p); - } - - if (p->top->is_unknown_field) { - inner = start_jsonparser_frame(p); - inner->is_unknown_field = true; - p->top = inner; - - return true; - } - - if (!upb_fielddef_isseq(p->top->f)) { - upb_status_seterrf(p->status, - "Array specified for non-repeated field: %s", - upb_fielddef_name(p->top->f)); - return false; - } - - if (!check_stack(p)) return false; - - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSEQ); - upb_sink_startseq(p->top->sink, sel, &inner->sink); - inner->m = p->top->m; - inner->f = p->top->f; - inner->is_repeated = true; - p->top = inner; - - return true; -} - -static void end_array(upb_json_parser *p) { - upb_selector_t sel; - - UPB_ASSERT(p->top > p->stack); - - p->top--; - - if (p->top->is_unknown_field) { - return; - } - - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSEQ); - upb_sink_endseq(p->top->sink, sel); - - if (is_wellknown_msg(p, UPB_WELLKNOWN_LISTVALUE)) { - end_listvalue_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } -} - -static void start_object(upb_json_parser *p) { - if (!p->top->is_map && p->top->m != NULL) { - upb_sink_startmsg(p->top->sink); - } -} - -static void end_object(upb_json_parser *p) { - if (!p->top->is_map && p->top->m != NULL) { - upb_sink_endmsg(p->top->sink, p->status); - } -} - -static void start_any_object(upb_json_parser *p, const char *ptr) { - start_object(p); - p->top->any_frame->before_type_url_start = ptr; - p->top->any_frame->before_type_url_end = ptr; -} - -static bool end_any_object(upb_json_parser *p, const char *ptr) { - const char *value_membername = "value"; - bool is_well_known_packed = false; - const char *packed_end = ptr + 1; - upb_selector_t sel; - upb_jsonparser_frame *inner; - - if (json_parser_any_frame_has_value(p->top->any_frame) && - !json_parser_any_frame_has_type_url(p->top->any_frame)) { - upb_status_seterrmsg(p->status, "No valid type url"); - return false; - } - - /* Well known types data is represented as value field. */ - if (upb_msgdef_wellknowntype(p->top->any_frame->parser->top->m) != - UPB_WELLKNOWN_UNSPECIFIED) { - is_well_known_packed = true; - - if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame)) { - p->top->any_frame->before_type_url_start = - memchr(p->top->any_frame->before_type_url_start, ':', - p->top->any_frame->before_type_url_end - - p->top->any_frame->before_type_url_start); - if (p->top->any_frame->before_type_url_start == NULL) { - upb_status_seterrmsg(p->status, "invalid data for well known type."); - return false; - } - p->top->any_frame->before_type_url_start++; - } - - if (json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) { - p->top->any_frame->after_type_url_start = - memchr(p->top->any_frame->after_type_url_start, ':', - (ptr + 1) - - p->top->any_frame->after_type_url_start); - if (p->top->any_frame->after_type_url_start == NULL) { - upb_status_seterrmsg(p->status, "Invalid data for well known type."); - return false; - } - p->top->any_frame->after_type_url_start++; - packed_end = ptr; - } - } - - if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame)) { - if (!parse(p->top->any_frame->parser, NULL, - p->top->any_frame->before_type_url_start, - p->top->any_frame->before_type_url_end - - p->top->any_frame->before_type_url_start, NULL)) { - return false; - } - } else { - if (!is_well_known_packed) { - if (!parse(p->top->any_frame->parser, NULL, "{", 1, NULL)) { - return false; - } - } - } - - if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame) && - json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) { - if (!parse(p->top->any_frame->parser, NULL, ",", 1, NULL)) { - return false; - } - } - - if (json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) { - if (!parse(p->top->any_frame->parser, NULL, - p->top->any_frame->after_type_url_start, - packed_end - p->top->any_frame->after_type_url_start, NULL)) { - return false; - } - } else { - if (!is_well_known_packed) { - if (!parse(p->top->any_frame->parser, NULL, "}", 1, NULL)) { - return false; - } - } - } - - if (!end(p->top->any_frame->parser, NULL)) { - return false; - } - - p->top->is_any = false; - - /* Set value */ - start_member(p); - capture_begin(p, value_membername); - capture_end(p, value_membername + 5); - end_membername(p); - - if (!check_stack(p)) return false; - inner = p->top + 1; - - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); - upb_sink_putstring(inner->sink, sel, p->top->any_frame->stringsink.ptr, - p->top->any_frame->stringsink.len, NULL); - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(inner->sink, sel); - - end_member(p); - - end_object(p); - - /* Deallocate any parse frame. */ - json_parser_any_frame_free(p->top->any_frame); - - return true; -} - -static bool is_string_wrapper(const upb_msgdef *m) { - upb_wellknowntype_t type = upb_msgdef_wellknowntype(m); - return type == UPB_WELLKNOWN_STRINGVALUE || - type == UPB_WELLKNOWN_BYTESVALUE; -} - -static bool is_fieldmask(const upb_msgdef *m) { - upb_wellknowntype_t type = upb_msgdef_wellknowntype(m); - return type == UPB_WELLKNOWN_FIELDMASK; -} - -static void start_fieldmask_object(upb_json_parser *p) { - const char *membername = "paths"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + 5); - end_membername(p); - - start_array(p); -} - -static void end_fieldmask_object(upb_json_parser *p) { - end_array(p); - end_member(p); - end_object(p); -} - -static void start_wrapper_object(upb_json_parser *p) { - const char *membername = "value"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + 5); - end_membername(p); -} - -static void end_wrapper_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static void start_value_object(upb_json_parser *p, int value_type) { - const char *nullmember = "null_value"; - const char *numbermember = "number_value"; - const char *stringmember = "string_value"; - const char *boolmember = "bool_value"; - const char *structmember = "struct_value"; - const char *listmember = "list_value"; - const char *membername = ""; - - switch (value_type) { - case VALUE_NULLVALUE: - membername = nullmember; - break; - case VALUE_NUMBERVALUE: - membername = numbermember; - break; - case VALUE_STRINGVALUE: - membername = stringmember; - break; - case VALUE_BOOLVALUE: - membername = boolmember; - break; - case VALUE_STRUCTVALUE: - membername = structmember; - break; - case VALUE_LISTVALUE: - membername = listmember; - break; - } - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + strlen(membername)); - end_membername(p); -} - -static void end_value_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static void start_listvalue_object(upb_json_parser *p) { - const char *membername = "values"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + strlen(membername)); - end_membername(p); -} - -static void end_listvalue_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static void start_structvalue_object(upb_json_parser *p) { - const char *membername = "fields"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + strlen(membername)); - end_membername(p); -} - -static void end_structvalue_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static bool is_top_level(upb_json_parser *p) { - return p->top == p->stack && p->top->f == NULL && !p->top->is_unknown_field; -} - -static bool is_wellknown_msg(upb_json_parser *p, upb_wellknowntype_t type) { - return p->top->m != NULL && upb_msgdef_wellknowntype(p->top->m) == type; -} - -static bool is_wellknown_field(upb_json_parser *p, upb_wellknowntype_t type) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - (upb_msgdef_wellknowntype(upb_fielddef_msgsubdef(p->top->f)) - == type); -} - -static bool does_number_wrapper_start(upb_json_parser *p) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - upb_msgdef_isnumberwrapper(upb_fielddef_msgsubdef(p->top->f)); -} - -static bool does_number_wrapper_end(upb_json_parser *p) { - return p->top->m != NULL && upb_msgdef_isnumberwrapper(p->top->m); -} - -static bool is_number_wrapper_object(upb_json_parser *p) { - return p->top->m != NULL && upb_msgdef_isnumberwrapper(p->top->m); -} - -static bool does_string_wrapper_start(upb_json_parser *p) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - is_string_wrapper(upb_fielddef_msgsubdef(p->top->f)); -} - -static bool does_string_wrapper_end(upb_json_parser *p) { - return p->top->m != NULL && is_string_wrapper(p->top->m); -} - -static bool is_string_wrapper_object(upb_json_parser *p) { - return p->top->m != NULL && is_string_wrapper(p->top->m); -} - -static bool does_fieldmask_start(upb_json_parser *p) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - is_fieldmask(upb_fielddef_msgsubdef(p->top->f)); -} - -static bool does_fieldmask_end(upb_json_parser *p) { - return p->top->m != NULL && is_fieldmask(p->top->m); -} - -#define CHECK_RETURN_TOP(x) if (!(x)) goto error - - -/* The actual parser **********************************************************/ - -/* What follows is the Ragel parser itself. The language is specified in Ragel - * and the actions call our C functions above. - * - * Ragel has an extensive set of functionality, and we use only a small part of - * it. There are many action types but we only use a few: - * - * ">" -- transition into a machine - * "%" -- transition out of a machine - * "@" -- transition into a final state of a machine. - * - * "@" transitions are tricky because a machine can transition into a final - * state repeatedly. But in some cases we know this can't happen, for example - * a string which is delimited by a final '"' can only transition into its - * final state once, when the closing '"' is seen. */ - - -#line 2784 "upb/json/parser.rl" - - - -#line 2587 "upb/json/parser.c" -static const char _json_actions[] = { - 0, 1, 0, 1, 1, 1, 3, 1, - 4, 1, 6, 1, 7, 1, 8, 1, - 9, 1, 11, 1, 12, 1, 13, 1, - 14, 1, 15, 1, 16, 1, 17, 1, - 18, 1, 19, 1, 20, 1, 22, 1, - 23, 1, 24, 1, 35, 1, 37, 1, - 39, 1, 40, 1, 42, 1, 43, 1, - 44, 1, 46, 1, 48, 1, 49, 1, - 50, 1, 51, 1, 53, 1, 54, 2, - 4, 9, 2, 5, 6, 2, 7, 3, - 2, 7, 9, 2, 21, 26, 2, 25, - 10, 2, 27, 28, 2, 29, 30, 2, - 32, 34, 2, 33, 31, 2, 38, 36, - 2, 40, 42, 2, 45, 2, 2, 46, - 54, 2, 47, 36, 2, 49, 54, 2, - 50, 54, 2, 51, 54, 2, 52, 41, - 2, 53, 54, 3, 32, 34, 35, 4, - 21, 26, 27, 28 -}; - -static const short _json_key_offsets[] = { - 0, 0, 12, 13, 18, 23, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, - 38, 43, 44, 48, 53, 58, 63, 67, - 71, 74, 77, 79, 83, 87, 89, 91, - 96, 98, 100, 109, 115, 121, 127, 133, - 135, 139, 142, 144, 146, 149, 150, 154, - 156, 158, 160, 162, 163, 165, 167, 168, - 170, 172, 173, 175, 177, 178, 180, 182, - 183, 185, 187, 191, 193, 195, 196, 197, - 198, 199, 201, 206, 208, 210, 212, 221, - 222, 222, 222, 227, 232, 237, 238, 239, - 240, 241, 241, 242, 243, 244, 244, 245, - 246, 247, 247, 252, 253, 257, 262, 267, - 272, 276, 276, 279, 282, 285, 288, 291, - 294, 294, 294, 294, 294, 294 -}; - -static const char _json_trans_keys[] = { - 32, 34, 45, 91, 102, 110, 116, 123, - 9, 13, 48, 57, 34, 32, 93, 125, - 9, 13, 32, 44, 93, 9, 13, 32, - 93, 125, 9, 13, 97, 108, 115, 101, - 117, 108, 108, 114, 117, 101, 32, 34, - 125, 9, 13, 34, 32, 58, 9, 13, - 32, 93, 125, 9, 13, 32, 44, 125, - 9, 13, 32, 44, 125, 9, 13, 32, - 34, 9, 13, 45, 48, 49, 57, 48, - 49, 57, 46, 69, 101, 48, 57, 69, - 101, 48, 57, 43, 45, 48, 57, 48, - 57, 48, 57, 46, 69, 101, 48, 57, - 34, 92, 34, 92, 34, 47, 92, 98, - 102, 110, 114, 116, 117, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 34, 92, 45, - 48, 49, 57, 48, 49, 57, 46, 115, - 48, 57, 115, 48, 57, 34, 46, 115, - 48, 57, 48, 57, 48, 57, 48, 57, - 48, 57, 45, 48, 57, 48, 57, 45, - 48, 57, 48, 57, 84, 48, 57, 48, - 57, 58, 48, 57, 48, 57, 58, 48, - 57, 48, 57, 43, 45, 46, 90, 48, - 57, 48, 57, 58, 48, 48, 34, 48, - 57, 43, 45, 90, 48, 57, 34, 44, - 34, 44, 34, 44, 34, 45, 91, 102, - 110, 116, 123, 48, 57, 34, 32, 93, - 125, 9, 13, 32, 44, 93, 9, 13, - 32, 93, 125, 9, 13, 97, 108, 115, - 101, 117, 108, 108, 114, 117, 101, 32, - 34, 125, 9, 13, 34, 32, 58, 9, - 13, 32, 93, 125, 9, 13, 32, 44, - 125, 9, 13, 32, 44, 125, 9, 13, - 32, 34, 9, 13, 32, 9, 13, 32, - 9, 13, 32, 9, 13, 32, 9, 13, - 32, 9, 13, 32, 9, 13, 0 -}; - -static const char _json_single_lengths[] = { - 0, 8, 1, 3, 3, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 2, 3, 3, 3, 2, 2, - 1, 3, 0, 2, 2, 0, 0, 3, - 2, 2, 9, 0, 0, 0, 0, 2, - 2, 1, 2, 0, 1, 1, 2, 0, - 0, 0, 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, 0, 1, - 0, 0, 4, 0, 0, 1, 1, 1, - 1, 0, 3, 2, 2, 2, 7, 1, - 0, 0, 3, 3, 3, 1, 1, 1, - 1, 0, 1, 1, 1, 0, 1, 1, - 1, 0, 3, 1, 2, 3, 3, 3, - 2, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0 -}; - -static const char _json_range_lengths[] = { - 0, 2, 0, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 3, 3, 3, 3, 0, - 1, 1, 0, 1, 1, 0, 1, 1, - 1, 1, 1, 0, 1, 1, 0, 1, - 1, 0, 1, 1, 0, 1, 1, 0, - 1, 1, 0, 1, 1, 0, 0, 0, - 0, 1, 1, 0, 0, 0, 1, 0, - 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0 -}; - -static const short _json_index_offsets[] = { - 0, 0, 11, 13, 18, 23, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 53, 55, 59, 64, 69, 74, 78, - 82, 85, 89, 91, 95, 99, 101, 103, - 108, 111, 114, 124, 128, 132, 136, 140, - 143, 147, 150, 153, 155, 158, 160, 164, - 166, 168, 170, 172, 174, 176, 178, 180, - 182, 184, 186, 188, 190, 192, 194, 196, - 198, 200, 202, 207, 209, 211, 213, 215, - 217, 219, 221, 226, 229, 232, 235, 244, - 246, 247, 248, 253, 258, 263, 265, 267, - 269, 271, 272, 274, 276, 278, 279, 281, - 283, 285, 286, 291, 293, 297, 302, 307, - 312, 316, 317, 320, 323, 326, 329, 332, - 335, 336, 337, 338, 339, 340 -}; - -static const unsigned char _json_indicies[] = { - 0, 2, 3, 4, 5, 6, 7, 8, - 0, 3, 1, 9, 1, 11, 12, 1, - 11, 10, 13, 14, 12, 13, 1, 14, - 1, 1, 14, 10, 15, 1, 16, 1, - 17, 1, 18, 1, 19, 1, 20, 1, - 21, 1, 22, 1, 23, 1, 24, 1, - 25, 26, 27, 25, 1, 28, 1, 29, - 30, 29, 1, 30, 1, 1, 30, 31, - 32, 33, 34, 32, 1, 35, 36, 27, - 35, 1, 36, 26, 36, 1, 37, 38, - 39, 1, 38, 39, 1, 41, 42, 42, - 40, 43, 1, 42, 42, 43, 40, 44, - 44, 45, 1, 45, 1, 45, 40, 41, - 42, 42, 39, 40, 47, 48, 46, 50, - 51, 49, 52, 52, 52, 52, 52, 52, - 52, 52, 53, 1, 54, 54, 54, 1, - 55, 55, 55, 1, 56, 56, 56, 1, - 57, 57, 57, 1, 59, 60, 58, 61, - 62, 63, 1, 64, 65, 1, 66, 67, - 1, 68, 1, 67, 68, 1, 69, 1, - 66, 67, 65, 1, 70, 1, 71, 1, - 72, 1, 73, 1, 74, 1, 75, 1, - 76, 1, 77, 1, 78, 1, 79, 1, - 80, 1, 81, 1, 82, 1, 83, 1, - 84, 1, 85, 1, 86, 1, 87, 1, - 88, 1, 89, 89, 90, 91, 1, 92, - 1, 93, 1, 94, 1, 95, 1, 96, - 1, 97, 1, 98, 1, 99, 99, 100, - 98, 1, 102, 1, 101, 104, 105, 103, - 1, 1, 101, 106, 107, 108, 109, 110, - 111, 112, 107, 1, 113, 1, 114, 115, - 117, 118, 1, 117, 116, 119, 120, 118, - 119, 1, 120, 1, 1, 120, 116, 121, - 1, 122, 1, 123, 1, 124, 1, 125, - 126, 1, 127, 1, 128, 1, 129, 130, - 1, 131, 1, 132, 1, 133, 134, 135, - 136, 134, 1, 137, 1, 138, 139, 138, - 1, 139, 1, 1, 139, 140, 141, 142, - 143, 141, 1, 144, 145, 136, 144, 1, - 145, 135, 145, 1, 146, 147, 147, 1, - 148, 148, 1, 149, 149, 1, 150, 150, - 1, 151, 151, 1, 152, 152, 1, 1, - 1, 1, 1, 1, 1, 0 -}; - -static const char _json_trans_targs[] = { - 1, 0, 2, 107, 3, 6, 10, 13, - 16, 106, 4, 3, 106, 4, 5, 7, - 8, 9, 108, 11, 12, 109, 14, 15, - 110, 16, 17, 111, 18, 18, 19, 20, - 21, 22, 111, 21, 22, 24, 25, 31, - 112, 26, 28, 27, 29, 30, 33, 113, - 34, 33, 113, 34, 32, 35, 36, 37, - 38, 39, 33, 113, 34, 41, 42, 46, - 42, 46, 43, 45, 44, 114, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 73, 72, 68, 69, 70, 71, - 72, 115, 74, 67, 72, 76, 116, 76, - 116, 77, 79, 81, 82, 85, 90, 94, - 98, 80, 117, 117, 83, 82, 80, 83, - 84, 86, 87, 88, 89, 117, 91, 92, - 93, 117, 95, 96, 97, 117, 98, 99, - 105, 100, 100, 101, 102, 103, 104, 105, - 103, 104, 117, 106, 106, 106, 106, 106, - 106 -}; - -static const unsigned char _json_trans_actions[] = { - 0, 0, 113, 107, 53, 0, 0, 0, - 125, 59, 45, 0, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 51, 47, 0, 0, 45, - 49, 49, 104, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 5, 15, - 0, 0, 71, 7, 13, 0, 74, 9, - 9, 9, 77, 80, 11, 37, 37, 37, - 0, 0, 0, 39, 0, 41, 86, 0, - 0, 0, 17, 19, 0, 21, 23, 0, - 25, 27, 0, 29, 31, 0, 33, 35, - 0, 135, 83, 135, 0, 0, 0, 0, - 0, 92, 0, 89, 89, 98, 43, 0, - 131, 95, 113, 107, 53, 0, 0, 0, - 125, 59, 69, 110, 45, 0, 55, 0, - 0, 0, 0, 0, 0, 119, 0, 0, - 0, 122, 0, 0, 0, 116, 0, 101, - 51, 47, 0, 0, 45, 49, 49, 104, - 0, 0, 128, 0, 57, 63, 65, 61, - 67 -}; - -static const unsigned char _json_eof_actions[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 57, 63, 65, 61, 67, - 0, 0, 0, 0, 0, 0 -}; - -static const int json_start = 1; - -static const int json_en_number_machine = 23; -static const int json_en_string_machine = 32; -static const int json_en_duration_machine = 40; -static const int json_en_timestamp_machine = 47; -static const int json_en_fieldmask_machine = 75; -static const int json_en_value_machine = 78; -static const int json_en_main = 1; - - -#line 2787 "upb/json/parser.rl" - -size_t parse(void *closure, const void *hd, const char *buf, size_t size, - const upb_bufhandle *handle) { - upb_json_parser *parser = closure; - - /* Variables used by Ragel's generated code. */ - int cs = parser->current_state; - int *stack = parser->parser_stack; - int top = parser->parser_top; - - const char *p = buf; - const char *pe = buf + size; - const char *eof = &eof_ch; - - parser->handle = handle; - - UPB_UNUSED(hd); - UPB_UNUSED(handle); - - capture_resume(parser, buf); - - -#line 2865 "upb/json/parser.c" - { - int _klen; - unsigned int _trans; - const char *_acts; - unsigned int _nacts; - const char *_keys; - - if ( p == pe ) - goto _test_eof; - if ( cs == 0 ) - goto _out; -_resume: - _keys = _json_trans_keys + _json_key_offsets[cs]; - _trans = _json_index_offsets[cs]; - - _klen = _json_single_lengths[cs]; - if ( _klen > 0 ) { - const char *_lower = _keys; - const char *_mid; - const char *_upper = _keys + _klen - 1; - while (1) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( (*p) < *_mid ) - _upper = _mid - 1; - else if ( (*p) > *_mid ) - _lower = _mid + 1; - else { - _trans += (unsigned int)(_mid - _keys); - goto _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _json_range_lengths[cs]; - if ( _klen > 0 ) { - const char *_lower = _keys; - const char *_mid; - const char *_upper = _keys + (_klen<<1) - 2; - while (1) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( (*p) < _mid[0] ) - _upper = _mid - 2; - else if ( (*p) > _mid[1] ) - _lower = _mid + 2; - else { - _trans += (unsigned int)((_mid - _keys)>>1); - goto _match; - } - } - _trans += _klen; - } - -_match: - _trans = _json_indicies[_trans]; - cs = _json_trans_targs[_trans]; - - if ( _json_trans_actions[_trans] == 0 ) - goto _again; - - _acts = _json_actions + _json_trans_actions[_trans]; - _nacts = (unsigned int) *_acts++; - while ( _nacts-- > 0 ) - { - switch ( *_acts++ ) - { - case 1: -#line 2592 "upb/json/parser.rl" - { p--; {cs = stack[--top]; goto _again;} } - break; - case 2: -#line 2594 "upb/json/parser.rl" - { p--; {stack[top++] = cs; cs = 23;goto _again;} } - break; - case 3: -#line 2598 "upb/json/parser.rl" - { start_text(parser, p); } - break; - case 4: -#line 2599 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_text(parser, p)); } - break; - case 5: -#line 2605 "upb/json/parser.rl" - { start_hex(parser); } - break; - case 6: -#line 2606 "upb/json/parser.rl" - { hexdigit(parser, p); } - break; - case 7: -#line 2607 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_hex(parser)); } - break; - case 8: -#line 2613 "upb/json/parser.rl" - { CHECK_RETURN_TOP(escape(parser, p)); } - break; - case 9: -#line 2619 "upb/json/parser.rl" - { p--; {cs = stack[--top]; goto _again;} } - break; - case 10: -#line 2624 "upb/json/parser.rl" - { start_year(parser, p); } - break; - case 11: -#line 2625 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_year(parser, p)); } - break; - case 12: -#line 2629 "upb/json/parser.rl" - { start_month(parser, p); } - break; - case 13: -#line 2630 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_month(parser, p)); } - break; - case 14: -#line 2634 "upb/json/parser.rl" - { start_day(parser, p); } - break; - case 15: -#line 2635 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_day(parser, p)); } - break; - case 16: -#line 2639 "upb/json/parser.rl" - { start_hour(parser, p); } - break; - case 17: -#line 2640 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_hour(parser, p)); } - break; - case 18: -#line 2644 "upb/json/parser.rl" - { start_minute(parser, p); } - break; - case 19: -#line 2645 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_minute(parser, p)); } - break; - case 20: -#line 2649 "upb/json/parser.rl" - { start_second(parser, p); } - break; - case 21: -#line 2650 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_second(parser, p)); } - break; - case 22: -#line 2655 "upb/json/parser.rl" - { start_duration_base(parser, p); } - break; - case 23: -#line 2656 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_duration_base(parser, p)); } - break; - case 24: -#line 2658 "upb/json/parser.rl" - { p--; {cs = stack[--top]; goto _again;} } - break; - case 25: -#line 2663 "upb/json/parser.rl" - { start_timestamp_base(parser); } - break; - case 26: -#line 2665 "upb/json/parser.rl" - { start_timestamp_fraction(parser, p); } - break; - case 27: -#line 2666 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_timestamp_fraction(parser, p)); } - break; - case 28: -#line 2668 "upb/json/parser.rl" - { start_timestamp_zone(parser, p); } - break; - case 29: -#line 2669 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_timestamp_zone(parser, p)); } - break; - case 30: -#line 2671 "upb/json/parser.rl" - { p--; {cs = stack[--top]; goto _again;} } - break; - case 31: -#line 2676 "upb/json/parser.rl" - { start_fieldmask_path_text(parser, p); } - break; - case 32: -#line 2677 "upb/json/parser.rl" - { end_fieldmask_path_text(parser, p); } - break; - case 33: -#line 2682 "upb/json/parser.rl" - { start_fieldmask_path(parser); } - break; - case 34: -#line 2683 "upb/json/parser.rl" - { end_fieldmask_path(parser); } - break; - case 35: -#line 2689 "upb/json/parser.rl" - { p--; {cs = stack[--top]; goto _again;} } - break; - case 36: -#line 2694 "upb/json/parser.rl" - { - if (is_wellknown_msg(parser, UPB_WELLKNOWN_TIMESTAMP)) { - {stack[top++] = cs; cs = 47;goto _again;} - } else if (is_wellknown_msg(parser, UPB_WELLKNOWN_DURATION)) { - {stack[top++] = cs; cs = 40;goto _again;} - } else if (is_wellknown_msg(parser, UPB_WELLKNOWN_FIELDMASK)) { - {stack[top++] = cs; cs = 75;goto _again;} - } else { - {stack[top++] = cs; cs = 32;goto _again;} - } - } - break; - case 37: -#line 2707 "upb/json/parser.rl" - { p--; {stack[top++] = cs; cs = 78;goto _again;} } - break; - case 38: -#line 2712 "upb/json/parser.rl" - { - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - start_any_member(parser, p); - } else { - start_member(parser); - } - } - break; - case 39: -#line 2719 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_membername(parser)); } - break; - case 40: -#line 2722 "upb/json/parser.rl" - { - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - end_any_member(parser, p); - } else { - end_member(parser); - } - } - break; - case 41: -#line 2733 "upb/json/parser.rl" - { - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - start_any_object(parser, p); - } else { - start_object(parser); - } - } - break; - case 42: -#line 2742 "upb/json/parser.rl" - { - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - CHECK_RETURN_TOP(end_any_object(parser, p)); - } else { - end_object(parser); - } - } - break; - case 43: -#line 2754 "upb/json/parser.rl" - { CHECK_RETURN_TOP(start_array(parser)); } - break; - case 44: -#line 2758 "upb/json/parser.rl" - { end_array(parser); } - break; - case 45: -#line 2763 "upb/json/parser.rl" - { CHECK_RETURN_TOP(start_number(parser, p)); } - break; - case 46: -#line 2764 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_number(parser, p)); } - break; - case 47: -#line 2766 "upb/json/parser.rl" - { CHECK_RETURN_TOP(start_stringval(parser)); } - break; - case 48: -#line 2767 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_stringval(parser)); } - break; - case 49: -#line 2769 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_bool(parser, true)); } - break; - case 50: -#line 2771 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_bool(parser, false)); } - break; - case 51: -#line 2773 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_null(parser)); } - break; - case 52: -#line 2775 "upb/json/parser.rl" - { CHECK_RETURN_TOP(start_subobject_full(parser)); } - break; - case 53: -#line 2776 "upb/json/parser.rl" - { end_subobject_full(parser); } - break; - case 54: -#line 2781 "upb/json/parser.rl" - { p--; {cs = stack[--top]; goto _again;} } - break; -#line 3189 "upb/json/parser.c" - } - } - -_again: - if ( cs == 0 ) - goto _out; - if ( ++p != pe ) - goto _resume; - _test_eof: {} - if ( p == eof ) - { - const char *__acts = _json_actions + _json_eof_actions[cs]; - unsigned int __nacts = (unsigned int) *__acts++; - while ( __nacts-- > 0 ) { - switch ( *__acts++ ) { - case 0: -#line 2590 "upb/json/parser.rl" - { p--; {cs = stack[--top]; if ( p == pe ) - goto _test_eof; -goto _again;} } - break; - case 46: -#line 2764 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_number(parser, p)); } - break; - case 49: -#line 2769 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_bool(parser, true)); } - break; - case 50: -#line 2771 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_bool(parser, false)); } - break; - case 51: -#line 2773 "upb/json/parser.rl" - { CHECK_RETURN_TOP(end_null(parser)); } - break; - case 53: -#line 2776 "upb/json/parser.rl" - { end_subobject_full(parser); } - break; -#line 3231 "upb/json/parser.c" - } - } - } - - _out: {} - } - -#line 2809 "upb/json/parser.rl" - - if (p != pe) { - upb_status_seterrf(parser->status, "Parse error at '%.*s'\n", pe - p, p); - } else { - capture_suspend(parser, &p); - } - -error: - /* Save parsing state back to parser. */ - parser->current_state = cs; - parser->parser_top = top; - - return p - buf; -} - -static bool end(void *closure, const void *hd) { - upb_json_parser *parser = closure; - - /* Prevent compile warning on unused static constants. */ - UPB_UNUSED(json_start); - UPB_UNUSED(json_en_duration_machine); - UPB_UNUSED(json_en_fieldmask_machine); - UPB_UNUSED(json_en_number_machine); - UPB_UNUSED(json_en_string_machine); - UPB_UNUSED(json_en_timestamp_machine); - UPB_UNUSED(json_en_value_machine); - UPB_UNUSED(json_en_main); - - parse(parser, hd, &eof_ch, 0, NULL); - - return parser->current_state >= 106; -} - -static void json_parser_reset(upb_json_parser *p) { - int cs; - int top; - - p->top = p->stack; - init_frame(p->top); - - /* Emit Ragel initialization of the parser. */ - -#line 3282 "upb/json/parser.c" - { - cs = json_start; - top = 0; - } - -#line 2851 "upb/json/parser.rl" - p->current_state = cs; - p->parser_top = top; - accumulate_clear(p); - p->multipart_state = MULTIPART_INACTIVE; - p->capture = NULL; - p->accumulated = NULL; -} - -static upb_json_parsermethod *parsermethod_new(upb_json_codecache *c, - const upb_msgdef *md) { - int i, n; - upb_alloc *alloc = upb_arena_alloc(c->arena); - - upb_json_parsermethod *m = upb_malloc(alloc, sizeof(*m)); - - m->cache = c; - - upb_byteshandler_init(&m->input_handler_); - upb_byteshandler_setstring(&m->input_handler_, parse, m); - upb_byteshandler_setendstr(&m->input_handler_, end, m); - - upb_strtable_init2(&m->name_table, UPB_CTYPE_CONSTPTR, 4, alloc); - - /* Build name_table */ - - n = upb_msgdef_fieldcount(md); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - upb_value v = upb_value_constptr(f); - const char *name; - - /* Add an entry for the JSON name. */ - name = upb_fielddef_jsonname(f); - upb_strtable_insert3(&m->name_table, name, strlen(name), v, alloc); - - if (strcmp(name, upb_fielddef_name(f)) != 0) { - /* Since the JSON name is different from the regular field name, add an - * entry for the raw name (compliant proto3 JSON parsers must accept - * both). */ - const char *name = upb_fielddef_name(f); - upb_strtable_insert3(&m->name_table, name, strlen(name), v, alloc); - } - } - - return m; -} - -/* Public API *****************************************************************/ - -upb_json_parser *upb_json_parser_create(upb_arena *arena, - const upb_json_parsermethod *method, - const upb_symtab* symtab, - upb_sink output, - upb_status *status, - bool ignore_json_unknown) { - upb_json_parser *p = upb_arena_malloc(arena, sizeof(upb_json_parser)); - if (!p) return false; - - p->arena = arena; - p->method = method; - p->status = status; - p->limit = p->stack + UPB_JSON_MAX_DEPTH; - p->accumulate_buf = NULL; - p->accumulate_buf_size = 0; - upb_bytessink_reset(&p->input_, &method->input_handler_, p); - - json_parser_reset(p); - p->top->sink = output; - p->top->m = upb_handlers_msgdef(output.handlers); - if (is_wellknown_msg(p, UPB_WELLKNOWN_ANY)) { - p->top->is_any = true; - p->top->any_frame = json_parser_any_frame_new(p); - } else { - p->top->is_any = false; - p->top->any_frame = NULL; - } - set_name_table(p, p->top); - p->symtab = symtab; - - p->ignore_json_unknown = ignore_json_unknown; - - return p; -} - -upb_bytessink upb_json_parser_input(upb_json_parser *p) { - return p->input_; -} - -const upb_byteshandler *upb_json_parsermethod_inputhandler( - const upb_json_parsermethod *m) { - return &m->input_handler_; -} - -upb_json_codecache *upb_json_codecache_new(void) { - upb_alloc *alloc; - upb_json_codecache *c; - - c = upb_gmalloc(sizeof(*c)); - - c->arena = upb_arena_new(); - alloc = upb_arena_alloc(c->arena); - - upb_inttable_init2(&c->methods, UPB_CTYPE_CONSTPTR, alloc); - - return c; -} - -void upb_json_codecache_free(upb_json_codecache *c) { - upb_arena_free(c->arena); - upb_gfree(c); -} - -const upb_json_parsermethod *upb_json_codecache_get(upb_json_codecache *c, - const upb_msgdef *md) { - upb_json_parsermethod *m; - upb_value v; - int i, n; - upb_alloc *alloc = upb_arena_alloc(c->arena); - - if (upb_inttable_lookupptr(&c->methods, md, &v)) { - return upb_value_getconstptr(v); - } - - m = parsermethod_new(c, md); - v = upb_value_constptr(m); - - if (!m) return NULL; - if (!upb_inttable_insertptr2(&c->methods, md, v, alloc)) return NULL; - - /* Populate parser methods for all submessages, so the name tables will - * be available during parsing. */ - n = upb_msgdef_fieldcount(md); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - - if (upb_fielddef_issubmsg(f)) { - const upb_msgdef *subdef = upb_fielddef_msgsubdef(f); - const upb_json_parsermethod *sub_method = - upb_json_codecache_get(c, subdef); - - if (!sub_method) return NULL; - } - } - - return m; -} diff --git a/third_party/upb/examples/bazel/BUILD b/third_party/upb/examples/bazel/BUILD index 97119252e27..15b59af906f 100644 --- a/third_party/upb/examples/bazel/BUILD +++ b/third_party/upb/examples/bazel/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load("@rules_proto//proto:defs.bzl", "proto_library") load("@upb//bazel:upb_proto_library.bzl", "upb_proto_library") diff --git a/third_party/upb/examples/bazel/test_binary.c b/third_party/upb/examples/bazel/test_binary.c index 98617cf0202..a4277c3e404 100644 --- a/third_party/upb/examples/bazel/test_binary.c +++ b/third_party/upb/examples/bazel/test_binary.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include diff --git a/third_party/upb/kokoro/ubuntu/build.sh b/third_party/upb/kokoro/ubuntu/build.sh index c95ee88d462..64536f640b7 100644 --- a/third_party/upb/kokoro/ubuntu/build.sh +++ b/third_party/upb/kokoro/ubuntu/build.sh @@ -1,10 +1,35 @@ -#!/bin/bash +#!/bin/bash -eu +# +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. set -ex # Install the latest version of Bazel. if [ -x "$(command -v use_bazel.sh)" ]; then - use_bazel.sh latest + use_bazel.sh 4.1.0 fi # Verify/query CMake diff --git a/third_party/upb/tests/BUILD b/third_party/upb/tests/BUILD index ad12fce14ab..017c9b7f6c1 100644 --- a/third_party/upb/tests/BUILD +++ b/third_party/upb/tests/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "//bazel:build_defs.bzl", "UPB_DEFAULT_COPTS", @@ -24,12 +49,10 @@ cc_library( "testmain.cc", ], hdrs = [ - "test_util.h", "upb_test.h", ], copts = UPB_DEFAULT_CPPOPTS, deps = [ - "//:handlers", "//:port", "//:upb", ], @@ -76,32 +99,6 @@ upb_proto_library( deps = ["@com_google_protobuf//:test_messages_proto3_proto"], ) -proto_library( - name = "test_decoder_proto", - srcs = [ - "pb/test_decoder.proto", - ], -) - -upb_proto_reflection_library( - name = "test_decoder_upb_proto", - deps = [":test_decoder_proto"], -) - -cc_test( - name = "test_decoder", - srcs = ["pb/test_decoder.cc"], - copts = UPB_DEFAULT_CPPOPTS, - deps = [ - ":test_decoder_upb_proto", - ":upb_test", - "//:handlers", - "//:port", - "//:upb", - "//:upb_pb", - ], -) - proto_library( name = "test_cpp_proto", srcs = [ @@ -109,23 +106,28 @@ proto_library( ], ) -upb_proto_reflection_library( +upb_proto_library( name = "test_cpp_upb_proto", deps = ["test_cpp_proto"], ) +upb_proto_reflection_library( + name = "test_cpp_upb_proto_reflection", + deps = ["test_cpp_proto"], +) + cc_test( name = "test_cpp", srcs = ["test_cpp.cc"], copts = UPB_DEFAULT_CPPOPTS, deps = [ ":test_cpp_upb_proto", + ":test_cpp_upb_proto_reflection", ":upb_test", - "//:handlers", + "//:json", "//:port", "//:reflection", "//:upb", - "//:upb_pb", ], ) @@ -160,61 +162,6 @@ cc_binary( ], ) -# copybara:strip_for_google3_begin -cc_test( - name = "test_encoder", - srcs = ["pb/test_encoder.cc"], - copts = UPB_DEFAULT_CPPOPTS, - deps = [ - ":upb_test", - "//:descriptor_upb_proto", - "//:descriptor_upb_proto_reflection", - "//:upb", - "//:upb_pb", - ], -) - -proto_library( - name = "test_json_enum_from_separate", - srcs = ["json/enum_from_separate_file.proto"], - deps = [":test_json_proto"], -) - -proto_library( - name = "test_json_proto", - srcs = ["json/test.proto"], -) - -upb_proto_reflection_library( - name = "test_json_upb_proto_reflection", - deps = ["test_json_proto"], -) - -upb_proto_library( - name = "test_json_enum_from_separate_upb_proto", - deps = [":test_json_enum_from_separate"], -) - -upb_proto_library( - name = "test_json_upb_proto", - deps = [":test_json_proto"], -) - -cc_test( - name = "test_json", - srcs = [ - "json/test_json.cc", - ], - copts = UPB_DEFAULT_CPPOPTS, - deps = [ - ":test_json_upb_proto", - ":test_json_upb_proto_reflection", - ":upb_test", - "//:upb_json", - ], -) -# copybara:strip_end - upb_proto_library( name = "conformance_proto_upb", testonly = 1, diff --git a/third_party/upb/tests/bindings/lua/BUILD b/third_party/upb/tests/bindings/lua/BUILD index a065b1df55a..5a4f805178d 100644 --- a/third_party/upb/tests/bindings/lua/BUILD +++ b/third_party/upb/tests/bindings/lua/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "//upb/bindings/lua:lua_proto_library.bzl", "lua_proto_library", @@ -37,6 +62,7 @@ proto_library( name = "test_proto", testonly = 1, srcs = ["test.proto"], + deps = ["@com_google_protobuf//:timestamp_proto"], ) lua_proto_library( diff --git a/third_party/upb/tests/bindings/lua/main.c b/third_party/upb/tests/bindings/lua/main.c index 6e48ccaf24d..40f72a2a191 100644 --- a/third_party/upb/tests/bindings/lua/main.c +++ b/third_party/upb/tests/bindings/lua/main.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include #include diff --git a/third_party/upb/tests/bindings/lua/test.proto b/third_party/upb/tests/bindings/lua/test.proto index 6b453502089..4c3b64edb5b 100644 --- a/third_party/upb/tests/bindings/lua/test.proto +++ b/third_party/upb/tests/bindings/lua/test.proto @@ -1,6 +1,8 @@ syntax = "proto2"; +import "google/protobuf/timestamp.proto"; + package upb_test; message MapTest { @@ -26,3 +28,7 @@ message UnpackedTest { message TestLargeFieldNumber { optional int32 i32 = 456214797; } + +message TestTimestamp { + optional google.protobuf.Timestamp ts = 1; +} diff --git a/third_party/upb/tests/bindings/lua/test_upb.lua b/third_party/upb/tests/bindings/lua/test_upb.lua index e2d53450baf..98468970e8d 100644 --- a/third_party/upb/tests/bindings/lua/test_upb.lua +++ b/third_party/upb/tests/bindings/lua/test_upb.lua @@ -1,3 +1,31 @@ +--[[-------------------------------------------------------------------------- + + Copyright (c) 2009-2021, Google LLC + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Google LLC nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--]]-------------------------------------------------------------------------- local upb = require "lupb" local lunit = require "lunit" @@ -321,6 +349,16 @@ function test_msg_array() assert_error_match("array expected", function() msg.repeated_int32 = print end) end +function test_array_append() + local arr = upb.Array(upb.TYPE_INT32) + for i=1,200000 do + arr[i] = i + end + for i=1,200000 do + assert_equal(i, arr[i]) + end +end + function test_msg_submsg() --msg = test_messages_proto3.TestAllTypesProto3() msg = test_messages_proto3['TestAllTypesProto3']() @@ -679,6 +717,15 @@ function test_descriptor_error() assert_nil(symtab:lookup_msg("ABC")) end +function test_duplicate_filename_error() + local symtab = upb.SymbolTable() + local file = descriptor.FileDescriptorProto() + file.name = "test.proto" + symtab:add_file(upb.encode(file)) + -- Second add with the same filename fails. + assert_error(function () symtab:add_file(upb.encode(file)) end) +end + function test_encode_skipunknown() -- Test that upb.ENCODE_SKIPUNKNOWN does not encode unknown fields. local msg = test_messages_proto3.TestAllTypesProto3{ @@ -700,6 +747,17 @@ function test_json_emit_defaults() local json = upb.json_encode(msg, {upb.JSONENC_EMITDEFAULTS}) end +function test_json_locale() + local msg = test_messages_proto3.TestAllTypesProto3() + msg.optional_double = 1.1 + local original_locale = os.setlocale(nil) + os.setlocale("C") + local json = upb.json_encode(msg) + os.setlocale("de_DE.utf8") + assert_equal(json, upb.json_encode(msg)) + os.setlocale(original_locale) -- Restore. +end + function test_encode_depth_limit() local msg = test_messages_proto3.TestAllTypesProto3() msg.recursive_message = msg @@ -714,6 +772,11 @@ function test_large_field_number() assert_equal(msg.i32, msg2.i32) end +function test_timestamp_minutes() + local msg = upb.json_decode(upb_test.TestTimestamp, '{"ts": "2000-01-01T00:00:00-06:59"}') + assert_equal(msg.ts.seconds, 946684800 + ((6 * 60) + 59) * 60) +end + function test_gc() local top = test_messages_proto3.TestAllTypesProto3() local n = 100 diff --git a/third_party/upb/tests/conformance_upb.c b/third_party/upb/tests/conformance_upb.c index f444180b199..12c7f1f469a 100644 --- a/third_party/upb/tests/conformance_upb.c +++ b/third_party/upb/tests/conformance_upb.c @@ -1,3 +1,30 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + /* This is a upb implementation of the upb conformance tests, see: * https://github.com/google/protobuf/tree/master/conformance */ diff --git a/third_party/upb/tests/corpus/temp.cc b/third_party/upb/tests/corpus/temp.cc index 2bf1160ce69..c8f2691a94a 100644 --- a/third_party/upb/tests/corpus/temp.cc +++ b/third_party/upb/tests/corpus/temp.cc @@ -1 +1,26 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // Hello World diff --git a/third_party/upb/tests/file_descriptor_parsenew_fuzzer.cc b/third_party/upb/tests/file_descriptor_parsenew_fuzzer.cc index 966a468063a..55fff0408c0 100644 --- a/third_party/upb/tests/file_descriptor_parsenew_fuzzer.cc +++ b/third_party/upb/tests/file_descriptor_parsenew_fuzzer.cc @@ -1,3 +1,28 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include #include "google/protobuf/descriptor.upb.h" diff --git a/third_party/upb/tests/json/enum_from_separate_file.proto b/third_party/upb/tests/json/enum_from_separate_file.proto deleted file mode 100644 index ceb9b42aa1c..00000000000 --- a/third_party/upb/tests/json/enum_from_separate_file.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto2"; - -import "tests/json/test.proto"; - -package upb.test.json; - -message ImportEnum { - optional MyEnum e = 1; -} diff --git a/third_party/upb/tests/json/test.proto b/third_party/upb/tests/json/test.proto deleted file mode 100644 index 2db0388d778..00000000000 --- a/third_party/upb/tests/json/test.proto +++ /dev/null @@ -1,47 +0,0 @@ -syntax = "proto3"; - -package upb.test.json; - -message TestMessage { - int32 optional_int32 = 1; - int64 optional_int64 = 2; - int32 optional_uint32 = 3; - int64 optional_uint64 = 4; - string optional_string = 5; - bytes optional_bytes = 6; - bool optional_bool = 7; - SubMessage optional_msg = 8; - MyEnum optional_enum = 9; - - repeated int32 repeated_int32 = 11; - repeated int64 repeated_int64 = 12; - repeated uint32 repeated_uint32 = 13; - repeated uint64 repeated_uint64 = 14; - repeated string repeated_string = 15; - repeated bytes repeated_bytes = 16; - repeated bool repeated_bool = 17; - repeated SubMessage repeated_msg = 18; - repeated MyEnum repeated_enum = 19; - - map map_string_string = 20; - map map_int32_string = 21; - map map_bool_string = 22; - map map_string_int32 = 23; - map map_string_bool = 24; - map map_string_msg = 25; - - oneof o { - int32 oneof_int32 = 26; - int64 oneof_int64 = 27; - } -} - -message SubMessage { - int32 foo = 1; -} - -enum MyEnum { - A = 0; - B = 1; - C = 2; -} diff --git a/third_party/upb/tests/json/test.proto.pb b/third_party/upb/tests/json/test.proto.pb deleted file mode 100644 index 94b8b92e616..00000000000 Binary files a/third_party/upb/tests/json/test.proto.pb and /dev/null differ diff --git a/third_party/upb/tests/json/test_json.cc b/third_party/upb/tests/json/test_json.cc deleted file mode 100644 index 18ab07fe50a..00000000000 --- a/third_party/upb/tests/json/test_json.cc +++ /dev/null @@ -1,336 +0,0 @@ -/* - * - * A set of tests for JSON parsing and serialization. - */ - -#include - -#include "tests/json/test.upb.h" // Test that it compiles for C++. -#include "tests/json/test.upbdefs.h" -#include "tests/test_util.h" -#include "tests/upb_test.h" -#include "upb/def.hpp" -#include "upb/handlers.h" -#include "upb/json/parser.h" -#include "upb/json/printer.h" -#include "upb/port_def.inc" -#include "upb/upb.h" - -// Macros for readability in test case list: allows us to give TEST("...") / -// EXPECT("...") pairs. -#define TEST(x) x -#define EXPECT_SAME NULL -#define EXPECT(x) x -#define TEST_SENTINEL { NULL, NULL } - -struct TestCase { - const char* input; - const char* expected; -}; - -bool verbose = false; - -static TestCase kTestRoundtripMessages[] = { - // Test most fields here. - { - TEST("{\"optionalInt32\":-42,\"optionalString\":\"Test\\u0001Message\"," - "\"optionalMsg\":{\"foo\":42}," - "\"optionalBool\":true,\"repeatedMsg\":[{\"foo\":1}," - "{\"foo\":2}]}"), - EXPECT_SAME - }, - // We must also recognize raw proto names. - { - TEST("{\"optional_int32\":-42,\"optional_string\":\"Test\\u0001Message\"," - "\"optional_msg\":{\"foo\":42}," - "\"optional_bool\":true,\"repeated_msg\":[{\"foo\":1}," - "{\"foo\":2}]}"), - EXPECT("{\"optionalInt32\":-42,\"optionalString\":\"Test\\u0001Message\"," - "\"optionalMsg\":{\"foo\":42}," - "\"optionalBool\":true,\"repeatedMsg\":[{\"foo\":1}," - "{\"foo\":2}]}") - }, - // Test special escapes in strings. - { - TEST("{\"repeatedString\":[\"\\b\",\"\\r\",\"\\n\",\"\\f\",\"\\t\"," - "\"\uFFFF\"]}"), - EXPECT_SAME - }, - // Test enum symbolic names. - { - // The common case: parse and print the symbolic name. - TEST("{\"optionalEnum\":\"A\"}"), - EXPECT_SAME - }, - { - // Unknown enum value: will be printed as an integer. - TEST("{\"optionalEnum\":42}"), - EXPECT_SAME - }, - { - // Known enum value: we're happy to parse an integer but we will re-emit the - // symbolic name. - TEST("{\"optionalEnum\":1}"), - EXPECT("{\"optionalEnum\":\"B\"}") - }, - // UTF-8 tests: escapes -> literal UTF8 in output. - { - // Note double escape on \uXXXX: we want the escape to be processed by the - // JSON parser, not by the C++ compiler! - TEST("{\"optionalString\":\"\\u007F\"}"), - EXPECT("{\"optionalString\":\"\x7F\"}") - }, - { - TEST("{\"optionalString\":\"\\u0080\"}"), - EXPECT("{\"optionalString\":\"\xC2\x80\"}") - }, - { - TEST("{\"optionalString\":\"\\u07FF\"}"), - EXPECT("{\"optionalString\":\"\xDF\xBF\"}") - }, - { - TEST("{\"optionalString\":\"\\u0800\"}"), - EXPECT("{\"optionalString\":\"\xE0\xA0\x80\"}") - }, - { - TEST("{\"optionalString\":\"\\uFFFF\"}"), - EXPECT("{\"optionalString\":\"\xEF\xBF\xBF\"}") - }, - // map-field tests - { - TEST("{\"mapStringString\":{\"a\":\"value1\",\"b\":\"value2\"," - "\"c\":\"value3\"}}"), - EXPECT_SAME - }, - { - TEST("{\"mapInt32String\":{\"1\":\"value1\",\"-1\":\"value2\"," - "\"1234\":\"value3\"}}"), - EXPECT_SAME - }, - { - TEST("{\"mapBoolString\":{\"false\":\"value1\",\"true\":\"value2\"}}"), - EXPECT_SAME - }, - { - TEST("{\"mapStringInt32\":{\"asdf\":1234,\"jkl;\":-1}}"), - EXPECT_SAME - }, - { - TEST("{\"mapStringBool\":{\"asdf\":true,\"jkl;\":false}}"), - EXPECT_SAME - }, - { - TEST("{\"mapStringMsg\":{\"asdf\":{\"foo\":42},\"jkl;\":{\"foo\":84}}}"), - EXPECT_SAME - }, - TEST_SENTINEL -}; - -static TestCase kTestRoundtripMessagesPreserve[] = { - // Test most fields here. - { - TEST("{\"optional_int32\":-42,\"optional_string\":\"Test\\u0001Message\"," - "\"optional_msg\":{\"foo\":42}," - "\"optional_bool\":true,\"repeated_msg\":[{\"foo\":1}," - "{\"foo\":2}]}"), - EXPECT_SAME - }, - TEST_SENTINEL -}; - -static TestCase kTestSkipUnknown[] = { - { - TEST("{\"optionalEnum\":\"UNKNOWN_ENUM_VALUE\"}"), - EXPECT("{}"), - }, - TEST_SENTINEL -}; - -static TestCase kTestFailure[] = { - { - TEST("{\"optionalEnum\":\"UNKNOWN_ENUM_VALUE\"}"), - EXPECT("{}"), /* Actually we expect error, this is checked later. */ - }, - TEST_SENTINEL -}; - -class StringSink { - public: - StringSink() { - upb_byteshandler_init(&byteshandler_); - upb_byteshandler_setstring(&byteshandler_, &str_handler, NULL); - upb_bytessink_reset(&bytessink_, &byteshandler_, &s_); - } - ~StringSink() { } - - upb_bytessink Sink() { return bytessink_; } - - const std::string& Data() { return s_; } - - private: - - static size_t str_handler(void* _closure, const void* hd, - const char* data, size_t len, - const upb_bufhandle* handle) { - UPB_UNUSED(hd); - UPB_UNUSED(handle); - std::string* s = static_cast(_closure); - std::string appended(data, len); - s->append(data, len); - return len; - } - - upb_byteshandler byteshandler_; - upb_bytessink bytessink_; - std::string s_; -}; - -void test_json_roundtrip_message(const char* json_src, - const char* json_expected, - const upb::Handlers* serialize_handlers, - const upb::json::ParserMethodPtr parser_method, - int seam, - bool ignore_unknown) { - VerboseParserEnvironment env(verbose); - StringSink data_sink; - upb::json::PrinterPtr printer = upb::json::PrinterPtr::Create( - env.arena(), serialize_handlers, data_sink.Sink()); - upb::json::ParserPtr parser = upb::json::ParserPtr::Create( - env.arena(), parser_method, NULL, printer.input(), - env.status(), ignore_unknown); - env.ResetBytesSink(parser.input()); - env.Reset(json_src, strlen(json_src), false, false); - - bool ok = env.Start() && - env.ParseBuffer(seam) && - env.ParseBuffer(-1) && - env.End(); - - ASSERT(ok); - ASSERT(env.CheckConsistency()); - - if (memcmp(json_expected, - data_sink.Data().data(), - data_sink.Data().size())) { - fprintf(stderr, - "JSON parse/serialize roundtrip result differs:\n" - "Expected:\n%s\nParsed/Serialized:\n%s\n", - json_expected, data_sink.Data().c_str()); - abort(); - } -} - -// Starts with a message in JSON format, parses and directly serializes again, -// and compares the result. -void test_json_roundtrip() { - upb::SymbolTable symtab; - upb::HandlerCache serialize_handlercache( - upb::json::PrinterPtr::NewCache(false)); - upb::json::CodeCache parse_codecache; - - upb::MessageDefPtr md(upb_test_json_TestMessage_getmsgdef(symtab.ptr())); - ASSERT(md); - const upb::Handlers* serialize_handlers = serialize_handlercache.Get(md); - const upb::json::ParserMethodPtr parser_method = parse_codecache.Get(md); - ASSERT(serialize_handlers); - - for (const TestCase* test_case = kTestRoundtripMessages; - test_case->input != NULL; test_case++) { - const char *expected = - (test_case->expected == EXPECT_SAME) ? - test_case->input : - test_case->expected; - - for (size_t i = 0; i < strlen(test_case->input); i++) { - test_json_roundtrip_message(test_case->input, expected, - serialize_handlers, parser_method, (int)i, - false); - } - } - - // Tests ignore unknown. - for (const TestCase* test_case = kTestSkipUnknown; - test_case->input != NULL; test_case++) { - const char *expected = - (test_case->expected == EXPECT_SAME) ? - test_case->input : - test_case->expected; - - for (size_t i = 0; i < strlen(test_case->input); i++) { - test_json_roundtrip_message(test_case->input, expected, - serialize_handlers, parser_method, (int)i, - true); - } - } - - serialize_handlercache = upb::json::PrinterPtr::NewCache(true); - serialize_handlers = serialize_handlercache.Get(md); - - for (const TestCase* test_case = kTestRoundtripMessagesPreserve; - test_case->input != NULL; test_case++) { - const char *expected = - (test_case->expected == EXPECT_SAME) ? - test_case->input : - test_case->expected; - - for (size_t i = 0; i < strlen(test_case->input); i++) { - test_json_roundtrip_message(test_case->input, expected, - serialize_handlers, parser_method, (int)i, - false); - } - } -} - -void test_json_parse_failure(const char* json_src, - const upb::Handlers* serialize_handlers, - const upb::json::ParserMethodPtr parser_method, - int seam) { - VerboseParserEnvironment env(verbose); - StringSink data_sink; - upb::json::PrinterPtr printer = upb::json::PrinterPtr::Create( - env.arena(), serialize_handlers, data_sink.Sink()); - upb::json::ParserPtr parser = upb::json::ParserPtr::Create( - env.arena(), parser_method, NULL, printer.input(), env.status(), false); - env.ResetBytesSink(parser.input()); - env.Reset(json_src, strlen(json_src), false, true); - - bool ok = env.Start() && - env.ParseBuffer(seam) && - env.ParseBuffer(-1) && - env.End(); - - ASSERT(!ok); - ASSERT(env.CheckConsistency()); -} - -// Starts with a proto message in JSON format, parses and expects failre. -void test_json_failure() { - upb::SymbolTable symtab; - upb::HandlerCache serialize_handlercache( - upb::json::PrinterPtr::NewCache(false)); - upb::json::CodeCache parse_codecache; - - upb::MessageDefPtr md(upb_test_json_TestMessage_getmsgdef(symtab.ptr())); - ASSERT(md); - const upb::Handlers* serialize_handlers = serialize_handlercache.Get(md); - const upb::json::ParserMethodPtr parser_method = parse_codecache.Get(md); - ASSERT(serialize_handlers); - - for (const TestCase* test_case = kTestFailure; - test_case->input != NULL; test_case++) { - for (size_t i = 0; i < strlen(test_case->input); i++) { - test_json_parse_failure(test_case->input, serialize_handlers, - parser_method, (int)i); - } - } -} - -extern "C" { -int run_tests(int argc, char *argv[]) { - UPB_UNUSED(argc); - UPB_UNUSED(argv); - test_json_roundtrip(); - test_json_failure(); - return 0; -} -} diff --git a/third_party/upb/tests/pb/test_decoder.cc b/third_party/upb/tests/pb/test_decoder.cc deleted file mode 100644 index 110dd2f9bed..00000000000 --- a/third_party/upb/tests/pb/test_decoder.cc +++ /dev/null @@ -1,1194 +0,0 @@ -/* - * - * An exhaustive set of tests for parsing both valid and invalid protobuf - * input, with buffer breaks in arbitrary places. - * - * Tests to add: - * - string/bytes - * - unknown field handler called appropriately - * - unknown fields can be inserted in random places - * - fuzzing of valid input - * - resource limits (max stack depth, max string len) - * - testing of groups - * - more throrough testing of sequences - * - test skipping of submessages - * - test suspending the decoder - * - buffers that are close enough to the end of the address space that - * pointers overflow (this might be difficult). - * - a few "kitchen sink" examples (one proto that uses all types, lots - * of submsg/sequences, etc. - * - test different handlers at every level and whether handlers fire at - * the correct field path. - * - test skips that extend past the end of current buffer (where decoder - * returns value greater than the size param). - */ - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS // For PRIuS, etc. -#endif - -#include -#include -#include -#include -#include -#include - -#include "tests/test_util.h" -#include "tests/upb_test.h" -#include "tests/pb/test_decoder.upbdefs.h" - -#ifdef AMALGAMATED -#include "upb.h" -#else // AMALGAMATED -#include "upb/handlers.h" -#include "upb/pb/decoder.h" -#include "upb/upb.h" -#endif // !AMALGAMATED - -#include "upb/port_def.inc" - -#undef PRINT_FAILURE -#define PRINT_FAILURE(expr) \ - fprintf(stderr, "Assertion failed: %s:%d\n", __FILE__, __LINE__); \ - fprintf(stderr, "expr: %s\n", #expr); \ - -#define MAX_NESTING 64 - -#define LINE(x) x "\n" - -uint32_t filter_hash = 0; -double completed; -double total; -double *count; - -enum TestMode { - COUNT_ONLY = 1, - NO_HANDLERS = 2, - ALL_HANDLERS = 3 -} test_mode; - -// Copied from decoder.c, since this is not a public interface. -typedef struct { - uint8_t native_wire_type; - bool is_numeric; -} upb_decoder_typeinfo; - -static const upb_decoder_typeinfo upb_decoder_types[] = { - {UPB_WIRE_TYPE_END_GROUP, false}, // ENDGROUP - {UPB_WIRE_TYPE_64BIT, true}, // DOUBLE - {UPB_WIRE_TYPE_32BIT, true}, // FLOAT - {UPB_WIRE_TYPE_VARINT, true}, // INT64 - {UPB_WIRE_TYPE_VARINT, true}, // UINT64 - {UPB_WIRE_TYPE_VARINT, true}, // INT32 - {UPB_WIRE_TYPE_64BIT, true}, // FIXED64 - {UPB_WIRE_TYPE_32BIT, true}, // FIXED32 - {UPB_WIRE_TYPE_VARINT, true}, // BOOL - {UPB_WIRE_TYPE_DELIMITED, false}, // STRING - {UPB_WIRE_TYPE_START_GROUP, false}, // GROUP - {UPB_WIRE_TYPE_DELIMITED, false}, // MESSAGE - {UPB_WIRE_TYPE_DELIMITED, false}, // BYTES - {UPB_WIRE_TYPE_VARINT, true}, // UINT32 - {UPB_WIRE_TYPE_VARINT, true}, // ENUM - {UPB_WIRE_TYPE_32BIT, true}, // SFIXED32 - {UPB_WIRE_TYPE_64BIT, true}, // SFIXED64 - {UPB_WIRE_TYPE_VARINT, true}, // SINT32 - {UPB_WIRE_TYPE_VARINT, true}, // SINT64 -}; - -#ifndef USE_GOOGLE -using std::string; -#endif - -void vappendf(string* str, const char *format, va_list args) { - va_list copy; - va_copy(copy, args); - - int count = vsnprintf(NULL, 0, format, args); - if (count >= 0) - { - UPB_ASSERT(count < 32768); - char *buffer = new char[count + 1]; - UPB_ASSERT(buffer); - count = vsnprintf(buffer, count + 1, format, copy); - UPB_ASSERT(count >= 0); - str->append(buffer, count); - delete [] buffer; - } - va_end(copy); -} - -void appendf(string* str, const char *fmt, ...) { - va_list args; - va_start(args, fmt); - vappendf(str, fmt, args); - va_end(args); -} - -void PrintBinary(const string& str) { - for (size_t i = 0; i < str.size(); i++) { - if (isprint(str[i])) { - fprintf(stderr, "%c", str[i]); - } else { - fprintf(stderr, "\\x%02x", (int)(uint8_t)str[i]); - } - } -} - -#define UPB_PB_VARINT_MAX_LEN 10 - -static size_t upb_vencode64(uint64_t val, char *buf) { - size_t i; - if (val == 0) { buf[0] = 0; return 1; } - i = 0; - while (val) { - uint8_t byte = val & 0x7fU; - val >>= 7; - if (val) byte |= 0x80U; - buf[i++] = byte; - } - return i; -} - -static uint32_t upb_zzenc_32(int32_t n) { - return ((uint32_t)n << 1) ^ (n >> 31); -} - -static uint64_t upb_zzenc_64(int64_t n) { - return ((uint64_t)n << 1) ^ (n >> 63); -} - -/* Routines for building arbitrary protos *************************************/ - -const string empty; - -string cat(const string& a, const string& b, - const string& c = empty, - const string& d = empty, - const string& e = empty, - const string& f = empty, - const string& g = empty, - const string& h = empty, - const string& i = empty, - const string& j = empty, - const string& k = empty, - const string& l = empty) { - string ret; - ret.reserve(a.size() + b.size() + c.size() + d.size() + e.size() + f.size() + - g.size() + h.size() + i.size() + j.size() + k.size() + l.size()); - ret.append(a); - ret.append(b); - ret.append(c); - ret.append(d); - ret.append(e); - ret.append(f); - ret.append(g); - ret.append(h); - ret.append(i); - ret.append(j); - ret.append(k); - ret.append(l); - return ret; -} - -template -string num2string(T num) { - std::ostringstream ss; - ss << num; - return ss.str(); -} - -string varint(uint64_t x) { - char buf[UPB_PB_VARINT_MAX_LEN]; - size_t len = upb_vencode64(x, buf); - return string(buf, len); -} - -// TODO: proper byte-swapping for big-endian machines. -string fixed32(void *data) { return string(static_cast(data), 4); } -string fixed64(void *data) { return string(static_cast(data), 8); } - -string delim(const string& buf) { return cat(varint(buf.size()), buf); } -string uint32(uint32_t u32) { return fixed32(&u32); } -string uint64(uint64_t u64) { return fixed64(&u64); } -string flt(float f) { return fixed32(&f); } -string dbl(double d) { return fixed64(&d); } -string zz32(int32_t x) { return varint(upb_zzenc_32(x)); } -string zz64(int64_t x) { return varint(upb_zzenc_64(x)); } - -string tag(uint32_t fieldnum, char wire_type) { - return varint((fieldnum << 3) | wire_type); -} - -string submsg(uint32_t fn, const string& buf) { - return cat( tag(fn, UPB_WIRE_TYPE_DELIMITED), delim(buf) ); -} - -string group(uint32_t fn, const string& buf) { - return cat(tag(fn, UPB_WIRE_TYPE_START_GROUP), buf, - tag(fn, UPB_WIRE_TYPE_END_GROUP)); -} - -// Like delim()/submsg(), but intentionally encodes an incorrect length. -// These help test when a delimited boundary doesn't land in the right place. -string badlen_delim(int err, const string& buf) { - return cat(varint(buf.size() + err), buf); -} - -string badlen_submsg(int err, uint32_t fn, const string& buf) { - return cat( tag(fn, UPB_WIRE_TYPE_DELIMITED), badlen_delim(err, buf) ); -} - - -/* A set of handlers that covers all .proto types *****************************/ - -// The handlers simply append to a string indicating what handlers were called. -// This string is similar to protobuf text format but fields are referred to by -// number instead of name and sequences are explicitly delimited. We indent -// using the closure depth to test that the stack of closures is properly -// handled. - -int closures[MAX_NESTING]; -string output; - -void indentbuf(string *buf, int depth) { - buf->append(2 * depth, ' '); -} - -#define NUMERIC_VALUE_HANDLER(member, ctype, fmt) \ - bool value_##member(int* depth, const uint32_t* num, ctype val) { \ - indentbuf(&output, *depth); \ - appendf(&output, "%" PRIu32 ":%" fmt "\n", *num, val); \ - return true; \ - } - -NUMERIC_VALUE_HANDLER(uint32, uint32_t, PRIu32) -NUMERIC_VALUE_HANDLER(uint64, uint64_t, PRIu64) -NUMERIC_VALUE_HANDLER(int32, int32_t, PRId32) -NUMERIC_VALUE_HANDLER(int64, int64_t, PRId64) -NUMERIC_VALUE_HANDLER(float, float, "g") -NUMERIC_VALUE_HANDLER(double, double, "g") - -bool value_bool(int* depth, const uint32_t* num, bool val) { - indentbuf(&output, *depth); - appendf(&output, "%" PRIu32 ":%s\n", *num, val ? "true" : "false"); - return true; -} - -int* startstr(int* depth, const uint32_t* num, size_t size_hint) { - indentbuf(&output, *depth); - appendf(&output, "%" PRIu32 ":(%zu)\"", *num, size_hint); - return depth + 1; -} - -size_t value_string(int* depth, const uint32_t* num, const char* buf, - size_t n, const upb_bufhandle* handle) { - UPB_UNUSED(num); - UPB_UNUSED(depth); - output.append(buf, n); - ASSERT(handle == &global_handle); - return n; -} - -bool endstr(int* depth, const uint32_t* num) { - UPB_UNUSED(num); - output.append("\n"); - indentbuf(&output, *depth); - appendf(&output, "%" PRIu32 ":\"\n", *num); - return true; -} - -int* startsubmsg(int* depth, const uint32_t* num) { - indentbuf(&output, *depth); - appendf(&output, "%" PRIu32 ":{\n", *num); - return depth + 1; -} - -bool endsubmsg(int* depth, const uint32_t* num) { - UPB_UNUSED(num); - indentbuf(&output, *depth); - output.append("}\n"); - return true; -} - -int* startseq(int* depth, const uint32_t* num) { - indentbuf(&output, *depth); - appendf(&output, "%" PRIu32 ":[\n", *num); - return depth + 1; -} - -bool endseq(int* depth, const uint32_t* num) { - UPB_UNUSED(num); - indentbuf(&output, *depth); - output.append("]\n"); - return true; -} - -bool startmsg(int* depth) { - indentbuf(&output, *depth); - output.append("<\n"); - return true; -} - -bool endmsg(int* depth, upb_status* status) { - UPB_UNUSED(status); - indentbuf(&output, *depth); - output.append(">\n"); - return true; -} - -void free_uint32(void *val) { - uint32_t *u32 = static_cast(val); - delete u32; -} - -template -void doreg(upb::HandlersPtr h, uint32_t num) { - upb::FieldDefPtr f = h.message_def().FindFieldByNumber(num); - ASSERT(f); - ASSERT(h.SetValueHandler(f, UpbBind(F, new uint32_t(num)))); - if (f.IsSequence()) { - ASSERT(h.SetStartSequenceHandler(f, UpbBind(startseq, new uint32_t(num)))); - ASSERT(h.SetEndSequenceHandler(f, UpbBind(endseq, new uint32_t(num)))); - } -} - -// The repeated field number to correspond to the given non-repeated field -// number. -uint32_t rep_fn(uint32_t fn) { - return (UPB_MAX_FIELDNUMBER - 1000) + fn; -} - -#define NOP_FIELD 40 -#define UNKNOWN_FIELD 666 - -template -void reg(upb::HandlersPtr h, upb_descriptortype_t type) { - // We register both a repeated and a non-repeated field for every type. - // For the non-repeated field we make the field number the same as the - // type. For the repeated field we make it a function of the type. - doreg(h, type); - doreg(h, rep_fn(type)); -} - -void regseq(upb::HandlersPtr h, upb::FieldDefPtr f, uint32_t num) { - ASSERT(h.SetStartSequenceHandler(f, UpbBind(startseq, new uint32_t(num)))); - ASSERT(h.SetEndSequenceHandler(f, UpbBind(endseq, new uint32_t(num)))); -} - -void reg_subm(upb::HandlersPtr h, uint32_t num) { - upb::FieldDefPtr f = h.message_def().FindFieldByNumber(num); - ASSERT(f); - if (f.IsSequence()) regseq(h, f, num); - ASSERT( - h.SetStartSubMessageHandler(f, UpbBind(startsubmsg, new uint32_t(num)))); - ASSERT(h.SetEndSubMessageHandler(f, UpbBind(endsubmsg, new uint32_t(num)))); -} - -void reg_str(upb::HandlersPtr h, uint32_t num) { - upb::FieldDefPtr f = h.message_def().FindFieldByNumber(num); - ASSERT(f); - if (f.IsSequence()) regseq(h, f, num); - ASSERT(h.SetStartStringHandler(f, UpbBind(startstr, new uint32_t(num)))); - ASSERT(h.SetEndStringHandler(f, UpbBind(endstr, new uint32_t(num)))); - ASSERT(h.SetStringHandler(f, UpbBind(value_string, new uint32_t(num)))); -} - -struct HandlerRegisterData { - TestMode mode; -}; - -void callback(const void *closure, upb::Handlers* h_ptr) { - upb::HandlersPtr h(h_ptr); - const HandlerRegisterData* data = - static_cast(closure); - if (data->mode == ALL_HANDLERS) { - h.SetStartMessageHandler(UpbMakeHandler(startmsg)); - h.SetEndMessageHandler(UpbMakeHandler(endmsg)); - - // Register handlers for each type. - reg(h, UPB_DESCRIPTOR_TYPE_DOUBLE); - reg (h, UPB_DESCRIPTOR_TYPE_FLOAT); - reg (h, UPB_DESCRIPTOR_TYPE_INT64); - reg(h, UPB_DESCRIPTOR_TYPE_UINT64); - reg (h, UPB_DESCRIPTOR_TYPE_INT32); - reg(h, UPB_DESCRIPTOR_TYPE_FIXED64); - reg(h, UPB_DESCRIPTOR_TYPE_FIXED32); - reg (h, UPB_DESCRIPTOR_TYPE_BOOL); - reg(h, UPB_DESCRIPTOR_TYPE_UINT32); - reg (h, UPB_DESCRIPTOR_TYPE_ENUM); - reg (h, UPB_DESCRIPTOR_TYPE_SFIXED32); - reg (h, UPB_DESCRIPTOR_TYPE_SFIXED64); - reg (h, UPB_DESCRIPTOR_TYPE_SINT32); - reg (h, UPB_DESCRIPTOR_TYPE_SINT64); - - reg_str(h, UPB_DESCRIPTOR_TYPE_STRING); - reg_str(h, UPB_DESCRIPTOR_TYPE_BYTES); - reg_str(h, rep_fn(UPB_DESCRIPTOR_TYPE_STRING)); - reg_str(h, rep_fn(UPB_DESCRIPTOR_TYPE_BYTES)); - - // Register submessage/group handlers that are self-recursive - // to this type, eg: message M { optional M m = 1; } - reg_subm(h, UPB_DESCRIPTOR_TYPE_MESSAGE); - reg_subm(h, rep_fn(UPB_DESCRIPTOR_TYPE_MESSAGE)); - - if (h.message_def().full_name() == std::string("DecoderTest")) { - reg_subm(h, UPB_DESCRIPTOR_TYPE_GROUP); - reg_subm(h, rep_fn(UPB_DESCRIPTOR_TYPE_GROUP)); - } - - // For NOP_FIELD we register no handlers, so we can pad a proto freely without - // changing the output. - } -} - -/* Running of test cases ******************************************************/ - -const upb::Handlers *global_handlers; -upb::pb::DecoderMethodPtr global_method; - -upb::pb::DecoderPtr CreateDecoder(upb::Arena* arena, - upb::pb::DecoderMethodPtr method, - upb::Sink sink, upb::Status* status) { - upb::pb::DecoderPtr ret = - upb::pb::DecoderPtr::Create(arena, method, sink, status); - ret.set_max_nesting(MAX_NESTING); - return ret; -} - -void CheckBytesParsed(upb::pb::DecoderPtr decoder, size_t ofs) { - // We can't have parsed more data than the decoder callback is telling us it - // parsed. - ASSERT(decoder.BytesParsed() <= ofs); - - // The difference between what we've decoded and what the decoder has accepted - // represents the internally buffered amount. This amount should not exceed - // this value which comes from decoder.int.h. - ASSERT(ofs <= (decoder.BytesParsed() + UPB_DECODER_MAX_RESIDUAL_BYTES)); -} - -static bool parse(VerboseParserEnvironment* env, - upb::pb::DecoderPtr decoder, int bytes) { - CheckBytesParsed(decoder, env->ofs()); - bool ret = env->ParseBuffer(bytes); - if (ret) { - CheckBytesParsed(decoder, env->ofs()); - } - - return ret; -} - -void do_run_decoder(VerboseParserEnvironment* env, upb::pb::DecoderPtr decoder, - const string& proto, const string* expected_output, - size_t i, size_t j, bool may_skip) { - env->Reset(proto.c_str(), proto.size(), may_skip, expected_output == NULL); - decoder.Reset(); - - if (test_mode != COUNT_ONLY) { - output.clear(); - - if (filter_hash) { - fprintf(stderr, "RUNNING TEST CASE\n"); - fprintf(stderr, "Input (len=%u): ", (unsigned)proto.size()); - PrintBinary(proto); - fprintf(stderr, "\n"); - if (expected_output) { - if (test_mode == ALL_HANDLERS) { - fprintf(stderr, "Expected output: %s\n", expected_output->c_str()); - } else if (test_mode == NO_HANDLERS) { - fprintf(stderr, - "No handlers are registered, BUT if they were " - "the expected output would be: %s\n", - expected_output->c_str()); - } - } else { - fprintf(stderr, "Expected to FAIL\n"); - } - } - - bool ok = env->Start() && - parse(env, decoder, (int)i) && - parse(env, decoder, (int)(j - i)) && - parse(env, decoder, -1) && - env->End(); - - ASSERT(env->CheckConsistency()); - - if (test_mode == ALL_HANDLERS) { - if (expected_output) { - if (output != *expected_output) { - fprintf(stderr, "Text mismatch: '%s' vs '%s'\n", - output.c_str(), expected_output->c_str()); - } - ASSERT(ok); - ASSERT(output == *expected_output); - } else { - if (ok) { - fprintf(stderr, "Didn't expect ok result, but got output: '%s'\n", - output.c_str()); - } - ASSERT(!ok); - } - } - } - (*count)++; -} - -void run_decoder(const string& proto, const string* expected_output) { - VerboseParserEnvironment env(filter_hash != 0); - upb::Sink sink(global_handlers, &closures[0]); - upb::pb::DecoderPtr decoder = CreateDecoder(env.arena(), global_method, sink, env.status()); - env.ResetBytesSink(decoder.input()); - for (size_t i = 0; i < proto.size(); i++) { - for (size_t j = i; j < UPB_MIN(proto.size(), i + 5); j++) { - do_run_decoder(&env, decoder, proto, expected_output, i, j, true); - if (env.SkippedWithNull()) { - do_run_decoder(&env, decoder, proto, expected_output, i, j, false); - } - } - } -} - -const static string thirty_byte_nop = cat( - tag(NOP_FIELD, UPB_WIRE_TYPE_DELIMITED), delim(string(30, 'X')) ); - -// Indents and wraps text as if it were a submessage with this field number -string wrap_text(int32_t fn, const string& text) { - string wrapped_text = text; - size_t pos = 0; - string replace_with = "\n "; - while ((pos = wrapped_text.find("\n", pos)) != string::npos && - pos != wrapped_text.size() - 1) { - wrapped_text.replace(pos, 1, replace_with); - pos += replace_with.size(); - } - wrapped_text = cat( - LINE("<"), - num2string(fn), LINE(":{") - " ", wrapped_text, - LINE(" }") - LINE(">")); - return wrapped_text; -} - -void assert_successful_parse(const string& proto, - const char *expected_fmt, ...) { - string expected_text; - va_list args; - va_start(args, expected_fmt); - vappendf(&expected_text, expected_fmt, args); - va_end(args); - // To test both middle-of-buffer and end-of-buffer code paths, - // repeat once with no-op padding data at the end of buffer. - run_decoder(proto, &expected_text); - run_decoder(cat( proto, thirty_byte_nop ), &expected_text); - - // Test that this also works when wrapped in a submessage or group. - // Indent the expected text one level and wrap it. - string wrapped_text1 = wrap_text(UPB_DESCRIPTOR_TYPE_MESSAGE, expected_text); - string wrapped_text2 = wrap_text(UPB_DESCRIPTOR_TYPE_GROUP, expected_text); - - run_decoder(submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, proto), &wrapped_text1); - run_decoder(group(UPB_DESCRIPTOR_TYPE_GROUP, proto), &wrapped_text2); -} - -void assert_does_not_parse_at_eof(const string& proto) { - run_decoder(proto, NULL); - - // Also test that we fail to parse at end-of-submessage, not just - // end-of-message. But skip this if we have no handlers, because in that - // case we won't descend into the submessage. - if (test_mode != NO_HANDLERS) { - run_decoder(submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, proto), NULL); - run_decoder(cat(submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, proto), - thirty_byte_nop), NULL); - } -} - -void assert_does_not_parse(const string& proto) { - // Test that the error is caught both at end-of-buffer and middle-of-buffer. - assert_does_not_parse_at_eof(proto); - assert_does_not_parse_at_eof(cat( proto, thirty_byte_nop )); -} - - -/* The actual tests ***********************************************************/ - -void test_premature_eof_for_type(upb_descriptortype_t type) { - // Incomplete values for each wire type. - static const string incompletes[6] = { - string("\x80"), // UPB_WIRE_TYPE_VARINT - string("abcdefg"), // UPB_WIRE_TYPE_64BIT - string("\x80"), // UPB_WIRE_TYPE_DELIMITED (partial length) - string(), // UPB_WIRE_TYPE_START_GROUP (no value required) - string(), // UPB_WIRE_TYPE_END_GROUP (no value required) - string("abc") // UPB_WIRE_TYPE_32BIT - }; - - uint32_t fieldnum = type; - uint32_t rep_fieldnum = rep_fn(type); - int wire_type = upb_decoder_types[type].native_wire_type; - const string& incomplete = incompletes[wire_type]; - - // EOF before a known non-repeated value. - assert_does_not_parse_at_eof(tag(fieldnum, wire_type)); - - // EOF before a known repeated value. - assert_does_not_parse_at_eof(tag(rep_fieldnum, wire_type)); - - // EOF before an unknown value. - assert_does_not_parse_at_eof(tag(UNKNOWN_FIELD, wire_type)); - - // EOF inside a known non-repeated value. - assert_does_not_parse_at_eof( - cat( tag(fieldnum, wire_type), incomplete )); - - // EOF inside a known repeated value. - assert_does_not_parse_at_eof( - cat( tag(rep_fieldnum, wire_type), incomplete )); - - // EOF inside an unknown value. - assert_does_not_parse_at_eof( - cat( tag(UNKNOWN_FIELD, wire_type), incomplete )); - - if (wire_type == UPB_WIRE_TYPE_DELIMITED) { - // EOF in the middle of delimited data for known non-repeated value. - assert_does_not_parse_at_eof( - cat( tag(fieldnum, wire_type), varint(1) )); - - // EOF in the middle of delimited data for known repeated value. - assert_does_not_parse_at_eof( - cat( tag(rep_fieldnum, wire_type), varint(1) )); - - // EOF in the middle of delimited data for unknown value. - assert_does_not_parse_at_eof( - cat( tag(UNKNOWN_FIELD, wire_type), varint(1) )); - - if (type == UPB_DESCRIPTOR_TYPE_MESSAGE) { - // Submessage ends in the middle of a value. - string incomplete_submsg = - cat ( tag(UPB_DESCRIPTOR_TYPE_INT32, UPB_WIRE_TYPE_VARINT), - incompletes[UPB_WIRE_TYPE_VARINT] ); - assert_does_not_parse( - cat( tag(fieldnum, UPB_WIRE_TYPE_DELIMITED), - varint(incomplete_submsg.size()), - incomplete_submsg )); - } - } else { - // Packed region ends in the middle of a value. - assert_does_not_parse( - cat( tag(rep_fieldnum, UPB_WIRE_TYPE_DELIMITED), - varint(incomplete.size()), - incomplete )); - - // EOF in the middle of packed region. - assert_does_not_parse_at_eof( - cat( tag(rep_fieldnum, UPB_WIRE_TYPE_DELIMITED), varint(1) )); - } -} - -// "33" and "66" are just two random values that all numeric types can -// represent. -void test_valid_data_for_type(upb_descriptortype_t type, - const string& enc33, const string& enc66) { - uint32_t fieldnum = type; - uint32_t rep_fieldnum = rep_fn(type); - int wire_type = upb_decoder_types[type].native_wire_type; - - // Non-repeated - assert_successful_parse( - cat( tag(fieldnum, wire_type), enc33, - tag(fieldnum, wire_type), enc66 ), - LINE("<") - LINE("%u:33") - LINE("%u:66") - LINE(">"), fieldnum, fieldnum); - - // Non-packed repeated. - assert_successful_parse( - cat( tag(rep_fieldnum, wire_type), enc33, - tag(rep_fieldnum, wire_type), enc66 ), - LINE("<") - LINE("%u:[") - LINE(" %u:33") - LINE(" %u:66") - LINE("]") - LINE(">"), rep_fieldnum, rep_fieldnum, rep_fieldnum); - - // Packed repeated. - assert_successful_parse( - cat( tag(rep_fieldnum, UPB_WIRE_TYPE_DELIMITED), - delim(cat( enc33, enc66 )) ), - LINE("<") - LINE("%u:[") - LINE(" %u:33") - LINE(" %u:66") - LINE("]") - LINE(">"), rep_fieldnum, rep_fieldnum, rep_fieldnum); -} - -void test_valid_data_for_signed_type(upb_descriptortype_t type, - const string& enc33, const string& enc66) { - uint32_t fieldnum = type; - uint32_t rep_fieldnum = rep_fn(type); - int wire_type = upb_decoder_types[type].native_wire_type; - - // Non-repeated - assert_successful_parse( - cat( tag(fieldnum, wire_type), enc33, - tag(fieldnum, wire_type), enc66 ), - LINE("<") - LINE("%u:33") - LINE("%u:-66") - LINE(">"), fieldnum, fieldnum); - - // Non-packed repeated. - assert_successful_parse( - cat( tag(rep_fieldnum, wire_type), enc33, - tag(rep_fieldnum, wire_type), enc66 ), - LINE("<") - LINE("%u:[") - LINE(" %u:33") - LINE(" %u:-66") - LINE("]") - LINE(">"), rep_fieldnum, rep_fieldnum, rep_fieldnum); - - // Packed repeated. - assert_successful_parse( - cat( tag(rep_fieldnum, UPB_WIRE_TYPE_DELIMITED), - delim(cat( enc33, enc66 )) ), - LINE("<") - LINE("%u:[") - LINE(" %u:33") - LINE(" %u:-66") - LINE("]") - LINE(">"), rep_fieldnum, rep_fieldnum, rep_fieldnum); -} - -// Test that invalid protobufs are properly detected (without crashing) and -// have an error reported. Field numbers match registered handlers above. -void test_invalid() { - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_DOUBLE); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_FLOAT); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_INT64); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_UINT64); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_INT32); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_FIXED64); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_FIXED32); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_BOOL); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_STRING); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_BYTES); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_UINT32); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_ENUM); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_SFIXED32); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_SFIXED64); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_SINT32); - test_premature_eof_for_type(UPB_DESCRIPTOR_TYPE_SINT64); - - // EOF inside a tag's varint. - assert_does_not_parse_at_eof( string("\x80") ); - - // EOF inside a known group. - // TODO(haberman): add group to decoder test schema. - //assert_does_not_parse_at_eof( tag(4, UPB_WIRE_TYPE_START_GROUP) ); - - // EOF inside an unknown group. - assert_does_not_parse_at_eof( tag(UNKNOWN_FIELD, UPB_WIRE_TYPE_START_GROUP) ); - - // End group that we are not currently in. - assert_does_not_parse( tag(4, UPB_WIRE_TYPE_END_GROUP) ); - - // Field number is 0. - assert_does_not_parse( - cat( tag(0, UPB_WIRE_TYPE_DELIMITED), varint(0) )); - // The previous test alone did not catch this particular pattern which could - // corrupt the internal state. - assert_does_not_parse( - cat( tag(0, UPB_WIRE_TYPE_64BIT), uint64(0) )); - - // Field number is too large. - assert_does_not_parse( - cat( tag(UPB_MAX_FIELDNUMBER + 1, UPB_WIRE_TYPE_DELIMITED), - varint(0) )); - - // Known group inside a submessage has ENDGROUP tag AFTER submessage end. - assert_does_not_parse( - cat ( submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, - tag(UPB_DESCRIPTOR_TYPE_GROUP, UPB_WIRE_TYPE_START_GROUP)), - tag(UPB_DESCRIPTOR_TYPE_GROUP, UPB_WIRE_TYPE_END_GROUP))); - - // Unknown string extends past enclosing submessage. - assert_does_not_parse( - cat (badlen_submsg(-1, UPB_DESCRIPTOR_TYPE_MESSAGE, - submsg(12345, string(" "))), - submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, string(" ")))); - - // Unknown fixed-length field extends past enclosing submessage. - assert_does_not_parse( - cat (badlen_submsg(-1, UPB_DESCRIPTOR_TYPE_MESSAGE, - cat( tag(12345, UPB_WIRE_TYPE_64BIT), uint64(0))), - submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, string(" ")))); - - // Test exceeding the resource limit of stack depth. - if (test_mode != NO_HANDLERS) { - string buf; - for (int i = 0; i <= MAX_NESTING; i++) { - buf.assign(submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, buf)); - } - assert_does_not_parse(buf); - } -} - -void test_valid() { - // Empty protobuf. - assert_successful_parse(string(""), "<\n>\n"); - - // Empty protobuf where we never call PutString between - // StartString/EndString. - - upb::Status status; - upb::Arena arena; - upb::Sink sink(global_handlers, &closures[0]); - upb::pb::DecoderPtr decoder = - CreateDecoder(&arena, global_method, sink, &status); - output.clear(); - bool ok = upb::PutBuffer(std::string(), decoder.input()); - ASSERT(ok); - ASSERT(status.ok()); - if (test_mode == ALL_HANDLERS) { - ASSERT(output == string("<\n>\n")); - } - - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_DOUBLE, - dbl(33), - dbl(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_FLOAT, flt(33), flt(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_INT64, - varint(33), - varint(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_INT32, - varint(33), - varint(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_ENUM, - varint(33), - varint(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_SFIXED32, - uint32(33), - uint32(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_SFIXED64, - uint64(33), - uint64(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_SINT32, - zz32(33), - zz32(-66)); - test_valid_data_for_signed_type(UPB_DESCRIPTOR_TYPE_SINT64, - zz64(33), - zz64(-66)); - - test_valid_data_for_type(UPB_DESCRIPTOR_TYPE_UINT64, varint(33), varint(66)); - test_valid_data_for_type(UPB_DESCRIPTOR_TYPE_UINT32, varint(33), varint(66)); - test_valid_data_for_type(UPB_DESCRIPTOR_TYPE_FIXED64, uint64(33), uint64(66)); - test_valid_data_for_type(UPB_DESCRIPTOR_TYPE_FIXED32, uint32(33), uint32(66)); - - // Unknown fields. - int int32_type = UPB_DESCRIPTOR_TYPE_INT32; - int msg_type = UPB_DESCRIPTOR_TYPE_MESSAGE; - assert_successful_parse( - cat( tag(12345, UPB_WIRE_TYPE_VARINT), varint(2345678) ), - "<\n>\n"); - assert_successful_parse( - cat( tag(12345, UPB_WIRE_TYPE_32BIT), uint32(2345678) ), - "<\n>\n"); - assert_successful_parse( - cat( tag(12345, UPB_WIRE_TYPE_64BIT), uint64(2345678) ), - "<\n>\n"); - assert_successful_parse( - submsg(12345, string(" ")), - "<\n>\n"); - - // Unknown field inside a known submessage. - assert_successful_parse( - submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, submsg(12345, string(" "))), - LINE("<") - LINE("%u:{") - LINE(" <") - LINE(" >") - LINE(" }") - LINE(">"), UPB_DESCRIPTOR_TYPE_MESSAGE); - - assert_successful_parse( - cat (submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, submsg(12345, string(" "))), - tag(UPB_DESCRIPTOR_TYPE_INT32, UPB_WIRE_TYPE_VARINT), - varint(5)), - LINE("<") - LINE("%u:{") - LINE(" <") - LINE(" >") - LINE(" }") - LINE("%u:5") - LINE(">"), UPB_DESCRIPTOR_TYPE_MESSAGE, UPB_DESCRIPTOR_TYPE_INT32); - - // This triggered a previous bug in the decoder. - assert_successful_parse( - cat( tag(UPB_DESCRIPTOR_TYPE_SFIXED32, UPB_WIRE_TYPE_VARINT), - varint(0) ), - "<\n>\n"); - - assert_successful_parse( - cat( - submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, - submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, - cat( tag(int32_type, UPB_WIRE_TYPE_VARINT), varint(2345678), - tag(12345, UPB_WIRE_TYPE_VARINT), varint(2345678) ))), - tag(int32_type, UPB_WIRE_TYPE_VARINT), varint(22222)), - LINE("<") - LINE("%u:{") - LINE(" <") - LINE(" %u:{") - LINE(" <") - LINE(" %u:2345678") - LINE(" >") - LINE(" }") - LINE(" >") - LINE(" }") - LINE("%u:22222") - LINE(">"), msg_type, msg_type, int32_type, int32_type); - - assert_successful_parse( - cat( tag(UPB_DESCRIPTOR_TYPE_INT32, UPB_WIRE_TYPE_VARINT), varint(1), - tag(12345, UPB_WIRE_TYPE_VARINT), varint(2345678) ), - LINE("<") - LINE("%u:1") - LINE(">"), UPB_DESCRIPTOR_TYPE_INT32); - - // String inside submsg. - uint32_t msg_fn = UPB_DESCRIPTOR_TYPE_MESSAGE; - assert_successful_parse( - submsg(msg_fn, - cat ( tag(UPB_DESCRIPTOR_TYPE_STRING, UPB_WIRE_TYPE_DELIMITED), - delim(string("abcde")) - ) - ), - LINE("<") - LINE("%u:{") - LINE(" <") - LINE(" %u:(5)\"abcde") - LINE(" %u:\"") - LINE(" >") - LINE(" }") - LINE(">"), msg_fn, UPB_DESCRIPTOR_TYPE_STRING, - UPB_DESCRIPTOR_TYPE_STRING); - - // Test implicit startseq/endseq. - uint32_t repfl_fn = rep_fn(UPB_DESCRIPTOR_TYPE_FLOAT); - uint32_t repdb_fn = rep_fn(UPB_DESCRIPTOR_TYPE_DOUBLE); - assert_successful_parse( - cat( tag(repfl_fn, UPB_WIRE_TYPE_32BIT), flt(33), - tag(repdb_fn, UPB_WIRE_TYPE_64BIT), dbl(66) ), - LINE("<") - LINE("%u:[") - LINE(" %u:33") - LINE("]") - LINE("%u:[") - LINE(" %u:66") - LINE("]") - LINE(">"), repfl_fn, repfl_fn, repdb_fn, repdb_fn); - - // Submessage tests. - assert_successful_parse( - submsg(msg_fn, submsg(msg_fn, submsg(msg_fn, string()))), - LINE("<") - LINE("%u:{") - LINE(" <") - LINE(" %u:{") - LINE(" <") - LINE(" %u:{") - LINE(" <") - LINE(" >") - LINE(" }") - LINE(" >") - LINE(" }") - LINE(" >") - LINE(" }") - LINE(">"), msg_fn, msg_fn, msg_fn); - - uint32_t repm_fn = rep_fn(UPB_DESCRIPTOR_TYPE_MESSAGE); - assert_successful_parse( - submsg(repm_fn, submsg(repm_fn, string())), - LINE("<") - LINE("%u:[") - LINE(" %u:{") - LINE(" <") - LINE(" %u:[") - LINE(" %u:{") - LINE(" <") - LINE(" >") - LINE(" }") - LINE(" ]") - LINE(" >") - LINE(" }") - LINE("]") - LINE(">"), repm_fn, repm_fn, repm_fn, repm_fn); - - // Test unknown group. - uint32_t unknown_group_fn = 12321; - assert_successful_parse( - cat( tag(unknown_group_fn, UPB_WIRE_TYPE_START_GROUP), - tag(unknown_group_fn, UPB_WIRE_TYPE_END_GROUP) ), - LINE("<") - LINE(">") - ); - - // Test some unknown fields inside an unknown group. - const string unknown_group_with_data = - cat( - tag(unknown_group_fn, UPB_WIRE_TYPE_START_GROUP), - tag(12345, UPB_WIRE_TYPE_VARINT), varint(2345678), - tag(123456789, UPB_WIRE_TYPE_32BIT), uint32(2345678), - tag(123477, UPB_WIRE_TYPE_64BIT), uint64(2345678), - tag(123, UPB_WIRE_TYPE_DELIMITED), varint(0), - tag(unknown_group_fn, UPB_WIRE_TYPE_END_GROUP) - ); - - // Nested unknown group with data. - assert_successful_parse( - cat( - tag(unknown_group_fn, UPB_WIRE_TYPE_START_GROUP), - unknown_group_with_data, - tag(unknown_group_fn, UPB_WIRE_TYPE_END_GROUP), - tag(UPB_DESCRIPTOR_TYPE_INT32, UPB_WIRE_TYPE_VARINT), varint(1) - ), - LINE("<") - LINE("%u:1") - LINE(">"), - UPB_DESCRIPTOR_TYPE_INT32 - ); - - assert_successful_parse( - cat( tag(unknown_group_fn, UPB_WIRE_TYPE_START_GROUP), - tag(unknown_group_fn + 1, UPB_WIRE_TYPE_START_GROUP), - tag(unknown_group_fn + 1, UPB_WIRE_TYPE_END_GROUP), - tag(unknown_group_fn, UPB_WIRE_TYPE_END_GROUP) ), - LINE("<") - LINE(">") - ); - - // Staying within the stack limit should work properly. - string buf; - string textbuf; - int total = MAX_NESTING - 1; - for (int i = 0; i < total; i++) { - buf.assign(submsg(UPB_DESCRIPTOR_TYPE_MESSAGE, buf)); - indentbuf(&textbuf, i); - textbuf.append("<\n"); - indentbuf(&textbuf, i); - appendf(&textbuf, "%u:{\n", UPB_DESCRIPTOR_TYPE_MESSAGE); - } - indentbuf(&textbuf, total); - textbuf.append("<\n"); - indentbuf(&textbuf, total); - textbuf.append(">\n"); - for (int i = 0; i < total; i++) { - indentbuf(&textbuf, total - i - 1); - textbuf.append(" }\n"); - indentbuf(&textbuf, total - i - 1); - textbuf.append(">\n"); - } - // Have to use run_decoder directly, because we are at max nesting and can't - // afford the extra nesting that assert_successful_parse() will do. - run_decoder(buf, &textbuf); -} - -void empty_callback(const void* /* closure */, upb::Handlers* /* h_ptr */) {} - -void test_emptyhandlers(upb::SymbolTable* symtab) { - // Create an empty handlers to make sure that the decoder can handle empty - // messages. - HandlerRegisterData handlerdata; - handlerdata.mode = test_mode; - - upb::HandlerCache handler_cache(empty_callback, &handlerdata); - upb::pb::CodeCache pb_code_cache(&handler_cache); - - upb::MessageDefPtr md = upb::MessageDefPtr(Empty_getmsgdef(symtab->ptr())); - global_handlers = handler_cache.Get(md); - global_method = pb_code_cache.Get(md); - - // TODO: also test the case where a message has fields, but the fields are - // submessage fields and have no handlers. This also results in a decoder - // method with no field-handling code. - - // Ensure that the method can run with empty and non-empty input. - string test_unknown_field_msg = - cat(tag(1, UPB_WIRE_TYPE_VARINT), varint(42), - tag(2, UPB_WIRE_TYPE_DELIMITED), delim("My test data")); - const struct { - const char* data; - size_t length; - } testdata[] = { - { "", 0 }, - { test_unknown_field_msg.data(), test_unknown_field_msg.size() }, - { NULL, 0 }, - }; - for (int i = 0; testdata[i].data; i++) { - VerboseParserEnvironment env(filter_hash != 0); - upb::Sink sink(global_method.dest_handlers(), &closures[0]); - upb::pb::DecoderPtr decoder = - CreateDecoder(env.arena(), global_method, sink, env.status()); - env.ResetBytesSink(decoder.input()); - env.Reset(testdata[i].data, testdata[i].length, true, false); - ASSERT(env.Start()); - ASSERT(env.ParseBuffer(-1)); - ASSERT(env.End()); - ASSERT(env.CheckConsistency()); - } -} - -void run_tests() { - HandlerRegisterData handlerdata; - handlerdata.mode = test_mode; - - upb::SymbolTable symtab; - upb::HandlerCache handler_cache(callback, &handlerdata); - upb::pb::CodeCache pb_code_cache(&handler_cache); - - upb::MessageDefPtr md(DecoderTest_getmsgdef(symtab.ptr())); - global_handlers = handler_cache.Get(md); - global_method = pb_code_cache.Get(md); - completed = 0; - - test_invalid(); - test_valid(); - - test_emptyhandlers(&symtab); -} - -extern "C" { - -int run_tests(int argc, char *argv[]) { - if (argc > 1) - filter_hash = (uint32_t)strtol(argv[1], NULL, 16); - for (int i = 0; i < MAX_NESTING; i++) { - closures[i] = i; - } - - // Count tests. - count = &total; - total = 0; - test_mode = COUNT_ONLY; - run_tests(); - count = &completed; - - total *= 2; // NO_HANDLERS, ALL_HANDLERS. - - test_mode = NO_HANDLERS; - run_tests(); - - test_mode = ALL_HANDLERS; - run_tests(); - - printf("All tests passed, %d assertions.\n", num_assertions); - return 0; -} - -} diff --git a/third_party/upb/tests/pb/test_decoder.proto b/third_party/upb/tests/pb/test_decoder.proto deleted file mode 100644 index e9fa6ad32ce..00000000000 --- a/third_party/upb/tests/pb/test_decoder.proto +++ /dev/null @@ -1,128 +0,0 @@ - -syntax = "proto2"; - -enum TestEnum { - FOO = 1; -} - -message Empty {} - -message DecoderTest { - optional double f_double = 1; - optional float f_float = 2; - optional int64 f_int64 = 3; - optional uint64 f_uint64 = 4; - optional int32 f_int32 = 5; - optional fixed64 f_fixed64 = 6; - optional fixed32 f_fixed32 = 7; - optional bool f_bool = 8; - optional string f_string = 9; - optional DecoderTest f_message = 11; - optional bytes f_bytes = 12; - optional uint32 f_uint32 = 13; - optional TestEnum f_enum = 14; - optional sfixed32 f_sfixed32 = 15; - optional sfixed64 f_sfixed64 = 16; - optional sint32 f_sint32 = 17; - optional sint64 f_sint64 = 18; - - optional string nop_field = 40; - - repeated double r_double = 536869912; - repeated float r_float = 536869913; - repeated int64 r_int64 = 536869914; - repeated uint64 r_uint64 = 536869915; - repeated int32 r_int32 = 536869916; - repeated fixed64 r_fixed64 = 536869917; - repeated fixed32 r_fixed32 = 536869918; - repeated bool r_bool = 536869919; - repeated string r_string = 536869920; - repeated DecoderTest r_message = 536869922; - repeated bytes r_bytes = 536869923; - repeated uint32 r_uint32 = 536869924; - repeated TestEnum r_enum = 536869925; - repeated sfixed32 r_sfixed32 = 536869926; - repeated sfixed64 r_sfixed64 = 536869927; - repeated sint32 r_sint32 = 536869928; - repeated sint64 r_sint64 = 536869929; - - optional group F_group = 10 { - optional double f_double = 1; - optional float f_float = 2; - optional int64 f_int64 = 3; - optional uint64 f_uint64 = 4; - optional int32 f_int32 = 5; - optional fixed64 f_fixed64 = 6; - optional fixed32 f_fixed32 = 7; - optional bool f_bool = 8; - optional string f_string = 9; - optional DecoderTest f_message = 11; - optional bytes f_bytes = 12; - optional uint32 f_uint32 = 13; - optional TestEnum f_enum = 14; - optional sfixed32 f_sfixed32 = 15; - optional sfixed64 f_sfixed64 = 16; - optional sint32 f_sint32 = 17; - optional sint64 f_sint64 = 18; - - optional string nop_field = 40; - - repeated double r_double = 536869912; - repeated float r_float = 536869913; - repeated int64 r_int64 = 536869914; - repeated uint64 r_uint64 = 536869915; - repeated int32 r_int32 = 536869916; - repeated fixed64 r_fixed64 = 536869917; - repeated fixed32 r_fixed32 = 536869918; - repeated bool r_bool = 536869919; - repeated string r_string = 536869920; - repeated DecoderTest r_message = 536869922; - repeated bytes r_bytes = 536869923; - repeated uint32 r_uint32 = 536869924; - repeated TestEnum r_enum = 536869925; - repeated sfixed32 r_sfixed32 = 536869926; - repeated sfixed64 r_sfixed64 = 536869927; - repeated sint32 r_sint32 = 536869928; - repeated sint64 r_sint64 = 536869929; - } - - optional group R_group = 536869921 { - optional double f_double = 1; - optional float f_float = 2; - optional int64 f_int64 = 3; - optional uint64 f_uint64 = 4; - optional int32 f_int32 = 5; - optional fixed64 f_fixed64 = 6; - optional fixed32 f_fixed32 = 7; - optional bool f_bool = 8; - optional string f_string = 9; - optional DecoderTest f_message = 11; - optional bytes f_bytes = 12; - optional uint32 f_uint32 = 13; - optional TestEnum f_enum = 14; - optional sfixed32 f_sfixed32 = 15; - optional sfixed64 f_sfixed64 = 16; - optional sint32 f_sint32 = 17; - optional sint64 f_sint64 = 18; - - optional string nop_field = 40; - - repeated double r_double = 536869912; - repeated float r_float = 536869913; - repeated int64 r_int64 = 536869914; - repeated uint64 r_uint64 = 536869915; - repeated int32 r_int32 = 536869916; - repeated fixed64 r_fixed64 = 536869917; - repeated fixed32 r_fixed32 = 536869918; - repeated bool r_bool = 536869919; - repeated string r_string = 536869920; - repeated DecoderTest r_message = 536869922; - repeated bytes r_bytes = 536869923; - repeated uint32 r_uint32 = 536869924; - repeated TestEnum r_enum = 536869925; - repeated sfixed32 r_sfixed32 = 536869926; - repeated sfixed64 r_sfixed64 = 536869927; - repeated sint32 r_sint32 = 536869928; - repeated sint64 r_sint64 = 536869929; - } -} diff --git a/third_party/upb/tests/pb/test_encoder.cc b/third_party/upb/tests/pb/test_encoder.cc deleted file mode 100644 index b358ef592c0..00000000000 --- a/third_party/upb/tests/pb/test_encoder.cc +++ /dev/null @@ -1,102 +0,0 @@ - -#include - -#include "google/protobuf/descriptor.upb.h" -#include "google/protobuf/descriptor.upbdefs.h" -#include "tests/test_util.h" -#include "tests/upb_test.h" -#include "upb/pb/decoder.h" -#include "upb/pb/encoder.h" -#include "upb/port_def.inc" -#include "upb/upb.hpp" - -template -class FillStringHandler { - public: - static void SetHandler(upb_byteshandler* handler) { - upb_byteshandler_setstartstr(handler, &FillStringHandler::StartString, - NULL); - upb_byteshandler_setstring(handler, &FillStringHandler::StringBuf, NULL); - } - - private: - // TODO(haberman): add UpbBind/UpbMakeHandler support to BytesHandler so these - // can be prettier callbacks. - static void* StartString(void *c, const void *hd, size_t size) { - UPB_UNUSED(hd); - UPB_UNUSED(size); - - T* str = static_cast(c); - str->clear(); - return c; - } - - static size_t StringBuf(void* c, const void* hd, const char* buf, size_t n, - const upb_bufhandle* h) { - UPB_UNUSED(hd); - UPB_UNUSED(h); - - T* str = static_cast(c); - try { - str->append(buf, n); - return n; - } catch (const std::exception&) { - return 0; - } - } -}; - -class StringSink { - public: - template - explicit StringSink(T* target) { - // TODO(haberman): we need to avoid rebuilding a new handler every time, - // but with class globals disallowed for google3 C++ this is tricky. - upb_byteshandler_init(&handler_); - FillStringHandler::SetHandler(&handler_); - input_.Reset(&handler_, target); - } - - upb::BytesSink input() { return input_; } - - private: - upb_byteshandler handler_; - upb::BytesSink input_; -}; - -void test_pb_roundtrip() { - std::string input( - google_protobuf_descriptor_proto_upbdefinit.descriptor.data, - google_protobuf_descriptor_proto_upbdefinit.descriptor.size); - std::cout << input.size() << "\n"; - upb::SymbolTable symtab; - upb::HandlerCache encoder_cache(upb::pb::EncoderPtr::NewCache()); - upb::pb::CodeCache decoder_cache(&encoder_cache); - upb::Arena arena; - upb::Status status; - upb::MessageDefPtr md( - google_protobuf_FileDescriptorProto_getmsgdef(symtab.ptr())); - ASSERT(md); - const upb::Handlers *encoder_handlers = encoder_cache.Get(md); - ASSERT(encoder_handlers); - const upb::pb::DecoderMethodPtr method = decoder_cache.Get(md); - - std::string output; - StringSink string_sink(&output); - upb::pb::EncoderPtr encoder = - upb::pb::EncoderPtr::Create(&arena, encoder_handlers, string_sink.input()); - upb::pb::DecoderPtr decoder = - upb::pb::DecoderPtr::Create(&arena, method, encoder.input(), &status); - bool ok = upb::PutBuffer(input, decoder.input()); - ASSERT(ok); - ASSERT(input == output); -} - -extern "C" { -int run_tests(int argc, char *argv[]) { - UPB_UNUSED(argc); - UPB_UNUSED(argv); - test_pb_roundtrip(); - return 0; -} -} diff --git a/third_party/upb/tests/test_cpp.cc b/third_party/upb/tests/test_cpp.cc index 9d3f64acb3f..ece707b1db6 100644 --- a/third_party/upb/tests/test_cpp.cc +++ b/third_party/upb/tests/test_cpp.cc @@ -1,5 +1,29 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + /* - * * Tests for C++ wrappers. */ @@ -12,889 +36,16 @@ #include #include "tests/test_cpp.upbdefs.h" +#include "tests/test_cpp.upb.h" #include "tests/upb_test.h" #include "upb/def.h" -#include "upb/handlers.h" -#include "upb/pb/decoder.h" -#include "upb/pb/textprinter.h" -#include "upb/port_def.inc" +#include "upb/def.hpp" +#include "upb/json_decode.h" +#include "upb/json_encode.h" #include "upb/upb.h" -template -void AssertInsert(T* const container, const typename T::value_type& val) { - bool inserted = container->insert(val).second; - ASSERT(inserted); -} - -// -// Tests for registering and calling handlers in all their variants. -// This test code is very repetitive because we have to declare each -// handler function variant separately, and they all have different -// signatures so it does not lend itself well to templates. -// -// We test three handler types: -// StartMessage (no data params) -// Int32 (1 data param (int32_t)) -// String Buf (2 data params (const char*, size_t)) -// -// For each handler type we test all 8 handler variants: -// (handler data?) x (function/method) x (returns {void, success}) -// -// The one notable thing we don't test at the moment is -// StartSequence/StartString handlers: these are different from StartMessage() -// in that they return void* for the sub-closure. But this is exercised in -// other tests. -// - -static const int kExpectedHandlerData = 1232323; - -class StringBufTesterBase { - public: - static constexpr int kFieldNumber = 3; - - StringBufTesterBase() : seen_(false), handler_data_val_(0) {} - - void CallAndVerify(upb::Sink sink, upb::FieldDefPtr f) { - upb_selector_t start; - ASSERT(upb_handlers_getselector(f.ptr(), UPB_HANDLER_STARTSTR, &start)); - upb_selector_t str; - ASSERT(upb_handlers_getselector(f.ptr(), UPB_HANDLER_STRING, &str)); - - ASSERT(!seen_); - upb::Sink sub; - sink.StartMessage(); - sink.StartString(start, 0, &sub); - size_t ret = sub.PutStringBuffer(str, &buf_, 5, &handle_); - ASSERT(seen_); - ASSERT(len_ == 5); - ASSERT(ret == 5); - ASSERT(handler_data_val_ == kExpectedHandlerData); - } - - protected: - bool seen_; - int handler_data_val_; - size_t len_; - char buf_; - upb_bufhandle handle_; -}; - -// Test 8 combinations of: -// (handler data?) x (buffer handle?) x (function/method) -// -// Then we add one test each for this variation: to prevent combinatorial -// explosion of these tests we don't test the full 16 combinations, but -// rely on our knowledge that the implementation processes the return wrapping -// in a second separate and independent stage: -// -// (function/method) - -class StringBufTesterVoidMethodNoHandlerDataNoHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidMethodNoHandlerDataNoHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - void Handler(const char *buf, size_t len) { - ASSERT(buf == &buf_); - seen_ = true; - len_ = len; - } -}; - -class StringBufTesterVoidMethodNoHandlerDataWithHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidMethodNoHandlerDataWithHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - void Handler(const char *buf, size_t len, const upb_bufhandle* handle) { - ASSERT(buf == &buf_); - ASSERT(handle == &handle_); - seen_ = true; - len_ = len; - } -}; - -class StringBufTesterVoidMethodWithHandlerDataNoHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidMethodWithHandlerDataNoHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler( - f, UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - void Handler(const int* hd, const char *buf, size_t len) { - ASSERT(buf == &buf_); - handler_data_val_ = *hd; - seen_ = true; - len_ = len; - } -}; - -class StringBufTesterVoidMethodWithHandlerDataWithHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidMethodWithHandlerDataWithHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler( - f, UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - void Handler(const int* hd, const char* buf, size_t len, - const upb_bufhandle* handle) { - ASSERT(buf == &buf_); - ASSERT(handle == &handle_); - handler_data_val_ = *hd; - seen_ = true; - len_ = len; - } -}; - -class StringBufTesterVoidFunctionNoHandlerDataNoHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidFunctionNoHandlerDataNoHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - static void Handler(ME* t, const char *buf, size_t len) { - ASSERT(buf == &t->buf_); - t->seen_ = true; - t->len_ = len; - } -}; - -class StringBufTesterVoidFunctionNoHandlerDataWithHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidFunctionNoHandlerDataWithHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - static void Handler(ME* t, const char* buf, size_t len, - const upb_bufhandle* handle) { - ASSERT(buf == &t->buf_); - ASSERT(handle == &t->handle_); - t->seen_ = true; - t->len_ = len; - } -}; - -class StringBufTesterVoidFunctionWithHandlerDataNoHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidFunctionWithHandlerDataNoHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler( - f, UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - static void Handler(ME* t, const int* hd, const char *buf, size_t len) { - ASSERT(buf == &t->buf_); - t->handler_data_val_ = *hd; - t->seen_ = true; - t->len_ = len; - } -}; - -class StringBufTesterVoidFunctionWithHandlerDataWithHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterVoidFunctionWithHandlerDataWithHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler( - f, UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - static void Handler(ME* t, const int* hd, const char* buf, size_t len, - const upb_bufhandle* handle) { - ASSERT(buf == &t->buf_); - ASSERT(handle == &t->handle_); - t->handler_data_val_ = *hd; - t->seen_ = true; - t->len_ = len; - } -}; - -class StringBufTesterSizeTMethodNoHandlerDataNoHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterSizeTMethodNoHandlerDataNoHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - size_t Handler(const char *buf, size_t len) { - ASSERT(buf == &buf_); - seen_ = true; - len_ = len; - return len; - } -}; - -class StringBufTesterBoolMethodNoHandlerDataNoHandle - : public StringBufTesterBase { - public: - typedef StringBufTesterBoolMethodNoHandlerDataNoHandle ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStringHandler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - bool Handler(const char *buf, size_t len) { - ASSERT(buf == &buf_); - seen_ = true; - len_ = len; - return true; - } -}; - -class StartMsgTesterBase { - public: - // We don't need the FieldDef it will create, but the test harness still - // requires that we provide one. - static constexpr int kFieldNumber = 3; - - StartMsgTesterBase() : seen_(false), handler_data_val_(0) {} - - void CallAndVerify(upb::Sink sink, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(!seen_); - sink.StartMessage(); - ASSERT(seen_); - ASSERT(handler_data_val_ == kExpectedHandlerData); - } - - protected: - bool seen_; - int handler_data_val_; -}; - -// Test all 8 combinations of: -// (handler data?) x (function/method) x (returns {void, bool}) - -class StartMsgTesterVoidFunctionNoHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterVoidFunctionNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler(UpbMakeHandler(&Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - //static void Handler(ME* t) { - static void Handler(ME* t) { - t->seen_ = true; - } -}; - -class StartMsgTesterBoolFunctionNoHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterBoolFunctionNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler(UpbMakeHandler(&Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - static bool Handler(ME* t) { - t->seen_ = true; - return true; - } -}; - -class StartMsgTesterVoidMethodNoHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterVoidMethodNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler(UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - void Handler() { - seen_ = true; - } -}; - -class StartMsgTesterBoolMethodNoHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterBoolMethodNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler(UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - bool Handler() { - seen_ = true; - return true; - } -}; - -class StartMsgTesterVoidFunctionWithHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterVoidFunctionWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler( - UpbBind(&Handler, new int(kExpectedHandlerData)))); - } - - private: - static void Handler(ME* t, const int* hd) { - t->handler_data_val_ = *hd; - t->seen_ = true; - } -}; - -class StartMsgTesterBoolFunctionWithHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterBoolFunctionWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler( - UpbBind(&Handler, new int(kExpectedHandlerData)))); - } - - private: - static bool Handler(ME* t, const int* hd) { - t->handler_data_val_ = *hd; - t->seen_ = true; - return true; - } -}; - -class StartMsgTesterVoidMethodWithHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterVoidMethodWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler( - UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - void Handler(const int* hd) { - handler_data_val_ = *hd; - seen_ = true; - } -}; - -class StartMsgTesterBoolMethodWithHandlerData : public StartMsgTesterBase { - public: - typedef StartMsgTesterBoolMethodWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - UPB_UNUSED(f); - ASSERT(h.SetStartMessageHandler( - UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - bool Handler(const int* hd) { - handler_data_val_ = *hd; - seen_ = true; - return true; - } -}; - -class Int32ValueTesterBase { - public: - static constexpr int kFieldNumber = 1; - - Int32ValueTesterBase() : seen_(false), val_(0), handler_data_val_(0) {} - - void CallAndVerify(upb::Sink sink, upb::FieldDefPtr f) { - upb_selector_t s; - ASSERT(upb_handlers_getselector(f.ptr(), UPB_HANDLER_INT32, &s)); - - ASSERT(!seen_); - sink.PutInt32(s, 5); - ASSERT(seen_); - ASSERT(handler_data_val_ == kExpectedHandlerData); - ASSERT(val_ == 5); - } - - protected: - bool seen_; - int32_t val_; - int handler_data_val_; -}; - -// Test all 8 combinations of: -// (handler data?) x (function/method) x (returns {void, bool}) - -class ValueTesterInt32VoidFunctionNoHandlerData - : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32VoidFunctionNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler(f, UpbMakeHandler(&Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - static void Handler(ME* t, int32_t val) { - t->val_ = val; - t->seen_ = true; - } -}; - -class ValueTesterInt32BoolFunctionNoHandlerData - : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32BoolFunctionNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler(f, UpbMakeHandler(&Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - static bool Handler(ME* t, int32_t val) { - t->val_ = val; - t->seen_ = true; - return true; - } -}; - -class ValueTesterInt32VoidMethodNoHandlerData : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32VoidMethodNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - void Handler(int32_t val) { - val_ = val; - seen_ = true; - } -}; - -class ValueTesterInt32BoolMethodNoHandlerData : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32BoolMethodNoHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler(f, UpbMakeHandler(&ME::Handler))); - handler_data_val_ = kExpectedHandlerData; - } - - private: - bool Handler(int32_t val) { - val_ = val; - seen_ = true; - return true; - } -}; - -class ValueTesterInt32VoidFunctionWithHandlerData - : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32VoidFunctionWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler( - f, UpbBind(&Handler, new int(kExpectedHandlerData)))); - } - - private: - static void Handler(ME* t, const int* hd, int32_t val) { - t->val_ = val; - t->handler_data_val_ = *hd; - t->seen_ = true; - } -}; - -class ValueTesterInt32BoolFunctionWithHandlerData - : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32BoolFunctionWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler( - f, UpbBind(&Handler, new int(kExpectedHandlerData)))); - } - - private: - static bool Handler(ME* t, const int* hd, int32_t val) { - t->val_ = val; - t->handler_data_val_ = *hd; - t->seen_ = true; - return true; - } -}; - -class ValueTesterInt32VoidMethodWithHandlerData : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32VoidMethodWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler( - f, UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - void Handler(const int* hd, int32_t val) { - val_ = val; - handler_data_val_ = *hd; - seen_ = true; - } -}; - -class ValueTesterInt32BoolMethodWithHandlerData : public Int32ValueTesterBase { - public: - typedef ValueTesterInt32BoolMethodWithHandlerData ME; - void Register(upb::HandlersPtr h, upb::FieldDefPtr f) { - ASSERT(h.SetInt32Handler( - f, UpbBind(&ME::Handler, new int(kExpectedHandlerData)))); - } - - private: - bool Handler(const int* hd, int32_t val) { - val_ = val; - handler_data_val_ = *hd; - seen_ = true; - return true; - } -}; - -template -void RegisterHandlers(const void* closure, upb::Handlers* h_ptr) { - T* tester = const_cast(static_cast(closure)); - upb::HandlersPtr h(h_ptr); - upb::FieldDefPtr f = h.message_def().FindFieldByNumber(T::kFieldNumber); - ASSERT(f); - tester->Register(h, f); -} - -template -void TestHandler() { - T tester; - upb::SymbolTable symtab; - upb::HandlerCache cache(&RegisterHandlers, &tester); - upb::MessageDefPtr md(upb_test_TestMessage_getmsgdef(symtab.ptr())); - ASSERT(md); - upb::FieldDefPtr f = md.FindFieldByNumber(T::kFieldNumber); - ASSERT(f); - - const upb::Handlers* h = cache.Get(md); - - upb::Sink sink(h, &tester); - tester.CallAndVerify(sink, f); -} - -class T1 {}; -class T2 {}; - -template -void DoNothingHandler(C* closure) { - UPB_UNUSED(closure); -} - -template -void DoNothingInt32Handler(C* closure, int32_t val) { - UPB_UNUSED(closure); - UPB_UNUSED(val); -} - -template -class DoNothingStartHandler { - public: - // We wrap these functions inside of a class for a somewhat annoying reason. - // UpbMakeHandler() is a macro, so we can't say - // UpbMakeHandler(DoNothingStartHandler) - // - // because otherwise the preprocessor gets confused at the comma and tries to - // make it two macro arguments. The usual solution doesn't work either: - // UpbMakeHandler((DoNothingStartHandler)) - // - // If we do that the macro expands correctly, but then it tries to pass that - // parenthesized expression as a template parameter, ie. Type<(F)>, which - // isn't legal C++ (Clang will compile it but complains with - // warning: address non-type template argument cannot be surrounded by - // parentheses - // - // This two-level thing allows us to effectively pass two template parameters, - // but without any commas: - // UpbMakeHandler(DoNothingStartHandler::Handler) - template - static R* Handler(C* closure) { - UPB_UNUSED(closure); - return NULL; - } - - template - static R* String(C* closure, size_t size_len) { - UPB_UNUSED(closure); - UPB_UNUSED(size_len); - return NULL; - } -}; - -template -void DoNothingStringBufHandler(C* closure, const char *buf, size_t len) { - UPB_UNUSED(closure); - UPB_UNUSED(buf); - UPB_UNUSED(len); -} - -template -void DoNothingEndMessageHandler(C* closure, upb_status *status) { - UPB_UNUSED(closure); - UPB_UNUSED(status); -} - -void RegisterMismatchedTypes(const void* closure, upb::Handlers* h_ptr) { - upb::HandlersPtr h(h_ptr); - UPB_UNUSED(closure); - - upb::MessageDefPtr md(h.message_def()); - ASSERT(md); - upb::FieldDefPtr i32 = md.FindFieldByName("i32"); - upb::FieldDefPtr r_i32 = md.FindFieldByName("r_i32"); - upb::FieldDefPtr str = md.FindFieldByName("str"); - upb::FieldDefPtr r_str = md.FindFieldByName("r_str"); - upb::FieldDefPtr msg = md.FindFieldByName("msg"); - upb::FieldDefPtr r_msg = md.FindFieldByName("r_msg"); - ASSERT(i32); - ASSERT(r_i32); - ASSERT(str); - ASSERT(r_str); - ASSERT(msg); - ASSERT(r_msg); - - // Establish T1 as the top-level closure type. - ASSERT(h.SetInt32Handler(i32, UpbMakeHandler(DoNothingInt32Handler))); - - // Now any other attempt to set another handler with T2 as the top-level - // closure should fail. But setting these same handlers with T1 as the - // top-level closure will succeed. - ASSERT(!h.SetStartMessageHandler(UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetStartMessageHandler(UpbMakeHandler(DoNothingHandler))); - - ASSERT( - !h.SetEndMessageHandler(UpbMakeHandler(DoNothingEndMessageHandler))); - ASSERT( - h.SetEndMessageHandler(UpbMakeHandler(DoNothingEndMessageHandler))); - - ASSERT(!h.SetStartStringHandler( - str, UpbMakeHandler(DoNothingStartHandler::String))); - ASSERT(h.SetStartStringHandler( - str, UpbMakeHandler(DoNothingStartHandler::String))); - - ASSERT(!h.SetEndStringHandler(str, UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetEndStringHandler(str, UpbMakeHandler(DoNothingHandler))); - - ASSERT(!h.SetStartSubMessageHandler( - msg, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSubMessageHandler( - msg, UpbMakeHandler(DoNothingStartHandler::Handler))); - - ASSERT( - !h.SetEndSubMessageHandler(msg, UpbMakeHandler(DoNothingHandler))); - ASSERT( - h.SetEndSubMessageHandler(msg, UpbMakeHandler(DoNothingHandler))); - - ASSERT(!h.SetStartSequenceHandler( - r_i32, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSequenceHandler( - r_i32, UpbMakeHandler(DoNothingStartHandler::Handler))); - - ASSERT(!h.SetEndSequenceHandler( - r_i32, UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetEndSequenceHandler( - r_i32, UpbMakeHandler(DoNothingHandler))); - - ASSERT(!h.SetStartSequenceHandler( - r_msg, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSequenceHandler( - r_msg, UpbMakeHandler(DoNothingStartHandler::Handler))); - - ASSERT(!h.SetEndSequenceHandler( - r_msg, UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetEndSequenceHandler( - r_msg, UpbMakeHandler(DoNothingHandler))); - - ASSERT(!h.SetStartSequenceHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSequenceHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::Handler))); - - ASSERT(!h.SetEndSequenceHandler( - r_str, UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetEndSequenceHandler( - r_str, UpbMakeHandler(DoNothingHandler))); - - // By setting T1 as the return type for the Start* handlers we have - // established T1 as the type of the sequence and string frames. - // Setting callbacks that use T2 should fail, but T1 should succeed. - ASSERT( - !h.SetStringHandler(str, UpbMakeHandler(DoNothingStringBufHandler))); - ASSERT( - h.SetStringHandler(str, UpbMakeHandler(DoNothingStringBufHandler))); - - ASSERT(!h.SetInt32Handler(r_i32, UpbMakeHandler(DoNothingInt32Handler))); - ASSERT(h.SetInt32Handler(r_i32, UpbMakeHandler(DoNothingInt32Handler))); - - ASSERT(!h.SetStartSubMessageHandler( - r_msg, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSubMessageHandler( - r_msg, UpbMakeHandler(DoNothingStartHandler::Handler))); - - ASSERT(!h.SetEndSubMessageHandler(r_msg, - UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetEndSubMessageHandler(r_msg, - UpbMakeHandler(DoNothingHandler))); - - ASSERT(!h.SetStartStringHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::String))); - ASSERT(h.SetStartStringHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::String))); - - ASSERT( - !h.SetEndStringHandler(r_str, UpbMakeHandler(DoNothingHandler))); - ASSERT(h.SetEndStringHandler(r_str, UpbMakeHandler(DoNothingHandler))); - - ASSERT(!h.SetStringHandler(r_str, - UpbMakeHandler(DoNothingStringBufHandler))); - ASSERT(h.SetStringHandler(r_str, - UpbMakeHandler(DoNothingStringBufHandler))); -} - -void RegisterMismatchedTypes2(const void* closure, upb::Handlers* h_ptr) { - upb::HandlersPtr h(h_ptr); - UPB_UNUSED(closure); - - upb::MessageDefPtr md(h.message_def()); - ASSERT(md); - upb::FieldDefPtr i32 = md.FindFieldByName("i32"); - upb::FieldDefPtr r_i32 = md.FindFieldByName("r_i32"); - upb::FieldDefPtr str = md.FindFieldByName("str"); - upb::FieldDefPtr r_str = md.FindFieldByName("r_str"); - upb::FieldDefPtr msg = md.FindFieldByName("msg"); - upb::FieldDefPtr r_msg = md.FindFieldByName("r_msg"); - ASSERT(i32); - ASSERT(r_i32); - ASSERT(str); - ASSERT(r_str); - ASSERT(msg); - ASSERT(r_msg); - - // For our second test we do the same in reverse. We directly set the type of - // the frame and then observe failures at registering a Start* handler that - // returns a different type. - - // First establish the type of a sequence frame directly. - ASSERT(h.SetInt32Handler(r_i32, UpbMakeHandler(DoNothingInt32Handler))); - - // Now setting a StartSequence callback that returns a different type should - // fail. - ASSERT(!h.SetStartSequenceHandler( - r_i32, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSequenceHandler( - r_i32, UpbMakeHandler(DoNothingStartHandler::Handler))); - - // Establish a string frame directly. - ASSERT(h.SetStringHandler(r_str, - UpbMakeHandler(DoNothingStringBufHandler))); - - // Fail setting a StartString callback that returns a different type. - ASSERT(!h.SetStartStringHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::String))); - ASSERT(h.SetStartStringHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::String))); - - // The previous established T1 as the frame for the r_str sequence. - ASSERT(!h.SetStartSequenceHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::Handler))); - ASSERT(h.SetStartSequenceHandler( - r_str, UpbMakeHandler(DoNothingStartHandler::Handler))); -} - -void TestMismatchedTypes() { - // First create a schema for our test. - upb::SymbolTable symtab; - upb::HandlerCache handler_cache(&RegisterMismatchedTypes, nullptr); - upb::HandlerCache handler_cache2(&RegisterMismatchedTypes2, nullptr); - const upb::MessageDefPtr md(upb_test_TestMessage_getmsgdef(symtab.ptr())); - - // Now test the type-checking in handler registration. - handler_cache.Get(md); - handler_cache2.Get(md); -} - -class IntIncrementer { - public: - explicit IntIncrementer(int* x) : x_(x) { (*x_)++; } - ~IntIncrementer() { (*x_)--; } - - static void Handler(void* closure, const IntIncrementer* incrementer, - int32_t x) { - UPB_UNUSED(closure); - UPB_UNUSED(incrementer); - UPB_UNUSED(x); - } - - private: - int* x_; -}; - -void RegisterIncrementor(const void* closure, upb::Handlers* h_ptr) { - const int* x = static_cast(closure); - upb::HandlersPtr h(h_ptr); - upb::FieldDefPtr f = h.message_def().FindFieldByName("i32"); - h.SetInt32Handler(f, UpbBind(&IntIncrementer::Handler, - new IntIncrementer(const_cast(x)))); -} - -void TestHandlerDataDestruction() { - int x = 0; - - { - upb::SymbolTable symtab; - upb::HandlerCache cache(&RegisterIncrementor, &x); - upb::MessageDefPtr md(upb_test_TestMessage_getmsgdef(symtab.ptr())); - cache.Get(md); - ASSERT(x == 1); - } - - ASSERT(x == 0); -} +// Must be last. +#include "upb/port_def.inc" void TestIteration() { upb::SymbolTable symtab; @@ -977,43 +128,32 @@ void TestInlinedArena() { ASSERT(n == 0); } -extern "C" { - -int run_tests() { - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); +void TestDefault() { + upb::SymbolTable symtab; + upb::Arena arena; + upb::MessageDefPtr md(upb_test_TestMessage_getmsgdef(symtab.ptr())); + upb_test_TestMessage *msg = upb_test_TestMessage_new(arena.ptr()); + size_t size = upb_json_encode(msg, md.ptr(), NULL, 0, NULL, 0, NULL); + ASSERT(size == 2); // "{}" +} - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); - TestHandler(); +void TestJsonNull() { + upb::SymbolTable symtab; + upb::MessageDefPtr md(upb_test_TestMessage_getmsgdef(symtab.ptr())); + upb::FieldDefPtr i32_f = md.FindFieldByName("i32"); + upb::FieldDefPtr str_f = md.FindFieldByName("str"); + ASSERT(i32_f && str_f); + ASSERT(i32_f.default_value().int32_val == 5); + ASSERT(strcmp(str_f.default_value().str_val.data, "abc") == 0); + ASSERT(str_f.default_value().str_val.size == 3); +} - TestMismatchedTypes(); +extern "C" { - TestHandlerDataDestruction(); +int run_tests() { TestIteration(); TestArena(); + TestDefault(); return 0; } diff --git a/third_party/upb/tests/test_cpp.proto b/third_party/upb/tests/test_cpp.proto index f890350ece1..4992b8c55c3 100644 --- a/third_party/upb/tests/test_cpp.proto +++ b/third_party/upb/tests/test_cpp.proto @@ -3,9 +3,9 @@ syntax = "proto2"; package upb.test; message TestMessage { - optional int32 i32 = 1; + optional int32 i32 = 1 [default = 5]; repeated int32 r_i32 = 2; - optional string str = 3; + optional string str = 3 [default = "abc"]; repeated string r_str = 4; optional TestMessage msg = 5; repeated TestMessage r_msg = 6; diff --git a/third_party/upb/tests/test_generated_code.c b/third_party/upb/tests/test_generated_code.c index bd1066b2334..2afdefd02c5 100644 --- a/third_party/upb/tests/test_generated_code.c +++ b/third_party/upb/tests/test_generated_code.c @@ -1,3 +1,30 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + /* Test of generated code, with a special focus on features that are not used in * descriptor.proto or conformance.proto (since these get some testing from * upb/def.c and tests/conformance_upb.c, respectively). @@ -410,6 +437,101 @@ void test_status_truncation(void) { } } +void decrement_int(void *ptr) { + int* iptr = ptr; + (*iptr)--; +} + +void test_arena_fuse(void) { + int i1 = 5; + int i2 = 5; + int i3 = 5; + int i4 = 5; + + upb_arena *arena1 = upb_arena_new(); + upb_arena *arena2 = upb_arena_new(); + + upb_arena_addcleanup(arena1, &i1, decrement_int); + upb_arena_addcleanup(arena2, &i2, decrement_int); + + ASSERT(upb_arena_fuse(arena1, arena2)); + + upb_arena_addcleanup(arena1, &i3, decrement_int); + upb_arena_addcleanup(arena2, &i4, decrement_int); + + upb_arena_free(arena1); + ASSERT(i1 == 5); + ASSERT(i2 == 5); + ASSERT(i3 == 5); + ASSERT(i4 == 5); + upb_arena_free(arena2); + ASSERT(i1 == 4); + ASSERT(i2 == 4); + ASSERT(i3 == 4); + ASSERT(i4 == 4); +} + +/* Do nothing allocator for testing */ +static void *test_allocfunc(upb_alloc *alloc, void *ptr, size_t oldsize, + size_t size) { + return upb_alloc_global.func(alloc, ptr, oldsize, size); +} +upb_alloc test_alloc = {&test_allocfunc}; + +void test_arena_fuse_with_initial_block(void) { + char buf1[1024]; + char buf2[1024]; + upb_arena *arenas[] = {upb_arena_init(buf1, 1024, &upb_alloc_global), + upb_arena_init(buf2, 1024, &upb_alloc_global), + upb_arena_init(NULL, 0, &test_alloc), + upb_arena_init(NULL, 0, &upb_alloc_global)}; + int size = sizeof(arenas)/sizeof(arenas[0]); + for (int i = 0; i < size; ++i) { + for (int j = 0; j < size; ++j) { + if (i == j) { + ASSERT(upb_arena_fuse(arenas[i], arenas[j])); + } else { + ASSERT(!upb_arena_fuse(arenas[i], arenas[j])); + } + } + } + + for (int i = 0; i < size; ++i) upb_arena_free(arenas[i]); +} + +void test_arena_decode(void) { + // Tests against a bug that previously existed when passing an arena to + // upb_decode(). + char large_string[1024] = {0}; + upb_strview large_string_view = {large_string, sizeof(large_string)}; + upb_arena *tmp = upb_arena_new(); + + protobuf_test_messages_proto3_TestAllTypesProto3 *msg = + protobuf_test_messages_proto3_TestAllTypesProto3_new(tmp); + + protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_bytes( + msg, large_string_view); + + upb_strview serialized; + serialized.data = protobuf_test_messages_proto3_TestAllTypesProto3_serialize( + msg, tmp, &serialized.size); + + upb_arena *arena = upb_arena_new(); + // Parse the large payload, forcing an arena block to be allocated. This used + // to corrupt the cleanup list, preventing subsequent upb_arena_addcleanup() + // calls from working properly. + protobuf_test_messages_proto3_TestAllTypesProto3_parse( + serialized.data, serialized.size, arena); + + int i1 = 5; + upb_arena_addcleanup(arena, &i1, decrement_int); + ASSERT(i1 == 5); + upb_arena_free(arena); + ASSERT(i1 == 4); + + upb_arena_free(tmp); +} + int run_tests(int argc, char *argv[]) { test_scalars(); test_utf8(); @@ -419,5 +541,8 @@ int run_tests(int argc, char *argv[]) { test_repeated(); test_null_decode_buf(); test_status_truncation(); + test_arena_fuse(); + test_arena_fuse_with_initial_block(); + test_arena_decode(); return 0; } diff --git a/third_party/upb/tests/test_table.cc b/third_party/upb/tests/test_table.cc index 83b49f5c201..84ede2be2dd 100644 --- a/third_party/upb/tests/test_table.cc +++ b/third_party/upb/tests/test_table.cc @@ -1,5 +1,29 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + /* - * * Tests for upb_table. */ @@ -14,7 +38,8 @@ #include #include "tests/upb_test.h" -#include "upb/table.int.h" +#include "upb/upb.hpp" +#include "upb/table_internal.h" #include "upb/port_def.inc" @@ -25,12 +50,10 @@ namespace upb { template upb_value MakeUpbValue(T val); template T GetUpbValue(upb_value val); -template upb_ctype_t GetUpbValueType(); #define FUNCS(name, type_t, enumval) \ template<> upb_value MakeUpbValue(type_t val) { return upb_value_ ## name(val); } \ template<> type_t GetUpbValue(upb_value val) { return upb_value_get ## name(val); } \ - template<> upb_ctype_t GetUpbValueType() { return enumval; } FUNCS(int32, int32_t, UPB_CTYPE_INT32) FUNCS(int64, int64_t, UPB_CTYPE_INT64) @@ -46,13 +69,12 @@ FUNCS(fptr, upb_func*, UPB_CTYPE_FPTR) class IntTable { public: - IntTable(upb_ctype_t value_type) { upb_inttable_init(&table_, value_type); } - ~IntTable() { upb_inttable_uninit(&table_); } + IntTable() { upb_inttable_init(&table_, arena_.ptr()); } size_t count() { return upb_inttable_count(&table_); } bool Insert(uintptr_t key, upb_value val) { - return upb_inttable_insert(&table_, key, val); + return upb_inttable_insert(&table_, key, val, arena_.ptr()); } bool Replace(uintptr_t key, upb_value val) { @@ -73,11 +95,11 @@ class IntTable { std::pair Lookup32(uint32_t key) const { std::pair ret; - ret.first = upb_inttable_lookup32(&table_, key, &ret.second); + ret.first = upb_inttable_lookup(&table_, key, &ret.second); return ret; } - void Compact() { upb_inttable_compact(&table_); } + void Compact() { upb_inttable_compact(&table_, arena_.ptr()); } class iterator : public std::iterator > { @@ -115,24 +137,25 @@ class IntTable { upb_inttable_iter iter_; }; + upb::Arena arena_; upb_inttable table_; }; class StrTable { public: - StrTable(upb_ctype_t value_type) { upb_strtable_init(&table_, value_type); } - ~StrTable() { upb_strtable_uninit(&table_); } + StrTable() { upb_strtable_init(&table_, 4, arena_.ptr()); } size_t count() { return upb_strtable_count(&table_); } bool Insert(const std::string& key, upb_value val) { - return upb_strtable_insert2(&table_, key.c_str(), key.size(), val); + return upb_strtable_insert(&table_, key.c_str(), key.size(), val, + arena_.ptr()); } std::pair Remove(const std::string& key) { std::pair ret; ret.first = - upb_strtable_remove2(&table_, key.c_str(), key.size(), &ret.second); + upb_strtable_remove(&table_, key.c_str(), key.size(), &ret.second); return ret; } @@ -144,7 +167,7 @@ class StrTable { } void Resize(size_t size_lg2) { - upb_strtable_resize(&table_, size_lg2, &upb_alloc_global); + upb_strtable_resize(&table_, size_lg2, arena_.ptr()); } class iterator : public std::iterator class TypedStrTable { public: - TypedStrTable() : table_(GetUpbValueType()) {} - size_t count() { return table_.count(); } bool Insert(const std::string &key, T val) { @@ -260,8 +282,6 @@ template class TypedStrTable { template class TypedIntTable { public: - TypedIntTable() : table_(GetUpbValueType()) {} - size_t count() { return table_.count(); } bool Insert(uintptr_t key, T val) { @@ -507,7 +527,7 @@ void test_inttable(int32_t *keys, uint16_t num_entries, const char *desc) { MAYBE_BREAK; int32_t key = keys[i & mask]; upb_value v; - bool ok = upb_inttable_lookup32(&table.table_.table_, key, &v); + bool ok = upb_inttable_lookup(&table.table_.table_, key, &v); x += (uintptr_t)ok; } double total = get_usertime() - before; @@ -521,7 +541,7 @@ void test_inttable(int32_t *keys, uint16_t num_entries, const char *desc) { MAYBE_BREAK; int32_t key = keys[rand_order[i & mask]]; upb_value v; - bool ok = upb_inttable_lookup32(&table.table_.table_, key, &v); + bool ok = upb_inttable_lookup(&table.table_.table_, key, &v); x += (uintptr_t)ok; } total = get_usertime() - before; @@ -599,12 +619,13 @@ int32_t *get_contiguous_keys(int32_t num) { } void test_delete() { + upb::Arena arena; upb_inttable t; - upb_inttable_init(&t, UPB_CTYPE_BOOL); - upb_inttable_insert(&t, 0, upb_value_bool(true)); - upb_inttable_insert(&t, 2, upb_value_bool(true)); - upb_inttable_insert(&t, 4, upb_value_bool(true)); - upb_inttable_compact(&t); + upb_inttable_init(&t, arena.ptr()); + upb_inttable_insert(&t, 0, upb_value_bool(true), arena.ptr()); + upb_inttable_insert(&t, 2, upb_value_bool(true), arena.ptr()); + upb_inttable_insert(&t, 4, upb_value_bool(true), arena.ptr()); + upb_inttable_compact(&t, arena.ptr()); upb_inttable_remove(&t, 0, NULL); upb_inttable_remove(&t, 2, NULL); upb_inttable_remove(&t, 4, NULL); @@ -614,17 +635,15 @@ void test_delete() { upb_inttable_next(&iter)) { ASSERT(false); } - - upb_inttable_uninit(&t); } void test_init() { for (int i = 0; i < 2048; i++) { /* Tests that the size calculations in init() (lg2 size for target load) * work for all expected sizes. */ + upb::Arena arena; upb_strtable t; - upb_strtable_init2(&t, UPB_CTYPE_BOOL, i, &upb_alloc_global); - upb_strtable_uninit(&t); + upb_strtable_init(&t, i, arena.ptr()); } } diff --git a/third_party/upb/tests/test_util.h b/third_party/upb/tests/test_util.h deleted file mode 100644 index 418a9d8899e..00000000000 --- a/third_party/upb/tests/test_util.h +++ /dev/null @@ -1,230 +0,0 @@ -/* -** Common functionality for tests. -**/ - -#ifndef UPB_TEST_UTIL_H_ -#define UPB_TEST_UTIL_H_ - -#include -#include -#include "tests/upb_test.h" -#include "upb/sink.h" - -#include "upb/port_def.inc" - -#ifdef __cplusplus - -upb_bufhandle global_handle; - -/* A convenience class for parser tests. Provides some useful features: - * - * - can support multiple calls to parse, to test the parser's handling - * of buffer seams. - * - * - can output verbose output about each parse call when requested, for - * ease of debugging. - * - * - can pass NULL for skipped regions of the input if requested. - * - * - allocates and passes a separate buffer for each parsed region, to - * ensure that the parser is not erroneously overreading its buffer. - */ -class VerboseParserEnvironment { - public: - /* Pass verbose=true to print detailed diagnostics to stderr. */ - VerboseParserEnvironment(bool verbose) : verbose_(verbose) {} - - void Reset(const char *buf, size_t len, bool may_skip, bool expect_error) { - buf_ = buf; - len_ = len; - ofs_ = 0; - expect_error_ = expect_error; - end_ok_set_ = false; - skip_until_ = may_skip ? 0 : -1; - skipped_with_null_ = false; - } - - /* The user should call a series of: - * - * Reset(buf, len, may_skip); - * Start() - * ParseBuffer(X); - * ParseBuffer(Y); - * // Repeat ParseBuffer as desired, but last call should pass -1. - * ParseBuffer(-1); - * End(); - */ - - - bool Start() { - if (verbose_) { - fprintf(stderr, "Calling start()\n"); - } - return sink_.Start(len_, &subc_); - } - - bool End() { - if (verbose_) { - fprintf(stderr, "Calling end()\n"); - } - end_ok_ = sink_.End(); - end_ok_set_ = true; - - return end_ok_; - } - - bool CheckConsistency() { - /* If we called end (which we should only do when previous bytes are fully - * accepted), then end() should return true iff there were no errors. */ - if (end_ok_set_ && end_ok_ != status_.ok()) { - fprintf(stderr, "End() status and saw_error didn't match.\n"); - return false; - } - - if (expect_error_ && status_.ok()) { - fprintf(stderr, "Expected error but saw none.\n"); - return false; - } - - if (!status_.ok()) { - if (expect_error_ && verbose_) { - fprintf(stderr, "Encountered error, as expected: %s", - status_.error_message()); - } else if (!expect_error_) { - fprintf(stderr, "Encountered unexpected error: %s", - status_.error_message()); - return false; - } - } - - return true; - } - - bool ParseBuffer(int bytes) { - if (bytes < 0) { - bytes = (int)(len_ - ofs_); - } - - ASSERT((size_t)bytes <= (len_ - ofs_)); - - /* Copy buffer into a separate, temporary buffer. - * This is necessary to verify that the parser is not erroneously - * reading outside the specified bounds. */ - char *buf2 = NULL; - - if ((int)(ofs_ + bytes) <= skip_until_) { - skipped_with_null_ = true; - } else { - buf2 = (char*)malloc(bytes); - UPB_ASSERT(buf2); - memcpy(buf2, buf_ + ofs_, bytes); - } - - if (buf2 == NULL && bytes == 0) { - /* Decoders dont' support buf=NULL, bytes=0. */ - return true; - } - - if (verbose_) { - fprintf(stderr, "Calling parse(%u) for bytes %u-%u of the input\n", - (unsigned)bytes, (unsigned)ofs_, (unsigned)(ofs_ + bytes)); - } - - int parsed = (int)sink_.PutBuffer(subc_, buf2, bytes, &global_handle); - free(buf2); - - if (verbose_) { - if (parsed == bytes) { - fprintf(stderr, - "parse(%u) = %u, complete byte count indicates success\n", - (unsigned)bytes, (unsigned)bytes); - } else if (parsed > bytes) { - fprintf(stderr, - "parse(%u) = %u, long byte count indicates success and skip " - "of the next %u bytes\n", - (unsigned)bytes, (unsigned)parsed, (unsigned)(parsed - bytes)); - } else { - fprintf(stderr, - "parse(%u) = %u, short byte count indicates failure; " - "last %u bytes were not consumed\n", - (unsigned)bytes, (unsigned)parsed, (unsigned)(bytes - parsed)); - } - } - - if (!status_.ok()) { - return false; - } - - if (parsed > bytes && skip_until_ >= 0) { - skip_until_ = (int)(ofs_ + parsed); - } - - ofs_ += UPB_MIN(parsed, bytes); - - return true; - } - - void ResetBytesSink(upb::BytesSink sink) { - sink_ = sink; - } - - size_t ofs() { return ofs_; } - - bool SkippedWithNull() { return skipped_with_null_; } - - upb::Arena* arena() { return &arena_; } - upb::Status* status() { return &status_; } - - private: - upb::Arena arena_; - upb::Status status_; - upb::BytesSink sink_; - const char* buf_; - size_t len_; - bool verbose_; - size_t ofs_; - void *subc_; - bool expect_error_; - bool end_ok_; - bool end_ok_set_; - - /* When our parse call returns a value greater than the number of bytes - * we passed in, the decoder is indicating to us that the next N bytes - * in the stream are not needed and can be skipped. The user is allowed - * to pass a NULL buffer for those N bytes. - * - * skip_until_ is initially set to 0 if we should do this NULL-buffer - * skipping or -1 if we should not. If we are open to doing NULL-buffer - * skipping and we get an opportunity to do it, we set skip_until to the - * stream offset where we can skip until. The user can then test whether - * this happened by testing SkippedWithNull(). */ - int skip_until_; - bool skipped_with_null_; -}; - -#endif /* __cplusplus */ - -UPB_INLINE char *upb_readfile(const char *filename, size_t *len) { - long size; - char *buf; - FILE *f = fopen(filename, "rb"); - if(!f) return NULL; - if(fseek(f, 0, SEEK_END) != 0) goto error; - size = ftell(f); - if(size < 0) goto error; - if(fseek(f, 0, SEEK_SET) != 0) goto error; - buf = (char*)malloc(size + 1); - if(size && fread(buf, size, 1, f) != 1) goto error; - fclose(f); - if (len) *len = size; - buf[size] = '\0'; - return buf; - -error: - fclose(f); - return NULL; -} - -#include "upb/port_undef.inc" - -#endif /* UPB_TEST_UTIL_H_ */ diff --git a/third_party/upb/tests/testmain.cc b/third_party/upb/tests/testmain.cc index 97dd7169a46..3bd345eae5e 100644 --- a/third_party/upb/tests/testmain.cc +++ b/third_party/upb/tests/testmain.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #ifdef USE_GOOGLE diff --git a/third_party/upb/tests/upb_test.h b/third_party/upb/tests/upb_test.h index d4b06883c3e..0afb3f46455 100644 --- a/third_party/upb/tests/upb_test.h +++ b/third_party/upb/tests/upb_test.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPB_TEST_H_ #define UPB_TEST_H_ diff --git a/third_party/upb/third_party/wyhash/BUILD b/third_party/upb/third_party/wyhash/BUILD deleted file mode 100644 index f3f3a6fb6d7..00000000000 --- a/third_party/upb/third_party/wyhash/BUILD +++ /dev/null @@ -1,17 +0,0 @@ -licenses(["unencumbered"]) - -exports_files(["LICENSE"]) - -cc_library( - name = "wyhash", - hdrs = ["wyhash.h"], - visibility = ["//:__pkg__"], -) - -filegroup( - name = "cmake_files", - srcs = glob([ - "**/*", - ]), - visibility = ["//cmake:__pkg__"], -) diff --git a/third_party/upb/third_party/wyhash/LICENSE b/third_party/upb/third_party/wyhash/LICENSE deleted file mode 100644 index 471f09f4cfb..00000000000 --- a/third_party/upb/third_party/wyhash/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to - diff --git a/third_party/upb/third_party/wyhash/wyhash.h b/third_party/upb/third_party/wyhash/wyhash.h deleted file mode 100644 index 5658f02df3c..00000000000 --- a/third_party/upb/third_party/wyhash/wyhash.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Copyright 2020 王一 Wang Yi - This is free and unencumbered software released into the public domain. http://unlicense.org/ - See github.com/wangyi-fudan/wyhash/ LICENSE - */ -#ifndef wyhash_final_version -#define wyhash_final_version -//defines that change behavior -#ifndef WYHASH_CONDOM -#define WYHASH_CONDOM 1 //0: read 8 bytes before and after boundaries, dangerous but fastest. 1: normal valid behavior 2: extra protection against entropy loss (probability=2^-63), aka. "blind multiplication" -#endif -#define WYHASH_32BIT_MUM 0 //faster on 32 bit system -//includes -#include -#include -#if defined(_MSC_VER) && defined(_M_X64) - #include - #pragma intrinsic(_umul128) -#endif -#if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__) - #define _likely_(x) __builtin_expect(x,1) - #define _unlikely_(x) __builtin_expect(x,0) -#else - #define _likely_(x) (x) - #define _unlikely_(x) (x) -#endif -//mum function -static inline uint64_t _wyrot(uint64_t x) { return (x>>32)|(x<<32); } -static inline void _wymum(uint64_t *A, uint64_t *B){ -#if(WYHASH_32BIT_MUM) - uint64_t hh=(*A>>32)*(*B>>32), hl=(*A>>32)*(unsigned)*B, lh=(unsigned)*A*(*B>>32), ll=(uint64_t)(unsigned)*A*(unsigned)*B; - #if(WYHASH_CONDOM>1) - *A^=_wyrot(hl)^hh; *B^=_wyrot(lh)^ll; - #else - *A=_wyrot(hl)^hh; *B=_wyrot(lh)^ll; - #endif -#elif defined(__SIZEOF_INT128__) - __uint128_t r=*A; r*=*B; - #if(WYHASH_CONDOM>1) - *A^=(uint64_t)r; *B^=(uint64_t)(r>>64); - #else - *A=(uint64_t)r; *B=(uint64_t)(r>>64); - #endif -#elif defined(_MSC_VER) && defined(_M_X64) - #if(WYHASH_CONDOM>1) - uint64_t a, b; - a=_umul128(*A,*B,&b); - *A^=a; *B^=b; - #else - *A=_umul128(*A,*B,B); - #endif -#else - uint64_t ha=*A>>32, hb=*B>>32, la=(uint32_t)*A, lb=(uint32_t)*B, hi, lo; - uint64_t rh=ha*hb, rm0=ha*lb, rm1=hb*la, rl=la*lb, t=rl+(rm0<<32), c=t>32)+(rm1>>32)+c; - #if(WYHASH_CONDOM>1) - *A^=lo; *B^=hi; - #else - *A=lo; *B=hi; - #endif -#endif -} -static inline uint64_t _wymix(uint64_t A, uint64_t B){ _wymum(&A,&B); return A^B; } -//read functions -#ifndef WYHASH_LITTLE_ENDIAN - #if defined(_WIN32) || defined(__LITTLE_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) - #define WYHASH_LITTLE_ENDIAN 1 - #elif defined(__BIG_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) - #define WYHASH_LITTLE_ENDIAN 0 - #endif -#endif -#if (WYHASH_LITTLE_ENDIAN) -static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return v;} -static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return v;} -#elif defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__) -static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return __builtin_bswap64(v);} -static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return __builtin_bswap32(v);} -#elif defined(_MSC_VER) -static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return _byteswap_uint64(v);} -static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return _byteswap_ulong(v);} -#endif -static inline uint64_t _wyr3(const uint8_t *p, unsigned k) { return (((uint64_t)p[0])<<16)|(((uint64_t)p[k>>1])<<8)|p[k-1];} -//wyhash function -static inline uint64_t _wyfinish16(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){ -#if(WYHASH_CONDOM>0) - uint64_t a, b; - if(_likely_(i<=8)){ - if(_likely_(i>=4)){ a=_wyr4(p); b=_wyr4(p+i-4); } - else if (_likely_(i)){ a=_wyr3(p,i); b=0; } - else a=b=0; - } - else{ a=_wyr8(p); b=_wyr8(p+i-8); } - return _wymix(secret[1]^len,_wymix(a^secret[1], b^seed)); -#else - #define oneshot_shift ((i<8)*((8-i)<<3)) - return _wymix(secret[1]^len,_wymix((_wyr8(p)<>oneshot_shift)^seed)); -#endif -} - -static inline uint64_t _wyfinish(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){ - if(_likely_(i<=16)) return _wyfinish16(p,len,seed,secret,i); - return _wyfinish(p+16,len,_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed),secret,i-16); -} - -static inline uint64_t wyhash(const void *key, uint64_t len, uint64_t seed, const uint64_t *secret){ - const uint8_t *p=(const uint8_t *)key; - uint64_t i=len; seed^=*secret; - if(_unlikely_(i>64)){ - uint64_t see1=seed; - do{ - seed=_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed)^_wymix(_wyr8(p+16)^secret[2],_wyr8(p+24)^seed); - see1=_wymix(_wyr8(p+32)^secret[3],_wyr8(p+40)^see1)^_wymix(_wyr8(p+48)^secret[4],_wyr8(p+56)^see1); - p+=64; i-=64; - }while(i>64); - seed^=see1; - } - return _wyfinish(p,len,seed,secret,i); -} -//utility functions -const uint64_t _wyp[5] = {0xa0761d6478bd642full, 0xe7037ed1a0b428dbull, 0x8ebc6af09c88c6e3ull, 0x589965cc75374cc3ull, 0x1d8e4e27c47d124full}; -static inline uint64_t wyhash64(uint64_t A, uint64_t B){ A^=_wyp[0]; B^=_wyp[1]; _wymum(&A,&B); return _wymix(A^_wyp[0],B^_wyp[1]);} -static inline uint64_t wyrand(uint64_t *seed){ *seed+=_wyp[0]; return _wymix(*seed,*seed^_wyp[1]);} -static inline double wy2u01(uint64_t r){ const double _wynorm=1.0/(1ull<<52); return (r>>12)*_wynorm;} -static inline double wy2gau(uint64_t r){ const double _wynorm=1.0/(1ull<<20); return ((r&0x1fffff)+((r>>21)&0x1fffff)+((r>>42)&0x1fffff))*_wynorm-3.0;} -static inline uint64_t wy2u0k(uint64_t r, uint64_t k){ _wymum(&r,&k); return k; } - -static inline void make_secret(uint64_t seed, uint64_t *secret){ - uint8_t c[] = {15, 23, 27, 29, 30, 39, 43, 45, 46, 51, 53, 54, 57, 58, 60, 71, 75, 77, 78, 83, 85, 86, 89, 90, 92, 99, 101, 102, 105, 106, 108, 113, 114, 116, 120, 135, 139, 141, 142, 147, 149, 150, 153, 154, 156, 163, 165, 166, 169, 170, 172, 177, 178, 180, 184, 195, 197, 198, 201, 202, 204, 209, 210, 212, 216, 225, 226, 228, 232, 240 }; - for(size_t i=0;i<5;i++){ - uint8_t ok; - do{ - ok=1; secret[i]=0; - for(size_t j=0;j<64;j+=8) secret[i]|=((uint64_t)c[wyrand(&seed)%sizeof(c)])<') self.output_h.write(open("upb/port_def.inc").read()) def add_include_path(self, path): self.include_paths.append(path) def finish(self): - self.output_c.write(open("upb/port_undef.inc").read()) - self.output_h.write(open("upb/port_undef.inc").read()) + self._add_header("upb/port_undef.inc") + self.add_src("upb/port_undef.inc") def _process_file(self, infile_name, outfile): file = None @@ -44,7 +68,17 @@ class Amalgamator: if not file: raise RuntimeError("Couldn't open file " + infile_name) - for line in file: + lines = file.readlines() + + has_copyright = lines[1].startswith(" * Copyright") + if has_copyright: + while not lines[0].startswith(" */"): + lines.pop(0) + lines.pop(0) + + lines.insert(0, "\n/** " + infile_name + " " + ("*" * 60) +"/"); + + for line in lines: if not self._process_include(line, outfile): outfile.write(line) diff --git a/third_party/upb/upb/bindings/lua/BUILD b/third_party/upb/upb/bindings/lua/BUILD index 3b794a85a30..546202aa80d 100644 --- a/third_party/upb/upb/bindings/lua/BUILD +++ b/third_party/upb/upb/bindings/lua/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "//bazel:build_defs.bzl", "UPB_DEFAULT_COPTS", diff --git a/third_party/upb/upb/bindings/lua/def.c b/third_party/upb/upb/bindings/lua/def.c index a1e87205834..54923e47c50 100644 --- a/third_party/upb/upb/bindings/lua/def.c +++ b/third_party/upb/upb/bindings/lua/def.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include #include diff --git a/third_party/upb/upb/bindings/lua/lua_proto_library.bzl b/third_party/upb/upb/bindings/lua/lua_proto_library.bzl index d6ac301ad84..fa20cf79f79 100644 --- a/third_party/upb/upb/bindings/lua/lua_proto_library.bzl +++ b/third_party/upb/upb/bindings/lua/lua_proto_library.bzl @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load("@bazel_skylib//lib:paths.bzl", "paths") # Generic support code ######################################################### diff --git a/third_party/upb/upb/bindings/lua/msg.c b/third_party/upb/upb/bindings/lua/msg.c index c0c5bb99330..6210e394939 100644 --- a/third_party/upb/upb/bindings/lua/msg.c +++ b/third_party/upb/upb/bindings/lua/msg.c @@ -1,6 +1,33 @@ /* -** lupb_msg -- Message/Array/Map objects in Lua/C that wrap upb/msg.h -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * lupb_msg -- Message/Array/Map objects in Lua/C that wrap upb/msg.h + */ #include "upb/msg.h" @@ -922,7 +949,7 @@ static int lupb_decode(lua_State *L) { buf = upb_arena_malloc(arena, len); memcpy(buf, pb, len); - ok = _upb_decode(buf, len, msg, layout, arena, UPB_DECODE_ALIAS); + ok = _upb_decode(buf, len, msg, layout, NULL, UPB_DECODE_ALIAS, arena); if (!ok) { lua_pushstring(L, "Error decoding protobuf."); diff --git a/third_party/upb/upb/bindings/lua/upb.c b/third_party/upb/upb/bindings/lua/upb.c index c247c037468..c9d98bb0dc1 100644 --- a/third_party/upb/upb/bindings/lua/upb.c +++ b/third_party/upb/upb/bindings/lua/upb.c @@ -1,24 +1,51 @@ /* -** require("lua") -- A Lua extension for upb. -** -** Exposes only the core library -** (sub-libraries are exposed in other extensions). -** -** 64-bit woes: Lua can only represent numbers of type lua_Number (which is -** double unless the user specifically overrides this). Doubles can represent -** the entire range of 64-bit integers, but lose precision once the integers are -** greater than 2^53. -** -** Lua 5.3 is adding support for integers, which will allow for 64-bit -** integers (which can be interpreted as signed or unsigned). -** -** LuaJIT supports 64-bit signed and unsigned boxed representations -** through its "cdata" mechanism, but this is not portable to regular Lua. -** -** Hopefully Lua 5.3 will come soon enough that we can either use Lua 5.3 -** integer support or LuaJIT 64-bit cdata for users that need the entire -** domain of [u]int64 values. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * require("lua") -- A Lua extension for upb. + * + * Exposes only the core library + * (sub-libraries are exposed in other extensions). + * + * 64-bit woes: Lua can only represent numbers of type lua_Number (which is + * double unless the user specifically overrides this). Doubles can represent + * the entire range of 64-bit integers, but lose precision once the integers are + * greater than 2^53. + * + * Lua 5.3 is adding support for integers, which will allow for 64-bit + * integers (which can be interpreted as signed or unsigned). + * + * LuaJIT supports 64-bit signed and unsigned boxed representations + * through its "cdata" mechanism, but this is not portable to regular Lua. + * + * Hopefully Lua 5.3 will come soon enough that we can either use Lua 5.3 + * integer support or LuaJIT 64-bit cdata for users that need the entire + * domain of [u]int64 values. + */ #include "upb/bindings/lua/upb.h" diff --git a/third_party/upb/upb/bindings/lua/upb.h b/third_party/upb/upb/bindings/lua/upb.h index 455752fd830..5976dc761db 100644 --- a/third_party/upb/upb/bindings/lua/upb.h +++ b/third_party/upb/upb/bindings/lua/upb.h @@ -1,6 +1,33 @@ /* -** Shared definitions for upb Lua modules. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Shared definitions for upb Lua modules. + */ #ifndef UPB_LUA_UPB_H_ #define UPB_LUA_UPB_H_ diff --git a/third_party/upb/upb/bindings/lua/upb.lua b/third_party/upb/upb/bindings/lua/upb.lua index ad6184a3d32..e2d4cd1b717 100644 --- a/third_party/upb/upb/bindings/lua/upb.lua +++ b/third_party/upb/upb/bindings/lua/upb.lua @@ -1,3 +1,31 @@ +--[[-------------------------------------------------------------------------- + + Copyright (c) 2009-2021, Google LLC + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Google LLC nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--]]-------------------------------------------------------------------------- local upb = require("lupb") diff --git a/third_party/upb/upb/bindings/lua/upbc.cc b/third_party/upb/upb/bindings/lua/upbc.cc index c3988f6519b..e2bb0dd65be 100644 --- a/third_party/upb/upb/bindings/lua/upbc.cc +++ b/third_party/upb/upb/bindings/lua/upbc.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "absl/strings/string_view.h" #include "absl/strings/substitute.h" @@ -19,7 +43,7 @@ class LuaGenerator : public protoc::CodeGenerator { }; static std::string StripExtension(absl::string_view fname) { - size_t lastdot = fname.find_last_of("."); + size_t lastdot = fname.find_last_of('.'); if (lastdot == std::string::npos) { return std::string(fname); } diff --git a/third_party/upb/upb/decode.c b/third_party/upb/upb/decode.c index a5f0666fa8b..2739be86e78 100644 --- a/third_party/upb/upb/decode.c +++ b/third_party/upb/upb/decode.c @@ -1,12 +1,38 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/decode.h" #include #include -#include "upb/decode.int.h" +#include "upb/decode_internal.h" #include "upb/upb.h" -#include "upb/upb.int.h" +#include "upb/upb_internal.h" /* Must be last. */ #include "upb/port_def.inc" @@ -150,11 +176,23 @@ static const char *decode_msg(upb_decstate *d, const char *ptr, upb_msg *msg, UPB_NORETURN static void decode_err(upb_decstate *d) { UPB_LONGJMP(d->err, 1); } +// We don't want to mark this NORETURN, see comment in .h. +// Unfortunately this code to suppress the warning doesn't appear to be working. +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunknown-warning-option" +#pragma clang diagnostic ignored "-Wsuggest-attribute" +#endif + const char *fastdecode_err(upb_decstate *d) { longjmp(d->err, 1); return NULL; } +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + const uint8_t upb_utf8_offsets[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -261,24 +299,43 @@ static void decode_munge(int type, wireval *val) { } static const upb_msglayout_field *upb_find_field(const upb_msglayout *l, - uint32_t field_number) { + uint32_t field_number, + int *last_field_index) { static upb_msglayout_field none = {0, 0, 0, 0, 0, 0}; - /* Lots of optimization opportunities here. */ - int i; if (l == NULL) return &none; - for (i = 0; i < l->field_count; i++) { - if (l->fields[i].number == field_number) { - return &l->fields[i]; + + size_t idx = ((size_t)field_number) - 1; // 0 wraps to SIZE_MAX + if (idx < l->dense_below) { + goto found; + } + + /* Resume scanning from last_field_index since fields are usually in order. */ + int last = *last_field_index; + for (idx = last; idx < l->field_count; idx++) { + if (l->fields[idx].number == field_number) { + goto found; + } + } + + for (idx = 0; idx < last; idx++) { + if (l->fields[idx].number == field_number) { + goto found; } } return &none; /* Unknown field. */ + + found: + UPB_ASSERT(l->fields[idx].number == field_number); + *last_field_index = idx; + return &l->fields[idx]; } -static upb_msg *decode_newsubmsg(upb_decstate *d, const upb_msglayout *layout, +static upb_msg *decode_newsubmsg(upb_decstate *d, + upb_msglayout const *const *submsgs, const upb_msglayout_field *field) { - const upb_msglayout *subl = layout->submsgs[field->submsg_index]; + const upb_msglayout *subl = submsgs[field->submsg_index]; return _upb_msg_new_inl(subl, &d->arena); } @@ -308,9 +365,10 @@ static const char *decode_readstr(upb_decstate *d, const char *ptr, int size, UPB_FORCEINLINE static const char *decode_tosubmsg(upb_decstate *d, const char *ptr, - upb_msg *submsg, const upb_msglayout *layout, + upb_msg *submsg, + upb_msglayout const *const *submsgs, const upb_msglayout_field *field, int size) { - const upb_msglayout *subl = layout->submsgs[field->submsg_index]; + const upb_msglayout *subl = submsgs[field->submsg_index]; int saved_delta = decode_pushlimit(d, ptr, size); if (--d->depth < 0) decode_err(d); if (!decode_isdone(d, &ptr)) { @@ -339,15 +397,17 @@ static const char *decode_group(upb_decstate *d, const char *ptr, UPB_FORCEINLINE static const char *decode_togroup(upb_decstate *d, const char *ptr, - upb_msg *submsg, const upb_msglayout *layout, + upb_msg *submsg, + upb_msglayout const *const *submsgs, const upb_msglayout_field *field) { - const upb_msglayout *subl = layout->submsgs[field->submsg_index]; + const upb_msglayout *subl = submsgs[field->submsg_index]; return decode_group(d, ptr, submsg, subl, field->number); } static const char *decode_toarray(upb_decstate *d, const char *ptr, - upb_msg *msg, const upb_msglayout *layout, - const upb_msglayout_field *field, wireval val, + upb_msg *msg, + upb_msglayout const *const *submsgs, + const upb_msglayout_field *field, wireval *val, int op) { upb_array **arrp = UPB_PTR_AT(msg, field->offset, void); upb_array *arr = *arrp; @@ -369,27 +429,27 @@ static const char *decode_toarray(upb_decstate *d, const char *ptr, /* Append scalar value. */ mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << op, void); arr->len++; - memcpy(mem, &val, 1 << op); + memcpy(mem, val, 1 << op); return ptr; case OP_STRING: - decode_verifyutf8(d, ptr, val.size); + decode_verifyutf8(d, ptr, val->size); /* Fallthrough. */ case OP_BYTES: { /* Append bytes. */ upb_strview *str = (upb_strview*)_upb_array_ptr(arr) + arr->len; arr->len++; - return decode_readstr(d, ptr, val.size, str); + return decode_readstr(d, ptr, val->size, str); } case OP_SUBMSG: { /* Append submessage / group. */ - upb_msg *submsg = decode_newsubmsg(d, layout, field); + upb_msg *submsg = decode_newsubmsg(d, submsgs, field); *UPB_PTR_AT(_upb_array_ptr(arr), arr->len * sizeof(void *), upb_msg *) = submsg; arr->len++; if (UPB_UNLIKELY(field->descriptortype == UPB_DTYPE_GROUP)) { - return decode_togroup(d, ptr, submsg, layout, field); + return decode_togroup(d, ptr, submsg, submsgs, field); } else { - return decode_tosubmsg(d, ptr, submsg, layout, field, val.size); + return decode_tosubmsg(d, ptr, submsg, submsgs, field, val->size); } } case OP_FIXPCK_LG2(2): @@ -397,15 +457,15 @@ static const char *decode_toarray(upb_decstate *d, const char *ptr, /* Fixed packed. */ int lg2 = op - OP_FIXPCK_LG2(0); int mask = (1 << lg2) - 1; - size_t count = val.size >> lg2; - if ((val.size & mask) != 0) { + size_t count = val->size >> lg2; + if ((val->size & mask) != 0) { decode_err(d); /* Length isn't a round multiple of elem size. */ } decode_reserve(d, arr, count); mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void); arr->len += count; - memcpy(mem, ptr, val.size); /* XXX: ptr boundary. */ - return ptr + val.size; + memcpy(mem, ptr, val->size); /* XXX: ptr boundary. */ + return ptr + val->size; } case OP_VARPCK_LG2(0): case OP_VARPCK_LG2(2): @@ -413,7 +473,7 @@ static const char *decode_toarray(upb_decstate *d, const char *ptr, /* Varint packed. */ int lg2 = op - OP_VARPCK_LG2(0); int scale = 1 << lg2; - int saved_limit = decode_pushlimit(d, ptr, val.size); + int saved_limit = decode_pushlimit(d, ptr, val->size); char *out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void); while (!decode_isdone(d, &ptr)) { wireval elem; @@ -435,16 +495,15 @@ static const char *decode_toarray(upb_decstate *d, const char *ptr, } static const char *decode_tomap(upb_decstate *d, const char *ptr, upb_msg *msg, - const upb_msglayout *layout, - const upb_msglayout_field *field, wireval val) { + upb_msglayout const *const *submsgs, + const upb_msglayout_field *field, wireval *val) { upb_map **map_p = UPB_PTR_AT(msg, field->offset, upb_map *); upb_map *map = *map_p; upb_map_entry ent; - const upb_msglayout *entry = layout->submsgs[field->submsg_index]; + const upb_msglayout *entry = submsgs[field->submsg_index]; if (!map) { /* Lazily create map. */ - const upb_msglayout *entry = layout->submsgs[field->submsg_index]; const upb_msglayout_field *key_field = &entry->fields[0]; const upb_msglayout_field *val_field = &entry->fields[1]; char key_size = desctype_to_mapsize[key_field->descriptortype]; @@ -464,28 +523,28 @@ static const char *decode_tomap(upb_decstate *d, const char *ptr, upb_msg *msg, ent.v.val = upb_value_ptr(_upb_msg_new(entry->submsgs[0], &d->arena)); } - ptr = decode_tosubmsg(d, ptr, &ent.k, layout, field, val.size); + ptr = decode_tosubmsg(d, ptr, &ent.k, submsgs, field, val->size); _upb_map_set(map, &ent.k, map->key_size, &ent.v, map->val_size, &d->arena); return ptr; } static const char *decode_tomsg(upb_decstate *d, const char *ptr, upb_msg *msg, - const upb_msglayout *layout, - const upb_msglayout_field *field, wireval val, + upb_msglayout const *const *submsgs, + const upb_msglayout_field *field, wireval *val, int op) { void *mem = UPB_PTR_AT(msg, field->offset, void); int type = field->descriptortype; /* Set presence if necessary. */ - if (field->presence < 0) { + if (field->presence > 0) { + _upb_sethas_field(msg, field); + } else if (field->presence < 0) { /* Oneof case */ uint32_t *oneof_case = _upb_oneofcase_field(msg, field); if (op == OP_SUBMSG && *oneof_case != field->number) { memset(mem, 0, sizeof(void*)); } *oneof_case = field->number; - } else if (field->presence > 0) { - _upb_sethas_field(msg, field); } /* Store into message. */ @@ -494,29 +553,29 @@ static const char *decode_tomsg(upb_decstate *d, const char *ptr, upb_msg *msg, upb_msg **submsgp = mem; upb_msg *submsg = *submsgp; if (!submsg) { - submsg = decode_newsubmsg(d, layout, field); + submsg = decode_newsubmsg(d, submsgs, field); *submsgp = submsg; } if (UPB_UNLIKELY(type == UPB_DTYPE_GROUP)) { - ptr = decode_togroup(d, ptr, submsg, layout, field); + ptr = decode_togroup(d, ptr, submsg, submsgs, field); } else { - ptr = decode_tosubmsg(d, ptr, submsg, layout, field, val.size); + ptr = decode_tosubmsg(d, ptr, submsg, submsgs, field, val->size); } break; } case OP_STRING: - decode_verifyutf8(d, ptr, val.size); + decode_verifyutf8(d, ptr, val->size); /* Fallthrough. */ case OP_BYTES: - return decode_readstr(d, ptr, val.size, mem); + return decode_readstr(d, ptr, val->size, mem); case OP_SCALAR_LG2(3): - memcpy(mem, &val, 8); + memcpy(mem, val, 8); break; case OP_SCALAR_LG2(2): - memcpy(mem, &val, 4); + memcpy(mem, val, 4); break; case OP_SCALAR_LG2(0): - memcpy(mem, &val, 1); + memcpy(mem, val, 1); break; default: UPB_UNREACHABLE(); @@ -542,6 +601,7 @@ static bool decode_tryfastdispatch(upb_decstate *d, const char **ptr, UPB_NOINLINE static const char *decode_msg(upb_decstate *d, const char *ptr, upb_msg *msg, const upb_msglayout *layout) { + int last_field_index = 0; while (true) { uint32_t tag; const upb_msglayout_field *field; @@ -556,7 +616,7 @@ static const char *decode_msg(upb_decstate *d, const char *ptr, upb_msg *msg, field_number = tag >> 3; wire_type = tag & 7; - field = upb_find_field(layout, field_number); + field = upb_find_field(layout, field_number, &last_field_index); switch (wire_type) { case UPB_WIRE_TYPE_VARINT: @@ -581,7 +641,7 @@ static const char *decode_msg(upb_decstate *d, const char *ptr, upb_msg *msg, case UPB_WIRE_TYPE_DELIMITED: { int ndx = field->descriptortype; uint64_t size; - if (_upb_isrepeated(field)) ndx += 18; + if (_upb_getmode(field) == _UPB_MODE_ARRAY) ndx += 18; ptr = decode_varint64(d, ptr, &size); if (size >= INT32_MAX || ptr - d->end + (int32_t)size > d->limit) { @@ -605,17 +665,18 @@ static const char *decode_msg(upb_decstate *d, const char *ptr, upb_msg *msg, if (op >= 0) { /* Parse, using op for dispatch. */ - switch (field->label) { - case UPB_LABEL_REPEATED: - case _UPB_LABEL_PACKED: - ptr = decode_toarray(d, ptr, msg, layout, field, val, op); + switch (_upb_getmode(field)) { + case _UPB_MODE_ARRAY: + ptr = decode_toarray(d, ptr, msg, layout->submsgs, field, &val, op); break; - case _UPB_LABEL_MAP: - ptr = decode_tomap(d, ptr, msg, layout, field, val); + case _UPB_MODE_MAP: + ptr = decode_tomap(d, ptr, msg, layout->submsgs, field, &val); break; - default: - ptr = decode_tomsg(d, ptr, msg, layout, field, val, op); + case _UPB_MODE_SCALAR: + ptr = decode_tomsg(d, ptr, msg, layout->submsgs, field, &val, op); break; + default: + UPB_UNREACHABLE(); } } else { unknown: @@ -652,8 +713,17 @@ const char *fastdecode_generic(struct upb_decstate *d, const char *ptr, return decode_msg(d, ptr, msg, decode_totablep(table)); } +static bool decode_top(struct upb_decstate *d, const char *buf, void *msg, + const upb_msglayout *l) { + if (!decode_tryfastdispatch(d, &buf, msg, l)) { + decode_msg(d, buf, msg, l); + } + return d->end_group == DECODE_NOGROUP; +} + bool _upb_decode(const char *buf, size_t size, void *msg, - const upb_msglayout *l, upb_arena *arena, int options) { + const upb_msglayout *l, const upb_extreg *extreg, int options, + upb_arena *arena) { bool ok; upb_decstate state; unsigned depth = (unsigned)options >> 16; @@ -679,19 +749,18 @@ bool _upb_decode(const char *buf, size_t size, void *msg, state.end_group = DECODE_NOGROUP; state.arena.head = arena->head; state.arena.last_size = arena->last_size; + state.arena.cleanup_metadata = arena->cleanup_metadata; state.arena.parent = arena; if (UPB_UNLIKELY(UPB_SETJMP(state.err))) { ok = false; } else { - if (!decode_tryfastdispatch(&state, &buf, msg, l)) { - decode_msg(&state, buf, msg, l); - } - ok = state.end_group == DECODE_NOGROUP; + ok = decode_top(&state, buf, msg, l); } arena->head.ptr = state.arena.head.ptr; arena->head.end = state.arena.head.end; + arena->cleanup_metadata = state.arena.cleanup_metadata; return ok; } diff --git a/third_party/upb/upb/decode.h b/third_party/upb/upb/decode.h index eff4b8bd3d8..24008910c0a 100644 --- a/third_party/upb/upb/decode.h +++ b/third_party/upb/upb/decode.h @@ -1,6 +1,33 @@ /* -** upb_decode: parsing into a upb_msg using a upb_msglayout. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * upb_decode: parsing into a upb_msg using a upb_msglayout. + */ #ifndef UPB_DECODE_H_ #define UPB_DECODE_H_ @@ -23,12 +50,13 @@ enum { #define UPB_DECODE_MAXDEPTH(depth) ((depth) << 16) bool _upb_decode(const char *buf, size_t size, upb_msg *msg, - const upb_msglayout *l, upb_arena *arena, int options); + const upb_msglayout *l, const upb_extreg *extreg, int options, + upb_arena *arena); UPB_INLINE bool upb_decode(const char *buf, size_t size, upb_msg *msg, const upb_msglayout *l, upb_arena *arena) { - return _upb_decode(buf, size, msg, l, arena, 0); + return _upb_decode(buf, size, msg, l, NULL, 0, arena); } #ifdef __cplusplus diff --git a/third_party/upb/upb/decode_fast.c b/third_party/upb/upb/decode_fast.c index f628e6dbd44..437b647a12c 100644 --- a/third_party/upb/upb/decode_fast.c +++ b/third_party/upb/upb/decode_fast.c @@ -1,8 +1,35 @@ -// Fast decoder: ~3x the speed of decode.c, but x86-64 specific. +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Fast decoder: ~3x the speed of decode.c, but requires x86-64/ARM64. // Also the table size grows by 2x. // -// Could potentially be ported to ARM64 or other 64-bit archs that pass at -// least six arguments in registers. +// Could potentially be ported to other 64-bit archs that pass at least six +// arguments in registers and have 8 unused high bits in pointers. // // The overall design is to create specialized functions for every possible // field type (eg. oneof boolean field with a 1 byte tag) and then dispatch @@ -10,7 +37,7 @@ #include "upb/decode_fast.h" -#include "upb/decode.int.h" +#include "upb/decode_internal.h" /* Must be last. */ #include "upb/port_def.inc" @@ -25,8 +52,10 @@ #define UPB_PARSE_ARGS d, ptr, msg, table, hasbits, data -#define RETURN_GENERIC(m) \ - /* fprintf(stderr, m); */ \ +#define RETURN_GENERIC(m) \ + /* Uncomment either of these for debugging purposes. */ \ + /* fprintf(stderr, m); */ \ + /*__builtin_trap(); */ \ return fastdecode_generic(d, ptr, msg, table, hasbits, 0); typedef enum { @@ -37,21 +66,18 @@ typedef enum { } upb_card; UPB_NOINLINE -static const char *fastdecode_isdonefallback(upb_decstate *d, const char *ptr, - upb_msg *msg, intptr_t table, - uint64_t hasbits, int overrun) { +static const char *fastdecode_isdonefallback(UPB_PARSE_PARAMS) { + int overrun = data; ptr = decode_isdonefallback_inl(d, ptr, overrun); if (ptr == NULL) { return fastdecode_err(d); } - uint16_t tag = fastdecode_loadtag(ptr); - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, tag); + data = fastdecode_loadtag(ptr); + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); } UPB_FORCEINLINE -static const char *fastdecode_dispatch(upb_decstate *d, const char *ptr, - upb_msg *msg, intptr_t table, - uint64_t hasbits) { +static const char *fastdecode_dispatch(UPB_PARSE_PARAMS) { if (UPB_UNLIKELY(ptr >= d->limit_ptr)) { int overrun = ptr - d->end; if (UPB_LIKELY(overrun == d->limit)) { @@ -59,21 +85,22 @@ static const char *fastdecode_dispatch(upb_decstate *d, const char *ptr, *(uint32_t*)msg |= hasbits; // Sync hasbits. return ptr; } else { - return fastdecode_isdonefallback(d, ptr, msg, table, hasbits, overrun); + data = overrun; + UPB_MUSTTAIL return fastdecode_isdonefallback(UPB_PARSE_ARGS); } } // Read two bytes of tag data (for a one-byte tag, the high byte is junk). - uint16_t tag = fastdecode_loadtag(ptr); - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, tag); + data = fastdecode_loadtag(ptr); + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); } UPB_FORCEINLINE -static bool fastdecode_checktag(uint64_t data, int tagbytes) { +static bool fastdecode_checktag(uint16_t data, int tagbytes) { if (tagbytes == 1) { return (data & 0xff) == 0; } else { - return (data & 0xffff) == 0; + return data == 0; } } @@ -297,6 +324,14 @@ static bool fastdecode_flippacked(uint64_t *data, int tagbytes) { return fastdecode_checktag(*data, tagbytes); } +#define FASTDECODE_CHECKPACKED(tagbytes, card, func) \ + if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \ + if (card == CARD_r && fastdecode_flippacked(&data, tagbytes)) { \ + UPB_MUSTTAIL return func(UPB_PARSE_ARGS); \ + } \ + RETURN_GENERIC("packed check tag mismatch\n"); \ + } + /* varint fields **************************************************************/ UPB_FORCEINLINE @@ -339,57 +374,50 @@ done: return ptr; } -UPB_FORCEINLINE -static const char *fastdecode_unpackedvarint(UPB_PARSE_PARAMS, int tagbytes, - int valbytes, upb_card card, - bool zigzag, - _upb_field_parser *packed) { - uint64_t val; - void *dst; - fastdecode_arr farr; - - if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { - if (card == CARD_r && fastdecode_flippacked(&data, tagbytes)) { - return packed(UPB_PARSE_ARGS); - } - RETURN_GENERIC("varint field tag mismatch\n"); - } - - dst = - fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, card); - if (card == CARD_r) { - if (UPB_UNLIKELY(!dst)) { - RETURN_GENERIC("need array resize\n"); - } - } - -again: - if (card == CARD_r) { - dst = fastdecode_resizearr(d, dst, &farr, valbytes); - } - - ptr += tagbytes; - ptr = fastdecode_varint64(ptr, &val); - if (ptr == NULL) return fastdecode_err(d); - val = fastdecode_munge(val, valbytes, zigzag); - memcpy(dst, &val, valbytes); - - if (card == CARD_r) { - fastdecode_nextret ret = - fastdecode_nextrepeated(d, dst, &ptr, &farr, data, tagbytes, valbytes); - switch (ret.next) { - case FD_NEXT_SAMEFIELD: - dst = ret.dst; - goto again; - case FD_NEXT_OTHERFIELD: - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, ret.tag); - case FD_NEXT_ATLIMIT: - return ptr; - } - } - - return fastdecode_dispatch(d, ptr, msg, table, hasbits); -} +#define FASTDECODE_UNPACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, card, zigzag, packed) \ + uint64_t val; \ + void *dst; \ + fastdecode_arr farr; \ + \ + FASTDECODE_CHECKPACKED(tagbytes, card, packed); \ + \ + dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, \ + card); \ + if (card == CARD_r) { \ + if (UPB_UNLIKELY(!dst)) { \ + RETURN_GENERIC("need array resize\n"); \ + } \ + } \ + \ + again: \ + if (card == CARD_r) { \ + dst = fastdecode_resizearr(d, dst, &farr, valbytes); \ + } \ + \ + ptr += tagbytes; \ + ptr = fastdecode_varint64(ptr, &val); \ + if (ptr == NULL) \ + return fastdecode_err(d); \ + val = fastdecode_munge(val, valbytes, zigzag); \ + memcpy(dst, &val, valbytes); \ + \ + if (card == CARD_r) { \ + fastdecode_nextret ret = fastdecode_nextrepeated( \ + d, dst, &ptr, &farr, data, tagbytes, valbytes); \ + switch (ret.next) { \ + case FD_NEXT_SAMEFIELD: \ + dst = ret.dst; \ + goto again; \ + case FD_NEXT_OTHERFIELD: \ + data = ret.tag; \ + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \ + case FD_NEXT_ATLIMIT: \ + return ptr; \ + } \ + } \ + \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); typedef struct { uint8_t valbytes; @@ -418,49 +446,36 @@ static const char *fastdecode_topackedvarint(upb_decstate *d, const char *ptr, return ptr; } -UPB_FORCEINLINE -static const char *fastdecode_packedvarint(UPB_PARSE_PARAMS, int tagbytes, - int valbytes, bool zigzag, - _upb_field_parser *unpacked) { - fastdecode_varintdata ctx = {valbytes, zigzag}; - - if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { - if (fastdecode_flippacked(&data, tagbytes)) { - return unpacked(UPB_PARSE_ARGS); - } else { - RETURN_GENERIC("varint field tag mismatch\n"); - } - } - - ctx.dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &ctx.farr, - valbytes, CARD_r); - if (UPB_UNLIKELY(!ctx.dst)) { - RETURN_GENERIC("need array resize\n"); - } - - ptr += tagbytes; - ptr = fastdecode_delimited(d, ptr, &fastdecode_topackedvarint, &ctx); - - if (UPB_UNLIKELY(ptr == NULL)) { - return fastdecode_err(d); - } - - return fastdecode_dispatch(d, ptr, msg, table, hasbits); -} - -UPB_FORCEINLINE -static const char *fastdecode_varint(UPB_PARSE_PARAMS, int tagbytes, - int valbytes, upb_card card, bool zigzag, - _upb_field_parser *unpacked, - _upb_field_parser *packed) { - if (card == CARD_p) { - return fastdecode_packedvarint(UPB_PARSE_ARGS, tagbytes, valbytes, zigzag, - unpacked); - } else { - return fastdecode_unpackedvarint(UPB_PARSE_ARGS, tagbytes, valbytes, card, - zigzag, packed); +#define FASTDECODE_PACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, zigzag, unpacked) \ + fastdecode_varintdata ctx = {valbytes, zigzag}; \ + \ + FASTDECODE_CHECKPACKED(tagbytes, CARD_r, unpacked); \ + \ + ctx.dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &ctx.farr, \ + valbytes, CARD_r); \ + if (UPB_UNLIKELY(!ctx.dst)) { \ + RETURN_GENERIC("need array resize\n"); \ + } \ + \ + ptr += tagbytes; \ + ptr = fastdecode_delimited(d, ptr, &fastdecode_topackedvarint, &ctx); \ + \ + if (UPB_UNLIKELY(ptr == NULL)) { \ + return fastdecode_err(d); \ + } \ + \ + UPB_MUSTTAIL return fastdecode_dispatch(d, ptr, msg, table, hasbits, 0); + +#define FASTDECODE_VARINT(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, card, zigzag, unpacked, packed) \ + if (card == CARD_p) { \ + FASTDECODE_PACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, zigzag, unpacked); \ + } else { \ + FASTDECODE_UNPACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, card, zigzag, packed); \ } -} #define z_ZZ true #define b_ZZ false @@ -472,10 +487,10 @@ static const char *fastdecode_varint(UPB_PARSE_PARAMS, int tagbytes, #define F(card, type, valbytes, tagbytes) \ UPB_NOINLINE \ const char *upb_p##card##type##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ - return fastdecode_varint(UPB_PARSE_ARGS, tagbytes, valbytes, CARD_##card, \ - type##_ZZ, \ - &upb_pr##type##valbytes##_##tagbytes##bt, \ - &upb_pp##type##valbytes##_##tagbytes##bt); \ + FASTDECODE_VARINT(d, ptr, msg, table, hasbits, data, tagbytes, valbytes, \ + CARD_##card, type##_ZZ, \ + upb_pr##type##valbytes##_##tagbytes##bt, \ + upb_pp##type##valbytes##_##tagbytes##bt); \ } #define TYPES(card, tagbytes) \ @@ -503,126 +518,110 @@ TAGBYTES(p) #undef F #undef TYPES #undef TAGBYTES +#undef FASTDECODE_UNPACKEDVARINT +#undef FASTDECODE_PACKEDVARINT +#undef FASTDECODE_VARINT /* fixed fields ***************************************************************/ -UPB_FORCEINLINE -static const char *fastdecode_unpackedfixed(UPB_PARSE_PARAMS, int tagbytes, - int valbytes, upb_card card, - _upb_field_parser *packed) { - void *dst; - fastdecode_arr farr; - - if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { - if (card == CARD_r && fastdecode_flippacked(&data, tagbytes)) { - return packed(UPB_PARSE_ARGS); - } - RETURN_GENERIC("fixed field tag mismatch\n"); +#define FASTDECODE_UNPACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, card, packed) \ + void *dst; \ + fastdecode_arr farr; \ + \ + FASTDECODE_CHECKPACKED(tagbytes, card, packed) \ + \ + dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, \ + card); \ + if (card == CARD_r) { \ + if (UPB_UNLIKELY(!dst)) { \ + RETURN_GENERIC("couldn't allocate array in arena\n"); \ + } \ + } \ + \ + again: \ + if (card == CARD_r) { \ + dst = fastdecode_resizearr(d, dst, &farr, valbytes); \ + } \ + \ + ptr += tagbytes; \ + memcpy(dst, ptr, valbytes); \ + ptr += valbytes; \ + \ + if (card == CARD_r) { \ + fastdecode_nextret ret = fastdecode_nextrepeated( \ + d, dst, &ptr, &farr, data, tagbytes, valbytes); \ + switch (ret.next) { \ + case FD_NEXT_SAMEFIELD: \ + dst = ret.dst; \ + goto again; \ + case FD_NEXT_OTHERFIELD: \ + data = ret.tag; \ + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \ + case FD_NEXT_ATLIMIT: \ + return ptr; \ + } \ + } \ + \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); + +#define FASTDECODE_PACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, unpacked) \ + FASTDECODE_CHECKPACKED(tagbytes, CARD_r, unpacked) \ + \ + ptr += tagbytes; \ + int size = (uint8_t)ptr[0]; \ + ptr++; \ + if (size & 0x80) { \ + ptr = fastdecode_longsize(ptr, &size); \ + } \ + \ + if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->limit_ptr) || \ + (size % valbytes) != 0)) { \ + return fastdecode_err(d); \ + } \ + \ + upb_array **arr_p = fastdecode_fieldmem(msg, data); \ + upb_array *arr = *arr_p; \ + uint8_t elem_size_lg2 = __builtin_ctz(valbytes); \ + int elems = size / valbytes; \ + \ + if (UPB_LIKELY(!arr)) { \ + *arr_p = arr = _upb_array_new(&d->arena, elems, elem_size_lg2); \ + if (!arr) { \ + return fastdecode_err(d); \ + } \ + } else { \ + _upb_array_resize(arr, elems, &d->arena); \ + } \ + \ + char *dst = _upb_array_ptr(arr); \ + memcpy(dst, ptr, size); \ + arr->len = elems; \ + \ + ptr += size; \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); + +#define FASTDECODE_FIXED(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, card, unpacked, packed) \ + if (card == CARD_p) { \ + FASTDECODE_PACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, unpacked); \ + } else { \ + FASTDECODE_UNPACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \ + valbytes, card, packed); \ } - dst = - fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, card); - if (card == CARD_r) { - if (UPB_UNLIKELY(!dst)) { - RETURN_GENERIC("couldn't allocate array in arena\n"); - } - } - - -again: - if (card == CARD_r) { - dst = fastdecode_resizearr(d, dst, &farr, valbytes); - } - - ptr += tagbytes; - memcpy(dst, ptr, valbytes); - ptr += valbytes; - - if (card == CARD_r) { - fastdecode_nextret ret = - fastdecode_nextrepeated(d, dst, &ptr, &farr, data, tagbytes, valbytes); - switch (ret.next) { - case FD_NEXT_SAMEFIELD: - dst = ret.dst; - goto again; - case FD_NEXT_OTHERFIELD: - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, ret.tag); - case FD_NEXT_ATLIMIT: - return ptr; - } - } - - return fastdecode_dispatch(d, ptr, msg, table, hasbits); -} - -UPB_FORCEINLINE -static const char *fastdecode_packedfixed(UPB_PARSE_PARAMS, int tagbytes, - int valbytes, - _upb_field_parser *unpacked) { - if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { - if (fastdecode_flippacked(&data, tagbytes)) { - return unpacked(UPB_PARSE_ARGS); - } else { - RETURN_GENERIC("varint field tag mismatch\n"); - } - } - - ptr += tagbytes; - int size = (uint8_t)ptr[0]; - ptr++; - if (size & 0x80) { - ptr = fastdecode_longsize(ptr, &size); - } - - if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->limit_ptr)) || - (size % valbytes) != 0) { - return fastdecode_err(d); - } - - upb_array **arr_p = fastdecode_fieldmem(msg, data); - upb_array *arr = *arr_p; - uint8_t elem_size_lg2 = __builtin_ctz(valbytes); - int elems = size / valbytes; - - if (UPB_LIKELY(!arr)) { - *arr_p = arr = _upb_array_new(&d->arena, elems, elem_size_lg2); - if (!arr) { - return fastdecode_err(d); - } - } else { - _upb_array_resize(arr, elems, &d->arena); - } - - char *dst = _upb_array_ptr(arr); - memcpy(dst, ptr, size); - arr->len = elems; - - return fastdecode_dispatch(d, ptr + size, msg, table, hasbits); -} - -UPB_FORCEINLINE -static const char *fastdecode_fixed(UPB_PARSE_PARAMS, int tagbytes, - int valbytes, upb_card card, - _upb_field_parser *unpacked, - _upb_field_parser *packed) { - if (card == CARD_p) { - return fastdecode_packedfixed(UPB_PARSE_ARGS, tagbytes, valbytes, unpacked); - } else { - return fastdecode_unpackedfixed(UPB_PARSE_ARGS, tagbytes, valbytes, card, - packed); - } -} - /* Generate all combinations: * {s,o,r,p} x {f4,f8} x {1bt,2bt} */ -#define F(card, valbytes, tagbytes) \ - UPB_NOINLINE \ - const char *upb_p##card##f##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ - return fastdecode_fixed(UPB_PARSE_ARGS, tagbytes, valbytes, CARD_##card, \ - &upb_ppf##valbytes##_##tagbytes##bt, \ - &upb_prf##valbytes##_##tagbytes##bt); \ +#define F(card, valbytes, tagbytes) \ + UPB_NOINLINE \ + const char *upb_p##card##f##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ + FASTDECODE_FIXED(d, ptr, msg, table, hasbits, data, tagbytes, valbytes, \ + CARD_##card, upb_ppf##valbytes##_##tagbytes##bt, \ + upb_prf##valbytes##_##tagbytes##bt); \ } #define TYPES(card, tagbytes) \ @@ -641,6 +640,8 @@ TAGBYTES(p) #undef F #undef TYPES #undef TAGBYTES +#undef FASTDECODE_UNPACKEDFIXED +#undef FASTDECODE_PACKEDFIXED /* string fields **************************************************************/ @@ -652,56 +653,54 @@ typedef const char *fastdecode_copystr_func(struct upb_decstate *d, UPB_NOINLINE static const char *fastdecode_verifyutf8(upb_decstate *d, const char *ptr, upb_msg *msg, intptr_t table, - uint64_t hasbits, upb_strview *dst) { + uint64_t hasbits, uint64_t data) { + upb_strview *dst = (upb_strview*)data; if (!decode_verifyutf8_inl(dst->data, dst->size)) { return fastdecode_err(d); } - return fastdecode_dispatch(d, ptr, msg, table, hasbits); + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); } -UPB_FORCEINLINE -static const char *fastdecode_longstring(struct upb_decstate *d, - const char *ptr, upb_msg *msg, - intptr_t table, uint64_t hasbits, - upb_strview *dst, - bool validate_utf8) { - int size = (uint8_t)ptr[0]; // Could plumb through hasbits. - ptr++; - if (size & 0x80) { - ptr = fastdecode_longsize(ptr, &size); +#define FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, validate_utf8) \ + int size = (uint8_t)ptr[0]; /* Could plumb through hasbits. */ \ + ptr++; \ + if (size & 0x80) { \ + ptr = fastdecode_longsize(ptr, &size); \ + } \ + \ + if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->limit_ptr))) { \ + dst->size = 0; \ + return fastdecode_err(d); \ + } \ + \ + if (d->alias) { \ + dst->data = ptr; \ + dst->size = size; \ + } else { \ + char *data = upb_arena_malloc(&d->arena, size); \ + if (!data) { \ + return fastdecode_err(d); \ + } \ + memcpy(data, ptr, size); \ + dst->data = data; \ + dst->size = size; \ + } \ + \ + ptr += size; \ + if (validate_utf8) { \ + data = (uint64_t)dst; \ + UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \ + } else { \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); \ } - if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->limit_ptr))) { - dst->size = 0; - return fastdecode_err(d); - } - - if (d->alias) { - dst->data = ptr; - dst->size = size; - } else { - char *data = upb_arena_malloc(&d->arena, size); - if (!data) { - return fastdecode_err(d); - } - memcpy(data, ptr, size); - dst->data = data; - dst->size = size; - } - - if (validate_utf8) { - return fastdecode_verifyutf8(d, ptr + size, msg, table, hasbits, dst); - } else { - return fastdecode_dispatch(d, ptr + size, msg, table, hasbits); - } -} - UPB_NOINLINE static const char *fastdecode_longstring_utf8(struct upb_decstate *d, - const char *ptr, upb_msg *msg, - intptr_t table, uint64_t hasbits, - upb_strview *dst) { - return fastdecode_longstring(d, ptr, msg, table, hasbits, dst, true); + const char *ptr, upb_msg *msg, + intptr_t table, uint64_t hasbits, + uint64_t data) { + upb_strview *dst = (upb_strview*)data; + FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, true); } UPB_NOINLINE @@ -709,8 +708,9 @@ static const char *fastdecode_longstring_noutf8(struct upb_decstate *d, const char *ptr, upb_msg *msg, intptr_t table, uint64_t hasbits, - upb_strview *dst) { - return fastdecode_longstring(d, ptr, msg, table, hasbits, dst, false); + uint64_t data) { + upb_strview *dst = (upb_strview*)data; + FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, false); } UPB_FORCEINLINE @@ -723,156 +723,165 @@ static void fastdecode_docopy(upb_decstate *d, const char *ptr, uint32_t size, UPB_POISON_MEMORY_REGION(data + size, copy - size); } -UPB_FORCEINLINE -static const char *fastdecode_copystring(UPB_PARSE_PARAMS, int tagbytes, - upb_card card, bool validate_utf8) { - upb_strview *dst; - fastdecode_arr farr; - int64_t size; - size_t arena_has; - size_t common_has; - char *buf; - - UPB_ASSERT(!d->alias); - UPB_ASSERT(fastdecode_checktag(data, tagbytes)); - - dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, - sizeof(upb_strview), card); - -again: - if (card == CARD_r) { - dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_strview)); - } - - size = (uint8_t)ptr[tagbytes]; - ptr += tagbytes + 1; - dst->size = size; - - buf = d->arena.head.ptr; - arena_has = _upb_arenahas(&d->arena); - common_has = UPB_MIN(arena_has, (d->end - ptr) + 16); - - if (UPB_LIKELY(size <= 15 - tagbytes)) { - if (arena_has < 16) goto longstr; - d->arena.head.ptr += 16; - memcpy(buf, ptr - tagbytes - 1, 16); - dst->data = buf + tagbytes + 1; - } else if (UPB_LIKELY(size <= 32)) { - if (UPB_UNLIKELY(common_has < 32)) goto longstr; - fastdecode_docopy(d, ptr, size, 32, buf, dst); - } else if (UPB_LIKELY(size <= 64)) { - if (UPB_UNLIKELY(common_has < 64)) goto longstr; - fastdecode_docopy(d, ptr, size, 64, buf, dst); - } else if (UPB_LIKELY(size < 128)) { - if (UPB_UNLIKELY(common_has < 128)) goto longstr; - fastdecode_docopy(d, ptr, size, 128, buf, dst); - } else { - goto longstr; - } - - ptr += size; - - if (card == CARD_r) { - if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { - return fastdecode_err(d); - } - fastdecode_nextret ret = fastdecode_nextrepeated( - d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_strview)); - switch (ret.next) { - case FD_NEXT_SAMEFIELD: - dst = ret.dst; - goto again; - case FD_NEXT_OTHERFIELD: - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, ret.tag); - case FD_NEXT_ATLIMIT: - return ptr; - } - } - - if (card != CARD_r && validate_utf8) { - return fastdecode_verifyutf8(d, ptr, msg, table, hasbits, dst); - } - - return fastdecode_dispatch(d, ptr, msg, table, hasbits); - -longstr: - ptr--; - if (validate_utf8) { - return fastdecode_longstring_utf8(d, ptr, msg, table, hasbits, dst); - } else { - return fastdecode_longstring_noutf8(d, ptr, msg, table, hasbits, dst); - } -} - -UPB_FORCEINLINE -static const char *fastdecode_string(UPB_PARSE_PARAMS, int tagbytes, - upb_card card, _upb_field_parser *copyfunc, - bool validate_utf8) { - upb_strview *dst; - fastdecode_arr farr; - int64_t size; - - if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { - RETURN_GENERIC("string field tag mismatch\n"); - } - - if (UPB_UNLIKELY(!d->alias)) { - return copyfunc(UPB_PARSE_ARGS); - } - - dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, - sizeof(upb_strview), card); - -again: - if (card == CARD_r) { - dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_strview)); +#define FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \ + card, validate_utf8) \ + upb_strview *dst; \ + fastdecode_arr farr; \ + int64_t size; \ + size_t arena_has; \ + size_t common_has; \ + char *buf; \ + \ + UPB_ASSERT(!d->alias); \ + UPB_ASSERT(fastdecode_checktag(data, tagbytes)); \ + \ + dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \ + sizeof(upb_strview), card); \ + \ + again: \ + if (card == CARD_r) { \ + dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_strview)); \ + } \ + \ + size = (uint8_t)ptr[tagbytes]; \ + ptr += tagbytes + 1; \ + dst->size = size; \ + \ + buf = d->arena.head.ptr; \ + arena_has = _upb_arenahas(&d->arena); \ + common_has = UPB_MIN(arena_has, (d->end - ptr) + 16); \ + \ + if (UPB_LIKELY(size <= 15 - tagbytes)) { \ + if (arena_has < 16) \ + goto longstr; \ + d->arena.head.ptr += 16; \ + memcpy(buf, ptr - tagbytes - 1, 16); \ + dst->data = buf + tagbytes + 1; \ + } else if (UPB_LIKELY(size <= 32)) { \ + if (UPB_UNLIKELY(common_has < 32)) \ + goto longstr; \ + fastdecode_docopy(d, ptr, size, 32, buf, dst); \ + } else if (UPB_LIKELY(size <= 64)) { \ + if (UPB_UNLIKELY(common_has < 64)) \ + goto longstr; \ + fastdecode_docopy(d, ptr, size, 64, buf, dst); \ + } else if (UPB_LIKELY(size < 128)) { \ + if (UPB_UNLIKELY(common_has < 128)) \ + goto longstr; \ + fastdecode_docopy(d, ptr, size, 128, buf, dst); \ + } else { \ + goto longstr; \ + } \ + \ + ptr += size; \ + \ + if (card == CARD_r) { \ + if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { \ + return fastdecode_err(d); \ + } \ + fastdecode_nextret ret = fastdecode_nextrepeated( \ + d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_strview)); \ + switch (ret.next) { \ + case FD_NEXT_SAMEFIELD: \ + dst = ret.dst; \ + goto again; \ + case FD_NEXT_OTHERFIELD: \ + data = ret.tag; \ + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \ + case FD_NEXT_ATLIMIT: \ + return ptr; \ + } \ + } \ + \ + if (card != CARD_r && validate_utf8) { \ + data = (uint64_t)dst; \ + UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \ + } \ + \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); \ + \ + longstr: \ + ptr--; \ + if (validate_utf8) { \ + UPB_MUSTTAIL return fastdecode_longstring_utf8(d, ptr, msg, table, \ + hasbits, (uint64_t)dst); \ + } else { \ + UPB_MUSTTAIL return fastdecode_longstring_noutf8(d, ptr, msg, table, \ + hasbits, (uint64_t)dst); \ } - size = (int8_t)ptr[tagbytes]; - ptr += tagbytes + 1; - dst->data = ptr; - dst->size = size; - - if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->end))) { - ptr--; - if (validate_utf8) { - return fastdecode_longstring_utf8(d, ptr, msg, table, hasbits, dst); - } else { - return fastdecode_longstring_noutf8(d, ptr, msg, table, hasbits, dst); - } - } - - ptr += size; - - if (card == CARD_r) { - if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { - return fastdecode_err(d); - } - fastdecode_nextret ret = fastdecode_nextrepeated( - d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_strview)); - switch (ret.next) { - case FD_NEXT_SAMEFIELD: - dst = ret.dst; - if (UPB_UNLIKELY(!d->alias)) { - // Buffer flipped and we can't alias any more. Bounce to copyfunc(), - // but via dispatch since we need to reload table data also. - fastdecode_commitarr(dst, &farr, sizeof(upb_strview)); - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, ret.tag); - } - goto again; - case FD_NEXT_OTHERFIELD: - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, ret.tag); - case FD_NEXT_ATLIMIT: - return ptr; - } - } - - if (card != CARD_r && validate_utf8) { - return fastdecode_verifyutf8(d, ptr, msg, table, hasbits, dst); - } - - return fastdecode_dispatch(d, ptr, msg, table, hasbits); -} +#define FASTDECODE_STRING(d, ptr, msg, table, hasbits, data, tagbytes, card, \ + copyfunc, validate_utf8) \ + upb_strview *dst; \ + fastdecode_arr farr; \ + int64_t size; \ + \ + if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \ + RETURN_GENERIC("string field tag mismatch\n"); \ + } \ + \ + if (UPB_UNLIKELY(!d->alias)) { \ + UPB_MUSTTAIL return copyfunc(UPB_PARSE_ARGS); \ + } \ + \ + dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \ + sizeof(upb_strview), card); \ + \ + again: \ + if (card == CARD_r) { \ + dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_strview)); \ + } \ + \ + size = (int8_t)ptr[tagbytes]; \ + ptr += tagbytes + 1; \ + dst->data = ptr; \ + dst->size = size; \ + \ + if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->end))) { \ + ptr--; \ + if (validate_utf8) { \ + return fastdecode_longstring_utf8(d, ptr, msg, table, hasbits, \ + (uint64_t)dst); \ + } else { \ + return fastdecode_longstring_noutf8(d, ptr, msg, table, hasbits, \ + (uint64_t)dst); \ + } \ + } \ + \ + ptr += size; \ + \ + if (card == CARD_r) { \ + if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { \ + return fastdecode_err(d); \ + } \ + fastdecode_nextret ret = fastdecode_nextrepeated( \ + d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_strview)); \ + switch (ret.next) { \ + case FD_NEXT_SAMEFIELD: \ + dst = ret.dst; \ + if (UPB_UNLIKELY(!d->alias)) { \ + /* Buffer flipped and we can't alias any more. Bounce to */ \ + /* copyfunc(), but via dispatch since we need to reload table */ \ + /* data also. */ \ + fastdecode_commitarr(dst, &farr, sizeof(upb_strview)); \ + data = ret.tag; \ + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \ + } \ + goto again; \ + case FD_NEXT_OTHERFIELD: \ + data = ret.tag; \ + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \ + case FD_NEXT_ATLIMIT: \ + return ptr; \ + } \ + } \ + \ + if (card != CARD_r && validate_utf8) { \ + data = (uint64_t)dst; \ + UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \ + } \ + \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); /* Generate all combinations: * {p,c} x {s,o,r} x {s, b} x {1bt,2bt} */ @@ -880,16 +889,16 @@ again: #define s_VALIDATE true #define b_VALIDATE false -#define F(card, tagbytes, type) \ - UPB_NOINLINE \ - const char *upb_c##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ - return fastdecode_copystring(UPB_PARSE_ARGS, tagbytes, CARD_##card, \ - type##_VALIDATE); \ - } \ - const char *upb_p##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ - return fastdecode_string(UPB_PARSE_ARGS, tagbytes, CARD_##card, \ - &upb_c##card##type##_##tagbytes##bt, \ - type##_VALIDATE); \ +#define F(card, tagbytes, type) \ + UPB_NOINLINE \ + const char *upb_c##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ + FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \ + CARD_##card, type##_VALIDATE); \ + } \ + const char *upb_p##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \ + FASTDECODE_STRING(d, ptr, msg, table, hasbits, data, tagbytes, \ + CARD_##card, upb_c##card##type##_##tagbytes##bt, \ + type##_VALIDATE); \ } #define UTF8(card, tagbytes) \ @@ -908,6 +917,9 @@ TAGBYTES(r) #undef b_VALIDATE #undef F #undef TAGBYTES +#undef FASTDECODE_LONGSTRING +#undef FASTDECODE_COPYSTRING +#undef FASTDECODE_STRING /* message fields *************************************************************/ @@ -940,82 +952,82 @@ UPB_FORCEINLINE static const char *fastdecode_tosubmsg(upb_decstate *d, const char *ptr, void *ctx) { fastdecode_submsgdata *submsg = ctx; - ptr = fastdecode_dispatch(d, ptr, submsg->msg, submsg->table, 0); + ptr = fastdecode_dispatch(d, ptr, submsg->msg, submsg->table, 0, 0); UPB_ASSUME(ptr != NULL); return ptr; } -UPB_FORCEINLINE -static const char *fastdecode_submsg(UPB_PARSE_PARAMS, int tagbytes, - int msg_ceil_bytes, upb_card card) { - - if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { - RETURN_GENERIC("submessage field tag mismatch\n"); - } - - if (--d->depth == 0) return fastdecode_err(d); - - upb_msg **dst; - uint32_t submsg_idx = (data >> 16) & 0xff; - const upb_msglayout *tablep = decode_totablep(table); - const upb_msglayout *subtablep = tablep->submsgs[submsg_idx]; - fastdecode_submsgdata submsg = {decode_totable(subtablep)}; - fastdecode_arr farr; - - if (subtablep->table_mask == (uint8_t)-1) { - RETURN_GENERIC("submessage doesn't have fast tables."); - } - - dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, - sizeof(upb_msg *), card); - - if (card == CARD_s) { - *(uint32_t*)msg |= hasbits; - hasbits = 0; - } - -again: - if (card == CARD_r) { - dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_msg*)); - } - - submsg.msg = *dst; - - if (card == CARD_r || UPB_LIKELY(!submsg.msg)) { - *dst = submsg.msg = decode_newmsg_ceil(d, subtablep, msg_ceil_bytes); - } - - ptr += tagbytes; - ptr = fastdecode_delimited(d, ptr, fastdecode_tosubmsg, &submsg); - - if (UPB_UNLIKELY(ptr == NULL || d->end_group != DECODE_NOGROUP)) { - return fastdecode_err(d); - } - - if (card == CARD_r) { - fastdecode_nextret ret = fastdecode_nextrepeated( - d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_msg *)); - switch (ret.next) { - case FD_NEXT_SAMEFIELD: - dst = ret.dst; - goto again; - case FD_NEXT_OTHERFIELD: - d->depth++; - return fastdecode_tagdispatch(d, ptr, msg, table, hasbits, ret.tag); - case FD_NEXT_ATLIMIT: - d->depth++; - return ptr; - } - } - - d->depth++; - return fastdecode_dispatch(d, ptr, msg, table, hasbits); -} - -#define F(card, tagbytes, size_ceil, ceil_arg) \ - const char *upb_p##card##m_##tagbytes##bt_max##size_ceil##b( \ - UPB_PARSE_PARAMS) { \ - return fastdecode_submsg(UPB_PARSE_ARGS, tagbytes, ceil_arg, CARD_##card); \ +#define FASTDECODE_SUBMSG(d, ptr, msg, table, hasbits, data, tagbytes, \ + msg_ceil_bytes, card) \ + \ + if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \ + RETURN_GENERIC("submessage field tag mismatch\n"); \ + } \ + \ + if (--d->depth == 0) return fastdecode_err(d); \ + \ + upb_msg **dst; \ + uint32_t submsg_idx = (data >> 16) & 0xff; \ + const upb_msglayout *tablep = decode_totablep(table); \ + const upb_msglayout *subtablep = tablep->submsgs[submsg_idx]; \ + fastdecode_submsgdata submsg = {decode_totable(subtablep)}; \ + fastdecode_arr farr; \ + \ + if (subtablep->table_mask == (uint8_t)-1) { \ + RETURN_GENERIC("submessage doesn't have fast tables."); \ + } \ + \ + dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \ + sizeof(upb_msg *), card); \ + \ + if (card == CARD_s) { \ + *(uint32_t *)msg |= hasbits; \ + hasbits = 0; \ + } \ + \ + again: \ + if (card == CARD_r) { \ + dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_msg *)); \ + } \ + \ + submsg.msg = *dst; \ + \ + if (card == CARD_r || UPB_LIKELY(!submsg.msg)) { \ + *dst = submsg.msg = decode_newmsg_ceil(d, subtablep, msg_ceil_bytes); \ + } \ + \ + ptr += tagbytes; \ + ptr = fastdecode_delimited(d, ptr, fastdecode_tosubmsg, &submsg); \ + \ + if (UPB_UNLIKELY(ptr == NULL || d->end_group != DECODE_NOGROUP)) { \ + return fastdecode_err(d); \ + } \ + \ + if (card == CARD_r) { \ + fastdecode_nextret ret = fastdecode_nextrepeated( \ + d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_msg *)); \ + switch (ret.next) { \ + case FD_NEXT_SAMEFIELD: \ + dst = ret.dst; \ + goto again; \ + case FD_NEXT_OTHERFIELD: \ + d->depth++; \ + data = ret.tag; \ + UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \ + case FD_NEXT_ATLIMIT: \ + d->depth++; \ + return ptr; \ + } \ + } \ + \ + d->depth++; \ + UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); + +#define F(card, tagbytes, size_ceil, ceil_arg) \ + const char *upb_p##card##m_##tagbytes##bt_max##size_ceil##b( \ + UPB_PARSE_PARAMS) { \ + FASTDECODE_SUBMSG(d, ptr, msg, table, hasbits, data, tagbytes, ceil_arg, \ + CARD_##card); \ } #define SIZES(card, tagbytes) \ @@ -1036,5 +1048,6 @@ TAGBYTES(r) #undef TAGBYTES #undef SIZES #undef F +#undef FASTDECODE_SUBMSG #endif /* UPB_FASTTABLE */ diff --git a/third_party/upb/upb/decode_fast.h b/third_party/upb/upb/decode_fast.h index 6d56d124770..a05cd80fe4b 100644 --- a/third_party/upb/upb/decode_fast.h +++ b/third_party/upb/upb/decode_fast.h @@ -1,3 +1,30 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + // These are the specialized field parser functions for the fast parser. // Generated tables will refer to these by name. // diff --git a/third_party/upb/upb/decode.int.h b/third_party/upb/upb/decode_internal.h similarity index 68% rename from third_party/upb/upb/decode.int.h rename to third_party/upb/upb/decode_internal.h index e286b9cdd52..0492363725f 100644 --- a/third_party/upb/upb/decode.int.h +++ b/third_party/upb/upb/decode_internal.h @@ -1,20 +1,47 @@ /* -** Internal implementation details of the decoder that are shared between -** decode.c and decode_fast.c. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Internal implementation details of the decoder that are shared between + * decode.c and decode_fast.c. + */ #ifndef UPB_DECODE_INT_H_ #define UPB_DECODE_INT_H_ #include -#include "upb/msg.h" -#include "upb/upb.int.h" +#include "upb/msg_internal.h" +#include "upb/upb_internal.h" /* Must be last. */ #include "upb/port_def.inc" -#define DECODE_NOGROUP -1 +#define DECODE_NOGROUP (uint32_t)-1 typedef struct upb_decstate { const char *end; /* Can read up to 16 bytes slop beyond this. */ @@ -115,10 +142,11 @@ bool decode_isdone(upb_decstate *d, const char **ptr) { } } +#if UPB_FASTTABLE UPB_INLINE const char *fastdecode_tagdispatch(upb_decstate *d, const char *ptr, upb_msg *msg, intptr_t table, - uint64_t hasbits, uint32_t tag) { + uint64_t hasbits, uint64_t tag) { const upb_msglayout *table_p = decode_totablep(table); uint8_t mask = table; uint64_t data; @@ -126,8 +154,10 @@ const char *fastdecode_tagdispatch(upb_decstate *d, const char *ptr, UPB_ASSUME((idx & 7) == 0); idx >>= 3; data = table_p->fasttable[idx].field_data ^ tag; - return table_p->fasttable[idx].field_parser(d, ptr, msg, table, hasbits, data); + UPB_MUSTTAIL return table_p->fasttable[idx].field_parser(d, ptr, msg, table, + hasbits, data); } +#endif UPB_INLINE uint32_t fastdecode_loadtag(const char* ptr) { uint16_t tag; diff --git a/third_party/upb/upb/def.c b/third_party/upb/upb/def.c index 4ba553a69cb..641f1b428b1 100644 --- a/third_party/upb/upb/def.c +++ b/third_party/upb/upb/def.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/def.h" @@ -8,6 +34,9 @@ #include #include "google/protobuf/descriptor.upb.h" +#include "upb/reflection.h" + +/* Must be last. */ #include "upb/port_def.inc" typedef struct { @@ -37,7 +66,6 @@ struct upb_fielddef { uint32_t number_; uint16_t index_; uint16_t layout_index; - uint32_t selector_base; /* Used to index into a upb::Handlers table. */ bool is_extension_; bool lazy_; bool packed_; @@ -50,8 +78,6 @@ struct upb_msgdef { const upb_msglayout *layout; const upb_filedef *file; const char *full_name; - uint32_t selector_count; - uint32_t submsg_field_count; /* Tables for looking up fields by number and name. */ upb_inttable itof; @@ -181,30 +207,6 @@ int cmp_fields(const void *p1, const void *p2) { return field_rank(f1) - field_rank(f2); } -/* A few implementation details of handlers. We put these here to avoid - * a def -> handlers dependency. */ - -#define UPB_STATIC_SELECTOR_COUNT 3 /* Warning: also in upb/handlers.h. */ - -static uint32_t upb_handlers_selectorbaseoffset(const upb_fielddef *f) { - return upb_fielddef_isseq(f) ? 2 : 0; -} - -static uint32_t upb_handlers_selectorcount(const upb_fielddef *f) { - uint32_t ret = 1; - if (upb_fielddef_isseq(f)) ret += 2; /* STARTSEQ/ENDSEQ */ - if (upb_fielddef_isstring(f)) ret += 2; /* [STRING]/STARTSTR/ENDSTR */ - if (upb_fielddef_issubmsg(f)) { - /* ENDSUBMSG (STARTSUBMSG is at table beginning) */ - ret += 0; - if (upb_fielddef_lazy(f)) { - /* STARTSTR/ENDSTR/STRING (for lazy) */ - ret += 3; - } - } - return ret; -} - static void upb_status_setoom(upb_status *status) { upb_status_seterrmsg(status, "out of memory"); } @@ -296,8 +298,7 @@ bool upb_enumdef_ntoi(const upb_enumdef *def, const char *name, const char *upb_enumdef_iton(const upb_enumdef *def, int32_t num) { upb_value v; - return upb_inttable_lookup32(&def->iton, num, &v) ? - upb_value_getcstr(v) : NULL; + return upb_inttable_lookup(&def->iton, num, &v) ? upb_value_getcstr(v) : NULL; } const char *upb_enum_iter_name(upb_enum_iter *iter) { @@ -386,10 +387,6 @@ const char *upb_fielddef_jsonname(const upb_fielddef *f) { return f->json_name; } -uint32_t upb_fielddef_selectorbase(const upb_fielddef *f) { - return f->selector_base; -} - const upb_filedef *upb_fielddef_file(const upb_fielddef *f) { return f->file; } @@ -407,6 +404,23 @@ const upb_oneofdef *upb_fielddef_realcontainingoneof(const upb_fielddef *f) { return f->oneof; } +upb_msgval upb_fielddef_default(const upb_fielddef *f) { + UPB_ASSERT(!upb_fielddef_issubmsg(f)); + upb_msgval ret; + if (upb_fielddef_isstring(f)) { + str_t *str = f->defaultval.str; + if (str) { + ret.str_val.data = str->str; + ret.str_val.size = str->len; + } else { + ret.str_val.size = 0; + } + } else { + memcpy(&ret, &f->defaultval, 8); + } + return ret; +} + static void chkdefaulttype(const upb_fielddef *f, int ctype) { UPB_UNUSED(f); UPB_UNUSED(ctype); @@ -535,18 +549,10 @@ upb_syntax_t upb_msgdef_syntax(const upb_msgdef *m) { return m->file->syntax; } -size_t upb_msgdef_selectorcount(const upb_msgdef *m) { - return m->selector_count; -} - -uint32_t upb_msgdef_submsgfieldcount(const upb_msgdef *m) { - return m->submsg_field_count; -} - const upb_fielddef *upb_msgdef_itof(const upb_msgdef *m, uint32_t i) { upb_value val; - return upb_inttable_lookup32(&m->itof, i, &val) ? - upb_value_getconstptr(val) : NULL; + return upb_inttable_lookup(&m->itof, i, &val) ? upb_value_getconstptr(val) + : NULL; } const upb_fielddef *upb_msgdef_ntof(const upb_msgdef *m, const char *name, @@ -754,8 +760,8 @@ const upb_fielddef *upb_oneofdef_ntof(const upb_oneofdef *o, const upb_fielddef *upb_oneofdef_itof(const upb_oneofdef *o, uint32_t num) { upb_value val; - return upb_inttable_lookup32(&o->itof, num, &val) ? - upb_value_getptr(val) : NULL; + return upb_inttable_lookup(&o->itof, num, &val) ? upb_value_getptr(val) + : NULL; } void upb_oneof_begin(upb_oneof_iter *iter, const upb_oneofdef *o) { @@ -835,7 +841,6 @@ void upb_symtab_free(upb_symtab *s) { upb_symtab *upb_symtab_new(void) { upb_symtab *s = upb_gmalloc(sizeof(*s)); - upb_alloc *alloc; if (!s) { return NULL; @@ -843,10 +848,9 @@ upb_symtab *upb_symtab_new(void) { s->arena = upb_arena_new(); s->bytes_loaded = 0; - alloc = upb_arena_alloc(s->arena); - if (!upb_strtable_init2(&s->syms, UPB_CTYPE_CONSTPTR, 32, alloc) || - !upb_strtable_init2(&s->files, UPB_CTYPE_CONSTPTR, 4, alloc)) { + if (!upb_strtable_init(&s->syms, 32, s->arena) || + !upb_strtable_init(&s->files, 4, s->arena)) { upb_arena_free(s->arena); upb_gfree(s); s = NULL; @@ -902,14 +906,13 @@ int upb_symtab_filecount(const upb_symtab *s) { typedef struct { upb_symtab *symtab; upb_filedef *file; /* File we are building. */ - upb_arena *file_arena; /* Allocate defs here. */ - upb_alloc *alloc; /* Alloc of file_arena, for tables. */ + upb_arena *arena; /* Allocate defs here. */ const upb_msglayout **layouts; /* NULL if we should build layouts. */ upb_status *status; /* Record errors here. */ jmp_buf err; /* longjmp() on error. */ } symtab_addctx; -UPB_NORETURN UPB_NOINLINE +UPB_NORETURN UPB_NOINLINE UPB_PRINTF(2, 3) static void symtab_errf(symtab_addctx *ctx, const char *fmt, ...) { va_list argp; va_start(argp, fmt); @@ -925,7 +928,7 @@ static void symtab_oomerr(symtab_addctx *ctx) { } void *symtab_alloc(symtab_addctx *ctx, size_t bytes) { - void *ret = upb_arena_malloc(ctx->file_arena, bytes); + void *ret = upb_arena_malloc(ctx->arena, bytes); if (!ret) symtab_oomerr(ctx); return ret; } @@ -1015,13 +1018,44 @@ static int field_number_cmp(const void *p1, const void *p2) { return f1->number - f2->number; } -static void assign_layout_indices(const upb_msgdef *m, upb_msglayout_field *fields) { +static void assign_layout_indices(const upb_msgdef *m, upb_msglayout *l, + upb_msglayout_field *fields) { int i; int n = upb_msgdef_numfields(m); + int dense_below = 0; for (i = 0; i < n; i++) { upb_fielddef *f = (upb_fielddef*)upb_msgdef_itof(m, fields[i].number); UPB_ASSERT(f); f->layout_index = i; + if (i < UINT8_MAX && fields[i].number == i + 1 && + (i == 0 || fields[i-1].number == i)) { + dense_below = i + 1; + } + } + l->dense_below = dense_below; +} + +static void fill_fieldlayout(upb_msglayout_field *field, const upb_fielddef *f) { + field->number = upb_fielddef_number(f); + field->descriptortype = upb_fielddef_descriptortype(f); + + if (field->descriptortype == UPB_DTYPE_STRING && + f->file->syntax == UPB_SYNTAX_PROTO2) { + /* See TableDescriptorType() in upbc/generator.cc for details and + * rationale. */ + field->descriptortype = UPB_DTYPE_BYTES; + } + + if (upb_fielddef_ismap(f)) { + field->mode = _UPB_MODE_MAP; + } else if (upb_fielddef_isseq(f)) { + field->mode = _UPB_MODE_ARRAY; + } else { + field->mode = _UPB_MODE_SCALAR; + } + + if (upb_fielddef_packed(f)) { + field->mode |= _UPB_MODE_IS_PACKED; } } @@ -1032,13 +1066,21 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) { upb_msg_field_iter it; upb_msg_oneof_iter oit; size_t hasbit; - size_t submsg_count = m->submsg_field_count; + size_t field_count = upb_msgdef_numfields(m); + size_t submsg_count = 0; const upb_msglayout **submsgs; upb_msglayout_field *fields; memset(l, 0, sizeof(*l) + sizeof(_upb_fasttable_entry)); - fields = symtab_alloc(ctx, upb_msgdef_numfields(m) * sizeof(*fields)); + /* Count sub-messages. */ + for (size_t i = 0; i < field_count; i++) { + if (upb_fielddef_issubmsg(&m->fields[i])) { + submsg_count++; + } + } + + fields = symtab_alloc(ctx, field_count * sizeof(*fields)); submsgs = symtab_alloc(ctx, submsg_count * sizeof(*submsgs)); l->field_count = upb_msgdef_numfields(m); @@ -1058,8 +1100,8 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) { const upb_fielddef *val = upb_msgdef_itof(m, 2); fields[0].number = 1; fields[1].number = 2; - fields[0].label = UPB_LABEL_OPTIONAL; - fields[1].label = UPB_LABEL_OPTIONAL; + fields[0].mode = _UPB_MODE_SCALAR; + fields[1].mode = _UPB_MODE_SCALAR; fields[0].presence = 0; fields[1].presence = 0; fields[0].descriptortype = upb_fielddef_descriptortype(key); @@ -1095,22 +1137,7 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) { upb_fielddef* f = upb_msg_iter_field(&it); upb_msglayout_field *field = &fields[upb_fielddef_index(f)]; - field->number = upb_fielddef_number(f); - field->descriptortype = upb_fielddef_descriptortype(f); - field->label = upb_fielddef_label(f); - - if (field->descriptortype == UPB_DTYPE_STRING && - f->file->syntax == UPB_SYNTAX_PROTO2) { - /* See TableDescriptorType() in upbc/generator.cc for details and - * rationale. */ - field->descriptortype = UPB_DTYPE_BYTES; - } - - if (upb_fielddef_ismap(f)) { - field->label = _UPB_LABEL_MAP; - } else if (upb_fielddef_packed(f)) { - field->label = _UPB_LABEL_PACKED; - } + fill_fieldlayout(field, f); if (upb_fielddef_issubmsg(f)) { const upb_msgdef *subm = upb_fielddef_msgsubdef(f); @@ -1186,54 +1213,11 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) { /* Sort fields by number. */ qsort(fields, upb_msgdef_numfields(m), sizeof(*fields), field_number_cmp); - assign_layout_indices(m, fields); -} - -static void assign_msg_indices(symtab_addctx *ctx, upb_msgdef *m) { - /* Sort fields. upb internally relies on UPB_TYPE_MESSAGE fields having the - * lowest indexes, but we do not publicly guarantee this. */ - upb_msg_field_iter j; - int i; - uint32_t selector; - int n = upb_msgdef_numfields(m); - upb_fielddef **fields; - - if (n == 0) { - m->selector_count = UPB_STATIC_SELECTOR_COUNT; - m->submsg_field_count = 0; - return; - } - - fields = upb_gmalloc(n * sizeof(*fields)); - - m->submsg_field_count = 0; - for(i = 0, upb_msg_field_begin(&j, m); - !upb_msg_field_done(&j); - upb_msg_field_next(&j), i++) { - upb_fielddef *f = upb_msg_iter_field(&j); - UPB_ASSERT(f->msgdef == m); - if (upb_fielddef_issubmsg(f)) { - m->submsg_field_count++; - } - fields[i] = f; - } - - qsort(fields, n, sizeof(*fields), cmp_fields); - - selector = UPB_STATIC_SELECTOR_COUNT + m->submsg_field_count; - for (i = 0; i < n; i++) { - upb_fielddef *f = fields[i]; - f->index_ = i; - f->selector_base = selector + upb_handlers_selectorbaseoffset(f); - selector += upb_handlers_selectorcount(f); - } - m->selector_count = selector; - - upb_gfree(fields); + assign_layout_indices(m, l, fields); } static char *strviewdup(symtab_addctx *ctx, upb_strview view) { - return upb_strdup2(view.data, view.size, ctx->alloc); + return upb_strdup2(view.data, view.size, ctx->arena); } static bool streql2(const char *a, size_t n, const char *b) { @@ -1344,9 +1328,9 @@ static void symtab_add(symtab_addctx *ctx, const char *name, upb_value v) { if (upb_strtable_lookup(&ctx->symtab->syms, name, NULL)) { symtab_errf(ctx, "duplicate symbol '%s'", name); } - upb_alloc *alloc = upb_arena_alloc(ctx->symtab->arena); size_t len = strlen(name); - CHK_OOM(upb_strtable_insert3(&ctx->symtab->syms, name, len, v, alloc)); + CHK_OOM(upb_strtable_insert(&ctx->symtab->syms, name, len, v, + ctx->symtab->arena)); } /* Given a symbol and the base symbol inside which it is defined, find the @@ -1379,7 +1363,8 @@ static const void *symtab_resolve(symtab_addctx *ctx, const upb_fielddef *f, } notfound: - symtab_errf(ctx, "couldn't resolve name '%s'", sym.data); + symtab_errf(ctx, "couldn't resolve name '" UPB_STRVIEW_FORMAT "'", + UPB_STRVIEW_ARGS(sym)); } static void create_oneofdef( @@ -1397,10 +1382,10 @@ static void create_oneofdef( v = pack_def(o, UPB_DEFTYPE_ONEOF); symtab_add(ctx, o->full_name, v); - CHK_OOM(upb_strtable_insert3(&m->ntof, name.data, name.size, v, ctx->alloc)); + CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, v, ctx->arena)); - CHK_OOM(upb_inttable_init2(&o->itof, UPB_CTYPE_CONSTPTR, ctx->alloc)); - CHK_OOM(upb_strtable_init2(&o->ntof, UPB_CTYPE_CONSTPTR, 4, ctx->alloc)); + CHK_OOM(upb_inttable_init(&o->itof, ctx->arena)); + CHK_OOM(upb_strtable_init(&o->ntof, 4, ctx->arena)); } static str_t *newstr(symtab_addctx *ctx, const char *data, size_t len) { @@ -1456,8 +1441,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len, break; } case UPB_TYPE_INT64: { - /* XXX: Need to write our own strtoll, since it's not available in c89. */ - int64_t val = strtol(str, &end, 0); + long long val = strtoll(str, &end, 0); if (val > INT64_MAX || val < INT64_MIN || errno == ERANGE || *end) { goto invalid; } @@ -1473,8 +1457,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len, break; } case UPB_TYPE_UINT64: { - /* XXX: Need to write our own strtoull, since it's not available in c89. */ - uint64_t val = strtoul(str, &end, 0); + unsigned long long val = strtoull(str, &end, 0); if (val > UINT64_MAX || errno == ERANGE || *end) { goto invalid; } @@ -1490,8 +1473,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len, break; } case UPB_TYPE_FLOAT: { - /* XXX: Need to write our own strtof, since it's not available in c89. */ - float val = strtod(str, &end); + float val = strtof(str, &end); if (errno == ERANGE || *end) { goto invalid; } @@ -1523,7 +1505,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len, return; invalid: - symtab_errf(ctx, "Invalid default '%.*s' for field %f", (int)len, str, + symtab_errf(ctx, "Invalid default '%.*s' for field %s", (int)len, str, upb_fielddef_fullname(f)); } @@ -1557,7 +1539,6 @@ static void set_default_default(symtab_addctx *ctx, upb_fielddef *f) { static void create_fielddef( symtab_addctx *ctx, const char *prefix, upb_msgdef *m, const google_protobuf_FieldDescriptorProto *field_proto) { - upb_alloc *alloc = ctx->alloc; upb_fielddef *f; const google_protobuf_FieldOptions *options; upb_strview name; @@ -1593,7 +1574,8 @@ static void create_fielddef( upb_value v, field_v, json_v; size_t json_size; - f = (upb_fielddef*)&m->fields[m->field_count++]; + f = (upb_fielddef*)&m->fields[m->field_count]; + f->index_ = m->field_count++; f->msgdef = m; f->is_extension_ = false; @@ -1614,12 +1596,12 @@ static void create_fielddef( v = upb_value_constptr(f); json_size = strlen(json_name); - CHK_OOM( - upb_strtable_insert3(&m->ntof, name.data, name.size, field_v, alloc)); - CHK_OOM(upb_inttable_insert2(&m->itof, field_number, v, alloc)); + CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, field_v, + ctx->arena)); + CHK_OOM(upb_inttable_insert(&m->itof, field_number, v, ctx->arena)); if (strcmp(shortname, json_name) != 0) { - upb_strtable_insert3(&m->ntof, json_name, json_size, json_v, alloc); + upb_strtable_insert(&m->ntof, json_name, json_size, json_v, ctx->arena); } if (ctx->layouts) { @@ -1682,15 +1664,16 @@ static void create_fielddef( symtab_errf(ctx, "oneof_index out of range (%s)", f->full_name); } - oneof = (upb_oneofdef*)&m->oneofs[oneof_index]; + oneof = (upb_oneofdef *)&m->oneofs[oneof_index]; f->oneof = oneof; oneof->field_count++; if (f->proto3_optional_) { oneof->synthetic = true; } - CHK_OOM(upb_inttable_insert2(&oneof->itof, f->number_, v, alloc)); - CHK_OOM(upb_strtable_insert3(&oneof->ntof, name.data, name.size, v, alloc)); + CHK_OOM(upb_inttable_insert(&oneof->itof, f->number_, v, ctx->arena)); + CHK_OOM( + upb_strtable_insert(&oneof->ntof, name.data, name.size, v, ctx->arena)); } else { f->oneof = NULL; if (f->proto3_optional_) { @@ -1733,8 +1716,8 @@ static void create_enumdef( symtab_add(ctx, e->full_name, pack_def(e, UPB_DEFTYPE_ENUM)); values = google_protobuf_EnumDescriptorProto_value(enum_proto, &n); - CHK_OOM(upb_strtable_init2(&e->ntoi, UPB_CTYPE_INT32, n, ctx->alloc)); - CHK_OOM(upb_inttable_init2(&e->iton, UPB_CTYPE_CSTR, ctx->alloc)); + CHK_OOM(upb_strtable_init(&e->ntoi, n, ctx->arena)); + CHK_OOM(upb_inttable_init(&e->iton, ctx->arena)); e->file = ctx->file; e->defaultval = 0; @@ -1761,16 +1744,15 @@ static void create_enumdef( } CHK_OOM(name2) - CHK_OOM( - upb_strtable_insert3(&e->ntoi, name2, strlen(name2), v, ctx->alloc)); + CHK_OOM(upb_strtable_insert(&e->ntoi, name2, strlen(name2), v, ctx->arena)); if (!upb_inttable_lookup(&e->iton, num, NULL)) { upb_value v = upb_value_cstr(name2); - CHK_OOM(upb_inttable_insert2(&e->iton, num, v, ctx->alloc)); + CHK_OOM(upb_inttable_insert(&e->iton, num, v, ctx->arena)); } } - upb_inttable_compact2(&e->iton, ctx->alloc); + upb_inttable_compact(&e->iton, ctx->arena); } static void create_msgdef(symtab_addctx *ctx, const char *prefix, @@ -1794,9 +1776,8 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix, oneofs = google_protobuf_DescriptorProto_oneof_decl(msg_proto, &n_oneof); fields = google_protobuf_DescriptorProto_field(msg_proto, &n_field); - CHK_OOM(upb_inttable_init2(&m->itof, UPB_CTYPE_CONSTPTR, ctx->alloc)); - CHK_OOM(upb_strtable_init2(&m->ntof, UPB_CTYPE_CONSTPTR, n_oneof + n_field, - ctx->alloc)); + CHK_OOM(upb_inttable_init(&m->itof, ctx->arena)); + CHK_OOM(upb_strtable_init(&m->ntof, n_oneof + n_field, ctx->arena)); m->file = ctx->file; m->map_entry = false; @@ -1828,10 +1809,9 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix, create_fielddef(ctx, m->full_name, m, fields[i]); } - assign_msg_indices(ctx, m); finalize_oneofs(ctx, m); assign_msg_wellknowntype(m); - upb_inttable_compact2(&m->itof, ctx->alloc); + upb_inttable_compact(&m->itof, ctx->arena); /* This message is built. Now build nested messages and enums. */ @@ -1943,13 +1923,18 @@ static void build_filedef( const upb_strview* strs; size_t i, n; - count_types_in_file(file_proto, file); + file->symtab = ctx->symtab; + /* One pass to count and allocate. */ + file->msg_count = 0; + file->enum_count = 0; + file->ext_count = 0; + count_types_in_file(file_proto, file); file->msgs = symtab_alloc(ctx, sizeof(*file->msgs) * file->msg_count); file->enums = symtab_alloc(ctx, sizeof(*file->enums) * file->enum_count); file->exts = symtab_alloc(ctx, sizeof(*file->exts) * file->ext_count); - /* We increment these as defs are added. */ + /* In the second pass we increment these as defs are added. */ file->msg_count = 0; file->enum_count = 0; file->ext_count = 0; @@ -2060,61 +2045,61 @@ static void build_filedef( } static void remove_filedef(upb_symtab *s, upb_filedef *file) { - upb_alloc *alloc = upb_arena_alloc(s->arena); int i; for (i = 0; i < file->msg_count; i++) { const char *name = file->msgs[i].full_name; - upb_strtable_remove3(&s->syms, name, strlen(name), NULL, alloc); + upb_strtable_remove(&s->syms, name, strlen(name), NULL); } for (i = 0; i < file->enum_count; i++) { const char *name = file->enums[i].full_name; - upb_strtable_remove3(&s->syms, name, strlen(name), NULL, alloc); + upb_strtable_remove(&s->syms, name, strlen(name), NULL); } for (i = 0; i < file->ext_count; i++) { const char *name = file->exts[i].full_name; - upb_strtable_remove3(&s->syms, name, strlen(name), NULL, alloc); + upb_strtable_remove(&s->syms, name, strlen(name), NULL); } } static const upb_filedef *_upb_symtab_addfile( upb_symtab *s, const google_protobuf_FileDescriptorProto *file_proto, const upb_msglayout **layouts, upb_status *status) { - upb_arena *file_arena = upb_arena_new(); - upb_filedef *file; symtab_addctx ctx; + upb_strview name = google_protobuf_FileDescriptorProto_name(file_proto); - if (!file_arena) return NULL; - - file = upb_arena_malloc(file_arena, sizeof(*file)); - if (!file) goto done; + if (upb_strtable_lookup2(&s->files, name.data, name.size, NULL)) { + upb_status_seterrf(status, "duplicate file name (%.*s)", + UPB_STRVIEW_ARGS(name)); + return NULL; + } - ctx.file = file; ctx.symtab = s; - ctx.file_arena = file_arena; - ctx.alloc = upb_arena_alloc(file_arena); ctx.layouts = layouts; ctx.status = status; + ctx.file = NULL; + ctx.arena = upb_arena_new(); - file->msg_count = 0; - file->enum_count = 0; - file->ext_count = 0; - file->symtab = s; + if (!ctx.arena) { + upb_status_setoom(status); + return NULL; + } if (UPB_UNLIKELY(UPB_SETJMP(ctx.err))) { UPB_ASSERT(!upb_ok(status)); - remove_filedef(s, file); - file = NULL; + if (ctx.file) { + remove_filedef(s, ctx.file); + ctx.file = NULL; + } } else { - build_filedef(&ctx, file, file_proto); - upb_strtable_insert3(&s->files, file->name, strlen(file->name), - upb_value_constptr(file), ctx.alloc); + ctx.file = symtab_alloc(&ctx, sizeof(*ctx.file)); + build_filedef(&ctx, ctx.file, file_proto); + upb_strtable_insert(&s->files, name.data, name.size, + upb_value_constptr(ctx.file), ctx.arena); UPB_ASSERT(upb_ok(status)); - upb_arena_fuse(s->arena, file_arena); + upb_arena_fuse(s->arena, ctx.arena); } -done: - upb_arena_free(file_arena); - return file; + upb_arena_free(ctx.arena); + return ctx.file; } const upb_filedef *upb_symtab_addfile( @@ -2147,7 +2132,8 @@ bool _upb_symtab_loaddefinit(upb_symtab *s, const upb_def_init *init) { } file = google_protobuf_FileDescriptorProto_parse_ex( - init->descriptor.data, init->descriptor.size, arena, UPB_DECODE_ALIAS); + init->descriptor.data, init->descriptor.size, NULL, UPB_DECODE_ALIAS, + arena); s->bytes_loaded += init->descriptor.size; if (!file) { @@ -2175,4 +2161,8 @@ size_t _upb_symtab_bytesloaded(const upb_symtab *s) { return s->bytes_loaded; } +upb_arena *_upb_symtab_arena(const upb_symtab *s) { + return s->arena; +} + #undef CHK_OOM diff --git a/third_party/upb/upb/def.h b/third_party/upb/upb/def.h index 7206ec0d3ef..24dc8b37763 100644 --- a/third_party/upb/upb/def.h +++ b/third_party/upb/upb/def.h @@ -1,23 +1,51 @@ /* -** Defs are upb's internal representation of the constructs that can appear -** in a .proto file: -** -** - upb_msgdef: describes a "message" construct. -** - upb_fielddef: describes a message field. -** - upb_filedef: describes a .proto file and its defs. -** - upb_enumdef: describes an enum. -** - upb_oneofdef: describes a oneof. -** -** TODO: definitions of services. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Defs are upb's internal representation of the constructs that can appear + * in a .proto file: + * + * - upb_msgdef: describes a "message" construct. + * - upb_fielddef: describes a message field. + * - upb_filedef: describes a .proto file and its defs. + * - upb_enumdef: describes an enum. + * - upb_oneofdef: describes a oneof. + * + * TODO: definitions of services. + */ #ifndef UPB_DEF_H_ #define UPB_DEF_H_ #include "upb/upb.h" -#include "upb/table.int.h" +#include "upb/table_internal.h" #include "google/protobuf/descriptor.upb.h" +/* Must be last. */ #include "upb/port_def.inc" #ifdef __cplusplus @@ -108,9 +136,6 @@ const upb_msgdef *upb_fielddef_msgsubdef(const upb_fielddef *f); const upb_enumdef *upb_fielddef_enumsubdef(const upb_fielddef *f); const upb_msglayout_field *upb_fielddef_layout(const upb_fielddef *f); -/* Internal only. */ -uint32_t upb_fielddef_selectorbase(const upb_fielddef *f); - /* upb_oneofdef ***************************************************************/ typedef upb_inttable_iter upb_oneof_iter; @@ -195,10 +220,6 @@ UPB_INLINE const upb_fielddef *upb_msgdef_ntofz(const upb_msgdef *m, return upb_msgdef_ntof(m, name, strlen(name)); } -/* Internal-only. */ -size_t upb_msgdef_selectorcount(const upb_msgdef *m); -uint32_t upb_msgdef_submsgfieldcount(const upb_msgdef *m); - /* Lookup of either field or oneof by name. Returns whether either was found. * If the return is true, then the found def will be set, and the non-found * one set to NULL. */ @@ -295,6 +316,7 @@ const upb_filedef *upb_symtab_addfile( upb_symtab *s, const google_protobuf_FileDescriptorProto *file, upb_status *status); size_t _upb_symtab_bytesloaded(const upb_symtab *s); +upb_arena *_upb_symtab_arena(const upb_symtab *s); /* For generated code only: loads a generated descriptor. */ typedef struct upb_def_init { diff --git a/third_party/upb/upb/def.hpp b/third_party/upb/upb/def.hpp index e32da2a1ee9..a2538799180 100644 --- a/third_party/upb/upb/def.hpp +++ b/third_party/upb/upb/def.hpp @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef UPB_DEF_HPP_ #define UPB_DEF_HPP_ @@ -8,10 +32,13 @@ #include #include "upb/def.h" +#include "upb/reflection.h" #include "upb/upb.hpp" namespace upb { +typedef upb_msgval MessageValue; + class EnumDefPtr; class MessageDefPtr; class OneofDefPtr; @@ -106,6 +133,8 @@ class FieldDefPtr { float default_float() const { return upb_fielddef_defaultfloat(ptr_); } double default_double() const { return upb_fielddef_defaultdouble(ptr_); } + MessageValue default_value() const { return upb_fielddef_default(ptr_); } + // The resulting string is always NULL-terminated. If non-NULL, the length // will be stored in *len. const char* default_string(size_t* len) const { diff --git a/third_party/upb/upb/encode.c b/third_party/upb/upb/encode.c index f73ff09f8e7..6c5bfaf6ff6 100644 --- a/third_party/upb/upb/encode.c +++ b/third_party/upb/upb/encode.c @@ -1,3 +1,30 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + /* We encode backwards, to avoid pre-computing lengths (one-pass encode). */ #include "upb/encode.h" @@ -5,7 +32,7 @@ #include #include -#include "upb/msg.h" +#include "upb/msg_internal.h" #include "upb/upb.h" /* Must be last. */ @@ -156,7 +183,7 @@ static void encode_fixedarray(upb_encstate *e, const upb_array *arr, } } -static void encode_message(upb_encstate *e, const char *msg, +static void encode_message(upb_encstate *e, const upb_msg *msg, const upb_msglayout *m, size_t *size); static void encode_scalar(upb_encstate *e, const void *_field_mem, @@ -248,10 +275,10 @@ static void encode_scalar(upb_encstate *e, const void *_field_mem, encode_tag(e, f->number, wire_type); } -static void encode_array(upb_encstate *e, const char *field_mem, +static void encode_array(upb_encstate *e, const upb_msg *msg, const upb_msglayout *m, const upb_msglayout_field *f) { - const upb_array *arr = *(const upb_array**)field_mem; - bool packed = f->label == _UPB_LABEL_PACKED; + const upb_array *arr = *UPB_PTR_AT(msg, f->offset, upb_array*); + bool packed = f->mode & _UPB_MODE_IS_PACKED; size_t pre_len = e->limit - e->ptr; if (arr == NULL || arr->len == 0) { @@ -367,9 +394,9 @@ static void encode_mapentry(upb_encstate *e, uint32_t number, encode_tag(e, number, UPB_WIRE_TYPE_DELIMITED); } -static void encode_map(upb_encstate *e, const char *field_mem, +static void encode_map(upb_encstate *e, const upb_msg *msg, const upb_msglayout *m, const upb_msglayout_field *f) { - const upb_map *map = *(const upb_map**)field_mem; + const upb_map *map = *UPB_PTR_AT(msg, f->offset, const upb_map*); const upb_msglayout *layout = m->submsgs[f->submsg_index]; UPB_ASSERT(layout->field_count == 2); @@ -415,7 +442,7 @@ static void encode_scalarfield(upb_encstate *e, const char *msg, encode_scalar(e, msg + f->offset, m, f, skip_empty); } -static void encode_message(upb_encstate *e, const char *msg, +static void encode_message(upb_encstate *e, const upb_msg *msg, const upb_msglayout *m, size_t *size) { size_t pre_len = e->limit - e->ptr; const upb_msglayout_field *f = &m->fields[m->field_count]; @@ -432,19 +459,25 @@ static void encode_message(upb_encstate *e, const char *msg, while (f != first) { f--; - if (_upb_isrepeated(f)) { - encode_array(e, msg + f->offset, m, f); - } else if (f->label == _UPB_LABEL_MAP) { - encode_map(e, msg + f->offset, m, f); - } else { - encode_scalarfield(e, msg, m, f); + switch (_upb_getmode(f)) { + case _UPB_MODE_ARRAY: + encode_array(e, msg, m, f); + break; + case _UPB_MODE_MAP: + encode_map(e, msg, m, f); + break; + case _UPB_MODE_SCALAR: + encode_scalarfield(e, msg, m, f); + break; + default: + UPB_UNREACHABLE(); } } *size = (e->limit - e->ptr) - pre_len; } -char *upb_encode_ex(const void *msg, const upb_msglayout *m, int options, +char *upb_encode_ex(const void *msg, const upb_msglayout *l, int options, upb_arena *arena, size_t *size) { upb_encstate e; unsigned depth = (unsigned)options >> 16; @@ -462,7 +495,7 @@ char *upb_encode_ex(const void *msg, const upb_msglayout *m, int options, *size = 0; ret = NULL; } else { - encode_message(&e, msg, m, size); + encode_message(&e, msg, l, size); *size = e.limit - e.ptr; if (*size == 0) { static char ch; diff --git a/third_party/upb/upb/encode.h b/third_party/upb/upb/encode.h index d3c1dc96063..3ea2003d2d3 100644 --- a/third_party/upb/upb/encode.h +++ b/third_party/upb/upb/encode.h @@ -1,6 +1,33 @@ /* -** upb_encode: parsing into a upb_msg using a upb_msglayout. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * upb_encode: parsing into a upb_msg using a upb_msglayout. + */ #ifndef UPB_ENCODE_H_ #define UPB_ENCODE_H_ diff --git a/third_party/upb/upb/handlers-inl.h b/third_party/upb/upb/handlers-inl.h deleted file mode 100644 index 8f8634bfaa0..00000000000 --- a/third_party/upb/upb/handlers-inl.h +++ /dev/null @@ -1,923 +0,0 @@ -/* -** Inline definitions for handlers.h, which are particularly long and a bit -** tricky. -*/ - -#ifndef UPB_HANDLERS_INL_H_ -#define UPB_HANDLERS_INL_H_ - -#include -#include -#include "upb/handlers.h" - -#include "upb/port_def.inc" - -#ifdef __cplusplus - -/* Type detection and typedefs for integer types. - * For platforms where there are multiple 32-bit or 64-bit types, we need to be - * able to enumerate them so we can properly create overloads for all variants. - * - * If any platform existed where there were three integer types with the same - * size, this would have to become more complicated. For example, short, int, - * and long could all be 32-bits. Even more diabolically, short, int, long, - * and long long could all be 64 bits and still be standard-compliant. - * However, few platforms are this strange, and it's unlikely that upb will be - * used on the strangest ones. */ - -/* Can't count on stdint.h limits like INT32_MAX, because in C++ these are - * only defined when __STDC_LIMIT_MACROS are defined before the *first* include - * of stdint.h. We can't guarantee that someone else didn't include these first - * without defining __STDC_LIMIT_MACROS. */ -#define UPB_INT32_MAX 0x7fffffffLL -#define UPB_INT32_MIN (-UPB_INT32_MAX - 1) -#define UPB_INT64_MAX 0x7fffffffffffffffLL -#define UPB_INT64_MIN (-UPB_INT64_MAX - 1) - -#if INT_MAX == UPB_INT32_MAX && INT_MIN == UPB_INT32_MIN -#define UPB_INT_IS_32BITS 1 -#endif - -#if LONG_MAX == UPB_INT32_MAX && LONG_MIN == UPB_INT32_MIN -#define UPB_LONG_IS_32BITS 1 -#endif - -#if LONG_MAX == UPB_INT64_MAX && LONG_MIN == UPB_INT64_MIN -#define UPB_LONG_IS_64BITS 1 -#endif - -#if LLONG_MAX == UPB_INT64_MAX && LLONG_MIN == UPB_INT64_MIN -#define UPB_LLONG_IS_64BITS 1 -#endif - -/* We use macros instead of typedefs so we can undefine them later and avoid - * leaking them outside this header file. */ -#if UPB_INT_IS_32BITS -#define UPB_INT32_T int -#define UPB_UINT32_T unsigned int - -#if UPB_LONG_IS_32BITS -#define UPB_TWO_32BIT_TYPES 1 -#define UPB_INT32ALT_T long -#define UPB_UINT32ALT_T unsigned long -#endif /* UPB_LONG_IS_32BITS */ - -#elif UPB_LONG_IS_32BITS /* && !UPB_INT_IS_32BITS */ -#define UPB_INT32_T long -#define UPB_UINT32_T unsigned long -#endif /* UPB_INT_IS_32BITS */ - - -#if UPB_LONG_IS_64BITS -#define UPB_INT64_T long -#define UPB_UINT64_T unsigned long - -#if UPB_LLONG_IS_64BITS -#define UPB_TWO_64BIT_TYPES 1 -#define UPB_INT64ALT_T long long -#define UPB_UINT64ALT_T unsigned long long -#endif /* UPB_LLONG_IS_64BITS */ - -#elif UPB_LLONG_IS_64BITS /* && !UPB_LONG_IS_64BITS */ -#define UPB_INT64_T long long -#define UPB_UINT64_T unsigned long long -#endif /* UPB_LONG_IS_64BITS */ - -#undef UPB_INT32_MAX -#undef UPB_INT32_MIN -#undef UPB_INT64_MAX -#undef UPB_INT64_MIN -#undef UPB_INT_IS_32BITS -#undef UPB_LONG_IS_32BITS -#undef UPB_LONG_IS_64BITS -#undef UPB_LLONG_IS_64BITS - - -namespace upb { - -typedef void CleanupFunc(void *ptr); - -/* Template to remove "const" from "const T*" and just return "T*". - * - * We define a nonsense default because otherwise it will fail to instantiate as - * a function parameter type even in cases where we don't expect any caller to - * actually match the overload. */ -class CouldntRemoveConst {}; -template struct remove_constptr { typedef CouldntRemoveConst type; }; -template struct remove_constptr { typedef T *type; }; - -/* Template that we use below to remove a template specialization from - * consideration if it matches a specific type. */ -template struct disable_if_same { typedef void Type; }; -template struct disable_if_same {}; - -template void DeletePointer(void *p) { delete static_cast(p); } - -template -struct FirstUnlessVoidOrBool { - typedef T1 value; -}; - -template -struct FirstUnlessVoidOrBool { - typedef T2 value; -}; - -template -struct FirstUnlessVoidOrBool { - typedef T2 value; -}; - -template -struct is_same { - static bool value; -}; - -template -struct is_same { - static bool value; -}; - -template -bool is_same::value = false; - -template -bool is_same::value = true; - -/* FuncInfo *******************************************************************/ - -/* Info about the user's original, pre-wrapped function. */ -template -struct FuncInfo { - /* The type of the closure that the function takes (its first param). */ - typedef C Closure; - - /* The return type. */ - typedef R Return; -}; - -/* Func ***********************************************************************/ - -/* Func1, Func2, Func3: Template classes representing a function and its - * signature. - * - * Since the function is a template parameter, calling the function can be - * inlined at compile-time and does not require a function pointer at runtime. - * These functions are not bound to a handler data so have no data or cleanup - * handler. */ -struct UnboundFunc { - CleanupFunc *GetCleanup() { return nullptr; } - void *GetData() { return nullptr; } -}; - -template -struct Func1 : public UnboundFunc { - typedef R Return; - typedef I FuncInfo; - static R Call(P1 p1) { return F(p1); } -}; - -template -struct Func2 : public UnboundFunc { - typedef R Return; - typedef I FuncInfo; - static R Call(P1 p1, P2 p2) { return F(p1, p2); } -}; - -template -struct Func3 : public UnboundFunc { - typedef R Return; - typedef I FuncInfo; - static R Call(P1 p1, P2 p2, P3 p3) { return F(p1, p2, p3); } -}; - -template -struct Func4 : public UnboundFunc { - typedef R Return; - typedef I FuncInfo; - static R Call(P1 p1, P2 p2, P3 p3, P4 p4) { return F(p1, p2, p3, p4); } -}; - -template -struct Func5 : public UnboundFunc { - typedef R Return; - typedef I FuncInfo; - static R Call(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) { - return F(p1, p2, p3, p4, p5); - } -}; - -/* BoundFunc ******************************************************************/ - -/* BoundFunc2, BoundFunc3: Like Func2/Func3 except also contains a value that - * shall be bound to the function's second parameter. - * - * Note that the second parameter is a const pointer, but our stored bound value - * is non-const so we can free it when the handlers are destroyed. */ -template -struct BoundFunc { - typedef typename remove_constptr::type MutableP2; - explicit BoundFunc(MutableP2 data_) : data(data_) {} - CleanupFunc *GetCleanup() { return &DeletePointer; } - MutableP2 GetData() { return data; } - MutableP2 data; -}; - -template -struct BoundFunc2 : public BoundFunc { - typedef BoundFunc Base; - typedef I FuncInfo; - explicit BoundFunc2(typename Base::MutableP2 arg) : Base(arg) {} -}; - -template -struct BoundFunc3 : public BoundFunc { - typedef BoundFunc Base; - typedef I FuncInfo; - explicit BoundFunc3(typename Base::MutableP2 arg) : Base(arg) {} -}; - -template -struct BoundFunc4 : public BoundFunc { - typedef BoundFunc Base; - typedef I FuncInfo; - explicit BoundFunc4(typename Base::MutableP2 arg) : Base(arg) {} -}; - -template -struct BoundFunc5 : public BoundFunc { - typedef BoundFunc Base; - typedef I FuncInfo; - explicit BoundFunc5(typename Base::MutableP2 arg) : Base(arg) {} -}; - -/* FuncSig ********************************************************************/ - -/* FuncSig1, FuncSig2, FuncSig3: template classes reflecting a function - * *signature*, but without a specific function attached. - * - * These classes contain member functions that can be invoked with a - * specific function to return a Func/BoundFunc class. */ -template -struct FuncSig1 { - template - Func1 > GetFunc() { - return Func1 >(); - } -}; - -template -struct FuncSig2 { - template - Func2 > GetFunc() { - return Func2 >(); - } - - template - BoundFunc2 > GetFunc( - typename remove_constptr::type param2) { - return BoundFunc2 >(param2); - } -}; - -template -struct FuncSig3 { - template - Func3 > GetFunc() { - return Func3 >(); - } - - template - BoundFunc3 > GetFunc( - typename remove_constptr::type param2) { - return BoundFunc3 >(param2); - } -}; - -template -struct FuncSig4 { - template - Func4 > GetFunc() { - return Func4 >(); - } - - template - BoundFunc4 > GetFunc( - typename remove_constptr::type param2) { - return BoundFunc4 >(param2); - } -}; - -template -struct FuncSig5 { - template - Func5 > GetFunc() { - return Func5 >(); - } - - template - BoundFunc5 > GetFunc( - typename remove_constptr::type param2) { - return BoundFunc5 >(param2); - } -}; - -/* Overloaded template function that can construct the appropriate FuncSig* - * class given a function pointer by deducing the template parameters. */ -template -inline FuncSig1 MatchFunc(R (*f)(P1)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return FuncSig1(); -} - -template -inline FuncSig2 MatchFunc(R (*f)(P1, P2)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return FuncSig2(); -} - -template -inline FuncSig3 MatchFunc(R (*f)(P1, P2, P3)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return FuncSig3(); -} - -template -inline FuncSig4 MatchFunc(R (*f)(P1, P2, P3, P4)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return FuncSig4(); -} - -template -inline FuncSig5 MatchFunc(R (*f)(P1, P2, P3, P4, P5)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return FuncSig5(); -} - -/* MethodSig ******************************************************************/ - -/* CallMethod*: a function template that calls a given method. */ -template -R CallMethod0(C *obj) { - return ((*obj).*F)(); -} - -template -R CallMethod1(C *obj, P1 arg1) { - return ((*obj).*F)(arg1); -} - -template -R CallMethod2(C *obj, P1 arg1, P2 arg2) { - return ((*obj).*F)(arg1, arg2); -} - -template -R CallMethod3(C *obj, P1 arg1, P2 arg2, P3 arg3) { - return ((*obj).*F)(arg1, arg2, arg3); -} - -template -R CallMethod4(C *obj, P1 arg1, P2 arg2, P3 arg3, P4 arg4) { - return ((*obj).*F)(arg1, arg2, arg3, arg4); -} - -/* MethodSig: like FuncSig, but for member functions. - * - * GetFunc() returns a normal FuncN object, so after calling GetFunc() no - * more logic is required to special-case methods. */ -template -struct MethodSig0 { - template - Func1, FuncInfo > GetFunc() { - return Func1, FuncInfo >(); - } -}; - -template -struct MethodSig1 { - template - Func2, FuncInfo > GetFunc() { - return Func2, FuncInfo >(); - } - - template - BoundFunc2, FuncInfo > GetFunc( - typename remove_constptr::type param1) { - return BoundFunc2, FuncInfo >( - param1); - } -}; - -template -struct MethodSig2 { - template - Func3, FuncInfo > - GetFunc() { - return Func3, - FuncInfo >(); - } - - template - BoundFunc3, FuncInfo > - GetFunc(typename remove_constptr::type param1) { - return BoundFunc3, - FuncInfo >(param1); - } -}; - -template -struct MethodSig3 { - template - Func4, FuncInfo > - GetFunc() { - return Func4, - FuncInfo >(); - } - - template - BoundFunc4, - FuncInfo > - GetFunc(typename remove_constptr::type param1) { - return BoundFunc4, - FuncInfo >(param1); - } -}; - -template -struct MethodSig4 { - template - Func5, - FuncInfo > - GetFunc() { - return Func5, - FuncInfo >(); - } - - template - BoundFunc5, - FuncInfo > - GetFunc(typename remove_constptr::type param1) { - return BoundFunc5, FuncInfo >( - param1); - } -}; - -template -inline MethodSig0 MatchFunc(R (C::*f)()) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return MethodSig0(); -} - -template -inline MethodSig1 MatchFunc(R (C::*f)(P1)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return MethodSig1(); -} - -template -inline MethodSig2 MatchFunc(R (C::*f)(P1, P2)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return MethodSig2(); -} - -template -inline MethodSig3 MatchFunc(R (C::*f)(P1, P2, P3)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return MethodSig3(); -} - -template -inline MethodSig4 MatchFunc(R (C::*f)(P1, P2, P3, P4)) { - UPB_UNUSED(f); /* Only used for template parameter deduction. */ - return MethodSig4(); -} - -/* MaybeWrapReturn ************************************************************/ - -/* Template class that attempts to wrap the return value of the function so it - * matches the expected type. There are two main adjustments it may make: - * - * 1. If the function returns void, make it return the expected type and with - * a value that always indicates success. - * 2. If the function returns bool, make it return the expected type with a - * value that indicates success or failure. - * - * The "expected type" for return is: - * 1. void* for start handlers. If the closure parameter has a different type - * we will cast it to void* for the return in the success case. - * 2. size_t for string buffer handlers. - * 3. bool for everything else. */ - -/* Template parameters are FuncN type and desired return type. */ -template -struct MaybeWrapReturn; - -/* If the return type matches, return the given function unwrapped. */ -template -struct MaybeWrapReturn { - typedef F Func; -}; - -/* Function wrapper that munges the return value from void to (bool)true. */ -template -bool ReturnTrue2(P1 p1, P2 p2) { - F(p1, p2); - return true; -} - -template -bool ReturnTrue3(P1 p1, P2 p2, P3 p3) { - F(p1, p2, p3); - return true; -} - -/* Function wrapper that munges the return value from void to (void*)arg1 */ -template -void *ReturnClosure2(P1 p1, P2 p2) { - F(p1, p2); - return p1; -} - -template -void *ReturnClosure3(P1 p1, P2 p2, P3 p3) { - F(p1, p2, p3); - return p1; -} - -/* Function wrapper that munges the return value from R to void*. */ -template -void *CastReturnToVoidPtr2(P1 p1, P2 p2) { - return F(p1, p2); -} - -template -void *CastReturnToVoidPtr3(P1 p1, P2 p2, P3 p3) { - return F(p1, p2, p3); -} - -/* Function wrapper that munges the return value from bool to void*. */ -template -void *ReturnClosureOrBreak2(P1 p1, P2 p2) { - return F(p1, p2) ? p1 : UPB_BREAK; -} - -template -void *ReturnClosureOrBreak3(P1 p1, P2 p2, P3 p3) { - return F(p1, p2, p3) ? p1 : UPB_BREAK; -} - -/* For the string callback, which takes five params, returns the size param. */ -template -size_t ReturnStringLen(P1 p1, P2 p2, const char *p3, size_t p4, - const upb_bufhandle *p5) { - F(p1, p2, p3, p4, p5); - return p4; -} - -/* For the string callback, which takes five params, returns the size param or - * zero. */ -template -size_t ReturnNOr0(P1 p1, P2 p2, const char *p3, size_t p4, - const upb_bufhandle *p5) { - return F(p1, p2, p3, p4, p5) ? p4 : 0; -} - -/* If we have a function returning void but want a function returning bool, wrap - * it in a function that returns true. */ -template -struct MaybeWrapReturn, bool> { - typedef Func2, I> Func; -}; - -template -struct MaybeWrapReturn, bool> { - typedef Func3, I> Func; -}; - -/* If our function returns void but we want one returning void*, wrap it in a - * function that returns the first argument. */ -template -struct MaybeWrapReturn, void *> { - typedef Func2, I> Func; -}; - -template -struct MaybeWrapReturn, void *> { - typedef Func3, I> Func; -}; - -/* If our function returns R* but we want one returning void*, wrap it in a - * function that casts to void*. */ -template -struct MaybeWrapReturn, void *, - typename disable_if_same::Type> { - typedef Func2, I> Func; -}; - -template -struct MaybeWrapReturn, void *, - typename disable_if_same::Type> { - typedef Func3, I> - Func; -}; - -/* If our function returns bool but we want one returning void*, wrap it in a - * function that returns either the first param or UPB_BREAK. */ -template -struct MaybeWrapReturn, void *> { - typedef Func2, I> Func; -}; - -template -struct MaybeWrapReturn, void *> { - typedef Func3, I> - Func; -}; - -/* If our function returns void but we want one returning size_t, wrap it in a - * function that returns the size argument. */ -template -struct MaybeWrapReturn< - Func5, - size_t> { - typedef Func5, I> Func; -}; - -/* If our function returns bool but we want one returning size_t, wrap it in a - * function that returns either 0 or the buf size. */ -template -struct MaybeWrapReturn< - Func5, - size_t> { - typedef Func5, I> Func; -}; - -/* ConvertParams **************************************************************/ - -/* Template class that converts the function parameters if necessary, and - * ignores the HandlerData parameter if appropriate. - * - * Template parameter is the are FuncN function type. */ -template -struct ConvertParams; - -/* Function that discards the handler data parameter. */ -template -R IgnoreHandlerData2(void *p1, const void *hd) { - UPB_UNUSED(hd); - return F(static_cast(p1)); -} - -template -R IgnoreHandlerData3(void *p1, const void *hd, P2Wrapper p2) { - UPB_UNUSED(hd); - return F(static_cast(p1), p2); -} - -template -R IgnoreHandlerData4(void *p1, const void *hd, P2 p2, P3 p3) { - UPB_UNUSED(hd); - return F(static_cast(p1), p2, p3); -} - -template -R IgnoreHandlerData5(void *p1, const void *hd, P2 p2, P3 p3, P4 p4) { - UPB_UNUSED(hd); - return F(static_cast(p1), p2, p3, p4); -} - -template -R IgnoreHandlerDataIgnoreHandle(void *p1, const void *hd, const char *p2, - size_t p3, const upb_bufhandle *handle) { - UPB_UNUSED(hd); - UPB_UNUSED(handle); - return F(static_cast(p1), p2, p3); -} - -/* Function that casts the handler data parameter. */ -template -R CastHandlerData2(void *c, const void *hd) { - return F(static_cast(c), static_cast(hd)); -} - -template -R CastHandlerData3(void *c, const void *hd, P3Wrapper p3) { - return F(static_cast(c), static_cast(hd), p3); -} - -template -R CastHandlerData5(void *c, const void *hd, P3 p3, P4 p4, P5 p5) { - return F(static_cast(c), static_cast(hd), p3, p4, p5); -} - -template -R CastHandlerDataIgnoreHandle(void *c, const void *hd, const char *p3, - size_t p4, const upb_bufhandle *handle) { - UPB_UNUSED(handle); - return F(static_cast(c), static_cast(hd), p3, p4); -} - -/* For unbound functions, ignore the handler data. */ -template -struct ConvertParams, T> { - typedef Func2, I> Func; -}; - -template -struct ConvertParams, - R2 (*)(P1_2, P2_2, P3_2)> { - typedef Func3, I> Func; -}; - -/* For StringBuffer only; this ignores both the handler data and the - * upb_bufhandle. */ -template -struct ConvertParams, T> { - typedef Func5, - I> Func; -}; - -template -struct ConvertParams, T> { - typedef Func5, I> Func; -}; - -/* For bound functions, cast the handler data. */ -template -struct ConvertParams, T> { - typedef Func2, I> - Func; -}; - -template -struct ConvertParams, - R2 (*)(P1_2, P2_2, P3_2)> { - typedef Func3, I> Func; -}; - -/* For StringBuffer only; this ignores the upb_bufhandle. */ -template -struct ConvertParams, T> { - typedef Func5, I> - Func; -}; - -template -struct ConvertParams, T> { - typedef Func5, I> Func; -}; - -/* utype/ltype are upper/lower-case, ctype is canonical C type, vtype is - * variant C type. */ -#define TYPE_METHODS(utype, ltype, ctype, vtype) \ - template <> \ - struct CanonicalType { \ - typedef ctype Type; \ - }; \ - template <> \ - inline bool HandlersPtr::SetValueHandler( \ - FieldDefPtr f, const HandlersPtr::utype##Handler &handler) { \ - handler.AddCleanup(ptr()); \ - return upb_handlers_set##ltype(ptr(), f.ptr(), handler.handler(), \ - &handler.attr()); \ - } - -TYPE_METHODS(Double, double, double, double) -TYPE_METHODS(Float, float, float, float) -TYPE_METHODS(UInt64, uint64, uint64_t, UPB_UINT64_T) -TYPE_METHODS(UInt32, uint32, uint32_t, UPB_UINT32_T) -TYPE_METHODS(Int64, int64, int64_t, UPB_INT64_T) -TYPE_METHODS(Int32, int32, int32_t, UPB_INT32_T) -TYPE_METHODS(Bool, bool, bool, bool) - -#ifdef UPB_TWO_32BIT_TYPES -TYPE_METHODS(Int32, int32, int32_t, UPB_INT32ALT_T) -TYPE_METHODS(UInt32, uint32, uint32_t, UPB_UINT32ALT_T) -#endif - -#ifdef UPB_TWO_64BIT_TYPES -TYPE_METHODS(Int64, int64, int64_t, UPB_INT64ALT_T) -TYPE_METHODS(UInt64, uint64, uint64_t, UPB_UINT64ALT_T) -#endif -#undef TYPE_METHODS - -template <> struct CanonicalType { - typedef Status* Type; -}; - -template struct ReturnOf; - -template -struct ReturnOf { - typedef R Return; -}; - -template -struct ReturnOf { - typedef R Return; -}; - -template -struct ReturnOf { - typedef R Return; -}; - -template -struct ReturnOf { - typedef R Return; -}; - - -template -template -inline Handler::Handler(F func) - : registered_(false), - cleanup_data_(func.GetData()), - cleanup_func_(func.GetCleanup()) { - attr_.handler_data = func.GetData(); - typedef typename ReturnOf::Return Return; - typedef typename ConvertParams::Func ConvertedParamsFunc; - typedef typename MaybeWrapReturn::Func - ReturnWrappedFunc; - handler_ = ReturnWrappedFunc().Call; - - /* Set attributes based on what templates can statically tell us about the - * user's function. */ - - /* If the original function returns void, then we know that we wrapped it to - * always return ok. */ - bool always_ok = is_same::value; - attr_.alwaysok = always_ok; - - /* Closure parameter and return type. */ - attr_.closure_type = UniquePtrForType(); - - /* We use the closure type (from the first parameter) if the return type is - * void or bool, since these are the two cases we wrap to return the closure's - * type anyway. - * - * This is all nonsense for non START* handlers, but it doesn't matter because - * in that case the value will be ignored. */ - typedef typename FirstUnlessVoidOrBool::value - EffectiveReturn; - attr_.return_closure_type = UniquePtrForType(); -} - -template -inline void Handler::AddCleanup(upb_handlers* h) const { - UPB_ASSERT(!registered_); - registered_ = true; - if (cleanup_func_) { - bool ok = upb_handlers_addcleanup(h, cleanup_data_, cleanup_func_); - UPB_ASSERT(ok); - } -} - -} /* namespace upb */ - -#endif /* __cplusplus */ - - -#undef UPB_TWO_32BIT_TYPES -#undef UPB_TWO_64BIT_TYPES -#undef UPB_INT32_T -#undef UPB_UINT32_T -#undef UPB_INT32ALT_T -#undef UPB_UINT32ALT_T -#undef UPB_INT64_T -#undef UPB_UINT64_T -#undef UPB_INT64ALT_T -#undef UPB_UINT64ALT_T - -#include "upb/port_undef.inc" - -#endif /* UPB_HANDLERS_INL_H_ */ diff --git a/third_party/upb/upb/handlers.c b/third_party/upb/upb/handlers.c deleted file mode 100644 index 4168a4fb09b..00000000000 --- a/third_party/upb/upb/handlers.c +++ /dev/null @@ -1,545 +0,0 @@ -/* -** TODO(haberman): it's unclear whether a lot of the consistency checks should -** UPB_ASSERT() or return false. -*/ - -#include "upb/handlers.h" - -#include - -#include "upb/sink.h" - -#include "upb/port_def.inc" - -struct upb_handlers { - upb_handlercache *cache; - const upb_msgdef *msg; - const upb_handlers **sub; - const void *top_closure_type; - upb_handlers_tabent table[1]; /* Dynamically-sized field handler array. */ -}; - -static void *upb_calloc(upb_arena *arena, size_t size) { - void *mem = upb_malloc(upb_arena_alloc(arena), size); - if (mem) { - memset(mem, 0, size); - } - return mem; -} - -/* Defined for the sole purpose of having a unique pointer value for - * UPB_NO_CLOSURE. */ -char _upb_noclosure; - -/* Given a selector for a STARTSUBMSG handler, resolves to a pointer to the - * subhandlers for this submessage field. */ -#define SUBH(h, selector) (h->sub[selector]) - -/* The selector for a submessage field is the field index. */ -#define SUBH_F(h, f) SUBH(h, upb_fielddef_index(f)) - -static int32_t trygetsel(upb_handlers *h, const upb_fielddef *f, - upb_handlertype_t type) { - upb_selector_t sel; - bool ok; - - ok = upb_handlers_getselector(f, type, &sel); - - UPB_ASSERT(upb_handlers_msgdef(h) == upb_fielddef_containingtype(f)); - UPB_ASSERT(ok); - - return sel; -} - -static upb_selector_t handlers_getsel(upb_handlers *h, const upb_fielddef *f, - upb_handlertype_t type) { - int32_t sel = trygetsel(h, f, type); - UPB_ASSERT(sel >= 0); - return sel; -} - -static const void **returntype(upb_handlers *h, const upb_fielddef *f, - upb_handlertype_t type) { - return &h->table[handlers_getsel(h, f, type)].attr.return_closure_type; -} - -static bool doset(upb_handlers *h, int32_t sel, const upb_fielddef *f, - upb_handlertype_t type, upb_func *func, - const upb_handlerattr *attr) { - upb_handlerattr set_attr = UPB_HANDLERATTR_INIT; - const void *closure_type; - const void **context_closure_type; - - UPB_ASSERT(!h->table[sel].func); - - if (attr) { - set_attr = *attr; - } - - /* Check that the given closure type matches the closure type that has been - * established for this context (if any). */ - closure_type = set_attr.closure_type; - - if (type == UPB_HANDLER_STRING) { - context_closure_type = returntype(h, f, UPB_HANDLER_STARTSTR); - } else if (f && upb_fielddef_isseq(f) && - type != UPB_HANDLER_STARTSEQ && - type != UPB_HANDLER_ENDSEQ) { - context_closure_type = returntype(h, f, UPB_HANDLER_STARTSEQ); - } else { - context_closure_type = &h->top_closure_type; - } - - if (closure_type && *context_closure_type && - closure_type != *context_closure_type) { - return false; - } - - if (closure_type) - *context_closure_type = closure_type; - - /* If this is a STARTSEQ or STARTSTR handler, check that the returned pointer - * matches any pre-existing expectations about what type is expected. */ - if (type == UPB_HANDLER_STARTSEQ || type == UPB_HANDLER_STARTSTR) { - const void *return_type = set_attr.return_closure_type; - const void *table_return_type = h->table[sel].attr.return_closure_type; - if (return_type && table_return_type && return_type != table_return_type) { - return false; - } - - if (table_return_type && !return_type) { - set_attr.return_closure_type = table_return_type; - } - } - - h->table[sel].func = (upb_func*)func; - h->table[sel].attr = set_attr; - return true; -} - -/* Returns the effective closure type for this handler (which will propagate - * from outer frames if this frame has no START* handler). Not implemented for - * UPB_HANDLER_STRING at the moment since this is not needed. Returns NULL is - * the effective closure type is unspecified (either no handler was registered - * to specify it or the handler that was registered did not specify the closure - * type). */ -const void *effective_closure_type(upb_handlers *h, const upb_fielddef *f, - upb_handlertype_t type) { - const void *ret; - upb_selector_t sel; - - UPB_ASSERT(type != UPB_HANDLER_STRING); - ret = h->top_closure_type; - - if (upb_fielddef_isseq(f) && - type != UPB_HANDLER_STARTSEQ && - type != UPB_HANDLER_ENDSEQ && - h->table[sel = handlers_getsel(h, f, UPB_HANDLER_STARTSEQ)].func) { - ret = h->table[sel].attr.return_closure_type; - } - - if (type == UPB_HANDLER_STRING && - h->table[sel = handlers_getsel(h, f, UPB_HANDLER_STARTSTR)].func) { - ret = h->table[sel].attr.return_closure_type; - } - - /* The effective type of the submessage; not used yet. - * if (type == SUBMESSAGE && - * h->table[sel = handlers_getsel(h, f, UPB_HANDLER_STARTSUBMSG)].func) { - * ret = h->table[sel].attr.return_closure_type; - * } */ - - return ret; -} - -static upb_handlers *upb_handlers_new(const upb_msgdef *md, - upb_handlercache *cache, - upb_arena *arena) { - int extra; - upb_handlers *h; - - extra = - (int)(sizeof(upb_handlers_tabent) * (upb_msgdef_selectorcount(md) - 1)); - h = upb_calloc(arena, sizeof(*h) + extra); - if (!h) return NULL; - - h->cache = cache; - h->msg = md; - - if (upb_msgdef_submsgfieldcount(md) > 0) { - size_t bytes = upb_msgdef_submsgfieldcount(md) * sizeof(*h->sub); - h->sub = upb_calloc(arena, bytes); - if (!h->sub) return NULL; - } else { - h->sub = 0; - } - - /* calloc() above initialized all handlers to NULL. */ - return h; -} - -/* Public interface ***********************************************************/ - -#define SETTER(name, handlerctype, handlertype) \ - bool upb_handlers_set##name(upb_handlers *h, const upb_fielddef *f, \ - handlerctype func, \ - const upb_handlerattr *attr) { \ - int32_t sel = trygetsel(h, f, handlertype); \ - return doset(h, sel, f, handlertype, (upb_func *)func, attr); \ - } - -SETTER(int32, upb_int32_handlerfunc*, UPB_HANDLER_INT32) -SETTER(int64, upb_int64_handlerfunc*, UPB_HANDLER_INT64) -SETTER(uint32, upb_uint32_handlerfunc*, UPB_HANDLER_UINT32) -SETTER(uint64, upb_uint64_handlerfunc*, UPB_HANDLER_UINT64) -SETTER(float, upb_float_handlerfunc*, UPB_HANDLER_FLOAT) -SETTER(double, upb_double_handlerfunc*, UPB_HANDLER_DOUBLE) -SETTER(bool, upb_bool_handlerfunc*, UPB_HANDLER_BOOL) -SETTER(startstr, upb_startstr_handlerfunc*, UPB_HANDLER_STARTSTR) -SETTER(string, upb_string_handlerfunc*, UPB_HANDLER_STRING) -SETTER(endstr, upb_endfield_handlerfunc*, UPB_HANDLER_ENDSTR) -SETTER(startseq, upb_startfield_handlerfunc*, UPB_HANDLER_STARTSEQ) -SETTER(startsubmsg, upb_startfield_handlerfunc*, UPB_HANDLER_STARTSUBMSG) -SETTER(endsubmsg, upb_endfield_handlerfunc*, UPB_HANDLER_ENDSUBMSG) -SETTER(endseq, upb_endfield_handlerfunc*, UPB_HANDLER_ENDSEQ) - -#undef SETTER - -bool upb_handlers_setunknown(upb_handlers *h, upb_unknown_handlerfunc *func, - const upb_handlerattr *attr) { - return doset(h, UPB_UNKNOWN_SELECTOR, NULL, UPB_HANDLER_INT32, - (upb_func *)func, attr); -} - -bool upb_handlers_setstartmsg(upb_handlers *h, upb_startmsg_handlerfunc *func, - const upb_handlerattr *attr) { - return doset(h, UPB_STARTMSG_SELECTOR, NULL, UPB_HANDLER_INT32, - (upb_func *)func, attr); -} - -bool upb_handlers_setendmsg(upb_handlers *h, upb_endmsg_handlerfunc *func, - const upb_handlerattr *attr) { - return doset(h, UPB_ENDMSG_SELECTOR, NULL, UPB_HANDLER_INT32, - (upb_func *)func, attr); -} - -bool upb_handlers_setsubhandlers(upb_handlers *h, const upb_fielddef *f, - const upb_handlers *sub) { - UPB_ASSERT(sub); - UPB_ASSERT(upb_fielddef_issubmsg(f)); - if (SUBH_F(h, f)) return false; /* Can't reset. */ - if (upb_handlers_msgdef(sub) != upb_fielddef_msgsubdef(f)) { - return false; - } - SUBH_F(h, f) = sub; - return true; -} - -const upb_handlers *upb_handlers_getsubhandlers(const upb_handlers *h, - const upb_fielddef *f) { - UPB_ASSERT(upb_fielddef_issubmsg(f)); - return SUBH_F(h, f); -} - -upb_func *upb_handlers_gethandler(const upb_handlers *h, upb_selector_t s, - const void **handler_data) { - upb_func *ret = (upb_func *)h->table[s].func; - if (ret && handler_data) { - *handler_data = h->table[s].attr.handler_data; - } - return ret; -} - -bool upb_handlers_getattr(const upb_handlers *h, upb_selector_t sel, - upb_handlerattr *attr) { - if (!upb_handlers_gethandler(h, sel, NULL)) - return false; - *attr = h->table[sel].attr; - return true; -} - -const upb_handlers *upb_handlers_getsubhandlers_sel(const upb_handlers *h, - upb_selector_t sel) { - /* STARTSUBMSG selector in sel is the field's selector base. */ - return SUBH(h, sel - UPB_STATIC_SELECTOR_COUNT); -} - -const upb_msgdef *upb_handlers_msgdef(const upb_handlers *h) { return h->msg; } - -bool upb_handlers_addcleanup(upb_handlers *h, void *p, upb_handlerfree *func) { - return upb_handlercache_addcleanup(h->cache, p, func); -} - -upb_handlertype_t upb_handlers_getprimitivehandlertype(const upb_fielddef *f) { - switch (upb_fielddef_type(f)) { - case UPB_TYPE_INT32: - case UPB_TYPE_ENUM: return UPB_HANDLER_INT32; - case UPB_TYPE_INT64: return UPB_HANDLER_INT64; - case UPB_TYPE_UINT32: return UPB_HANDLER_UINT32; - case UPB_TYPE_UINT64: return UPB_HANDLER_UINT64; - case UPB_TYPE_FLOAT: return UPB_HANDLER_FLOAT; - case UPB_TYPE_DOUBLE: return UPB_HANDLER_DOUBLE; - case UPB_TYPE_BOOL: return UPB_HANDLER_BOOL; - default: UPB_ASSERT(false); return -1; /* Invalid input. */ - } -} - -bool upb_handlers_getselector(const upb_fielddef *f, upb_handlertype_t type, - upb_selector_t *s) { - uint32_t selector_base = upb_fielddef_selectorbase(f); - switch (type) { - case UPB_HANDLER_INT32: - case UPB_HANDLER_INT64: - case UPB_HANDLER_UINT32: - case UPB_HANDLER_UINT64: - case UPB_HANDLER_FLOAT: - case UPB_HANDLER_DOUBLE: - case UPB_HANDLER_BOOL: - if (!upb_fielddef_isprimitive(f) || - upb_handlers_getprimitivehandlertype(f) != type) - return false; - *s = selector_base; - break; - case UPB_HANDLER_STRING: - if (upb_fielddef_isstring(f)) { - *s = selector_base; - } else if (upb_fielddef_lazy(f)) { - *s = selector_base + 3; - } else { - return false; - } - break; - case UPB_HANDLER_STARTSTR: - if (upb_fielddef_isstring(f) || upb_fielddef_lazy(f)) { - *s = selector_base + 1; - } else { - return false; - } - break; - case UPB_HANDLER_ENDSTR: - if (upb_fielddef_isstring(f) || upb_fielddef_lazy(f)) { - *s = selector_base + 2; - } else { - return false; - } - break; - case UPB_HANDLER_STARTSEQ: - if (!upb_fielddef_isseq(f)) return false; - *s = selector_base - 2; - break; - case UPB_HANDLER_ENDSEQ: - if (!upb_fielddef_isseq(f)) return false; - *s = selector_base - 1; - break; - case UPB_HANDLER_STARTSUBMSG: - if (!upb_fielddef_issubmsg(f)) return false; - /* Selectors for STARTSUBMSG are at the beginning of the table so that the - * selector can also be used as an index into the "sub" array of - * subhandlers. The indexes for the two into these two tables are the - * same, except that in the handler table the static selectors come first. */ - *s = upb_fielddef_index(f) + UPB_STATIC_SELECTOR_COUNT; - break; - case UPB_HANDLER_ENDSUBMSG: - if (!upb_fielddef_issubmsg(f)) return false; - *s = selector_base; - break; - } - UPB_ASSERT((size_t)*s < upb_msgdef_selectorcount(upb_fielddef_containingtype(f))); - return true; -} - -/* upb_handlercache ***********************************************************/ - -struct upb_handlercache { - upb_arena *arena; - upb_inttable tab; /* maps upb_msgdef* -> upb_handlers*. */ - upb_handlers_callback *callback; - const void *closure; -}; - -const upb_handlers *upb_handlercache_get(upb_handlercache *c, - const upb_msgdef *md) { - int i, n; - upb_value v; - upb_handlers *h; - - if (upb_inttable_lookupptr(&c->tab, md, &v)) { - return upb_value_getptr(v); - } - - h = upb_handlers_new(md, c, c->arena); - v = upb_value_ptr(h); - - if (!h) return NULL; - if (!upb_inttable_insertptr(&c->tab, md, v)) return NULL; - - c->callback(c->closure, h); - - /* For each submessage field, get or create a handlers object and set it as - * the subhandlers. */ - n = upb_msgdef_fieldcount(md); - for (i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - - if (upb_fielddef_issubmsg(f)) { - const upb_msgdef *subdef = upb_fielddef_msgsubdef(f); - const upb_handlers *sub_mh = upb_handlercache_get(c, subdef); - - if (!sub_mh) return NULL; - - upb_handlers_setsubhandlers(h, f, sub_mh); - } - } - - return h; -} - - -upb_handlercache *upb_handlercache_new(upb_handlers_callback *callback, - const void *closure) { - upb_handlercache *cache = upb_gmalloc(sizeof(*cache)); - - if (!cache) return NULL; - - cache->arena = upb_arena_new(); - - cache->callback = callback; - cache->closure = closure; - - if (!upb_inttable_init(&cache->tab, UPB_CTYPE_PTR)) goto oom; - - return cache; - -oom: - upb_gfree(cache); - return NULL; -} - -void upb_handlercache_free(upb_handlercache *cache) { - upb_inttable_uninit(&cache->tab); - upb_arena_free(cache->arena); - upb_gfree(cache); -} - -bool upb_handlercache_addcleanup(upb_handlercache *c, void *p, - upb_handlerfree *func) { - return upb_arena_addcleanup(c->arena, p, func); -} - -/* upb_byteshandler ***********************************************************/ - -bool upb_byteshandler_setstartstr(upb_byteshandler *h, - upb_startstr_handlerfunc *func, void *d) { - h->table[UPB_STARTSTR_SELECTOR].func = (upb_func*)func; - h->table[UPB_STARTSTR_SELECTOR].attr.handler_data = d; - return true; -} - -bool upb_byteshandler_setstring(upb_byteshandler *h, - upb_string_handlerfunc *func, void *d) { - h->table[UPB_STRING_SELECTOR].func = (upb_func*)func; - h->table[UPB_STRING_SELECTOR].attr.handler_data = d; - return true; -} - -bool upb_byteshandler_setendstr(upb_byteshandler *h, - upb_endfield_handlerfunc *func, void *d) { - h->table[UPB_ENDSTR_SELECTOR].func = (upb_func*)func; - h->table[UPB_ENDSTR_SELECTOR].attr.handler_data = d; - return true; -} - -/** Handlers for upb_msg ******************************************************/ - -typedef struct { - size_t offset; - int32_t hasbit; -} upb_msg_handlerdata; - -/* Fallback implementation if the handler is not specialized by the producer. */ -#define MSG_WRITER(type, ctype) \ - bool upb_msg_set ## type (void *c, const void *hd, ctype val) { \ - uint8_t *m = c; \ - const upb_msg_handlerdata *d = hd; \ - if (d->hasbit > 0) \ - *(uint8_t*)&m[d->hasbit / 8] |= 1 << (d->hasbit % 8); \ - *(ctype*)&m[d->offset] = val; \ - return true; \ - } \ - -MSG_WRITER(double, double) -MSG_WRITER(float, float) -MSG_WRITER(int32, int32_t) -MSG_WRITER(int64, int64_t) -MSG_WRITER(uint32, uint32_t) -MSG_WRITER(uint64, uint64_t) -MSG_WRITER(bool, bool) - -bool upb_msg_setscalarhandler(upb_handlers *h, const upb_fielddef *f, - size_t offset, int32_t hasbit) { - upb_handlerattr attr = UPB_HANDLERATTR_INIT; - bool ok; - - upb_msg_handlerdata *d = upb_gmalloc(sizeof(*d)); - if (!d) return false; - d->offset = offset; - d->hasbit = hasbit; - - attr.handler_data = d; - attr.alwaysok = true; - upb_handlers_addcleanup(h, d, upb_gfree); - -#define TYPE(u, l) \ - case UPB_TYPE_##u: \ - ok = upb_handlers_set##l(h, f, upb_msg_set##l, &attr); break; - - ok = false; - - switch (upb_fielddef_type(f)) { - TYPE(INT64, int64); - TYPE(INT32, int32); - TYPE(ENUM, int32); - TYPE(UINT64, uint64); - TYPE(UINT32, uint32); - TYPE(DOUBLE, double); - TYPE(FLOAT, float); - TYPE(BOOL, bool); - default: UPB_ASSERT(false); break; - } -#undef TYPE - - return ok; -} - -bool upb_msg_getscalarhandlerdata(const upb_handlers *h, - upb_selector_t s, - upb_fieldtype_t *type, - size_t *offset, - int32_t *hasbit) { - const upb_msg_handlerdata *d; - const void *p; - upb_func *f = upb_handlers_gethandler(h, s, &p); - - if ((upb_int64_handlerfunc*)f == upb_msg_setint64) { - *type = UPB_TYPE_INT64; - } else if ((upb_int32_handlerfunc*)f == upb_msg_setint32) { - *type = UPB_TYPE_INT32; - } else if ((upb_uint64_handlerfunc*)f == upb_msg_setuint64) { - *type = UPB_TYPE_UINT64; - } else if ((upb_uint32_handlerfunc*)f == upb_msg_setuint32) { - *type = UPB_TYPE_UINT32; - } else if ((upb_double_handlerfunc*)f == upb_msg_setdouble) { - *type = UPB_TYPE_DOUBLE; - } else if ((upb_float_handlerfunc*)f == upb_msg_setfloat) { - *type = UPB_TYPE_FLOAT; - } else if ((upb_bool_handlerfunc*)f == upb_msg_setbool) { - *type = UPB_TYPE_BOOL; - } else { - return false; - } - - d = p; - *offset = d->offset; - *hasbit = d->hasbit; - return true; -} diff --git a/third_party/upb/upb/handlers.h b/third_party/upb/upb/handlers.h deleted file mode 100644 index 53904b6022f..00000000000 --- a/third_party/upb/upb/handlers.h +++ /dev/null @@ -1,735 +0,0 @@ -/* -** upb::Handlers (upb_handlers) -** -** A upb_handlers is like a virtual table for a upb_msgdef. Each field of the -** message can have associated functions that will be called when we are -** parsing or visiting a stream of data. This is similar to how handlers work -** in SAX (the Simple API for XML). -** -** The handlers have no idea where the data is coming from, so a single set of -** handlers could be used with two completely different data sources (for -** example, a parser and a visitor over in-memory objects). This decoupling is -** the most important feature of upb, because it allows parsers and serializers -** to be highly reusable. -** -** This is a mixed C/C++ interface that offers a full API to both languages. -** See the top-level README for more information. -*/ - -#ifndef UPB_HANDLERS_H -#define UPB_HANDLERS_H - -#include "upb/def.h" -#include "upb/table.int.h" - -#include "upb/port_def.inc" - -#ifdef __cplusplus -#include "upb/def.hpp" -namespace upb { -class HandlersPtr; -class HandlerCache; -template class Handler; -template struct CanonicalType; -} /* namespace upb */ -#endif - - -/* The maximum depth that the handler graph can have. This is a resource limit - * for the C stack since we sometimes need to recursively traverse the graph. - * Cycles are ok; the traversal will stop when it detects a cycle, but we must - * hit the cycle before the maximum depth is reached. - * - * If having a single static limit is too inflexible, we can add another variant - * of Handlers::Freeze that allows specifying this as a parameter. */ -#define UPB_MAX_HANDLER_DEPTH 64 - -/* All the different types of handlers that can be registered. - * Only needed for the advanced functions in upb::Handlers. */ -typedef enum { - UPB_HANDLER_INT32, - UPB_HANDLER_INT64, - UPB_HANDLER_UINT32, - UPB_HANDLER_UINT64, - UPB_HANDLER_FLOAT, - UPB_HANDLER_DOUBLE, - UPB_HANDLER_BOOL, - UPB_HANDLER_STARTSTR, - UPB_HANDLER_STRING, - UPB_HANDLER_ENDSTR, - UPB_HANDLER_STARTSUBMSG, - UPB_HANDLER_ENDSUBMSG, - UPB_HANDLER_STARTSEQ, - UPB_HANDLER_ENDSEQ -} upb_handlertype_t; - -#define UPB_HANDLER_MAX (UPB_HANDLER_ENDSEQ+1) - -#define UPB_BREAK NULL - -/* A convenient definition for when no closure is needed. */ -extern char _upb_noclosure; -#define UPB_NO_CLOSURE &_upb_noclosure - -/* A selector refers to a specific field handler in the Handlers object - * (for example: the STARTSUBMSG handler for field "field15"). */ -typedef int32_t upb_selector_t; - -/* Static selectors for upb::Handlers. */ -#define UPB_STARTMSG_SELECTOR 0 -#define UPB_ENDMSG_SELECTOR 1 -#define UPB_UNKNOWN_SELECTOR 2 -#define UPB_STATIC_SELECTOR_COUNT 3 /* Warning: also in upb/def.c. */ - -/* Static selectors for upb::BytesHandler. */ -#define UPB_STARTSTR_SELECTOR 0 -#define UPB_STRING_SELECTOR 1 -#define UPB_ENDSTR_SELECTOR 2 - -#ifdef __cplusplus -template const void *UniquePtrForType() { - static const char ch = 0; - return &ch; -} -#endif - -/* upb_handlers ************************************************************/ - -/* Handler attributes, to be registered with the handler itself. */ -typedef struct { - const void *handler_data; - const void *closure_type; - const void *return_closure_type; - bool alwaysok; -} upb_handlerattr; - -#define UPB_HANDLERATTR_INIT {NULL, NULL, NULL, false} - -/* Bufhandle, data passed along with a buffer to indicate its provenance. */ -struct upb_bufhandle { - /* The beginning of the buffer. This may be different than the pointer - * passed to a StringBuf handler because the handler may receive data - * that is from the middle or end of a larger buffer. */ - const char *buf; - - /* The offset within the attached object where this buffer begins. Only - * meaningful if there is an attached object. */ - size_t objofs; - - /* The attached object (if any) and a pointer representing its type. */ - const void *obj; - const void *objtype; - -#ifdef __cplusplus - template - void SetAttachedObject(const T* _obj) { - obj = _obj; - objtype = UniquePtrForType(); - } - - template - const T *GetAttachedObject() const { - return objtype == UniquePtrForType() ? static_cast(obj) - : NULL; - } -#endif -}; - -typedef struct upb_bufhandle upb_bufhandle; - -#define UPB_BUFHANDLE_INIT {NULL, 0, NULL, NULL} - -/* Handler function typedefs. */ -typedef void upb_handlerfree(void *d); -typedef bool upb_unknown_handlerfunc(void *c, const void *hd, const char *buf, - size_t n); -typedef bool upb_startmsg_handlerfunc(void *c, const void*); -typedef bool upb_endmsg_handlerfunc(void *c, const void *, upb_status *status); -typedef void* upb_startfield_handlerfunc(void *c, const void *hd); -typedef bool upb_endfield_handlerfunc(void *c, const void *hd); -typedef bool upb_int32_handlerfunc(void *c, const void *hd, int32_t val); -typedef bool upb_int64_handlerfunc(void *c, const void *hd, int64_t val); -typedef bool upb_uint32_handlerfunc(void *c, const void *hd, uint32_t val); -typedef bool upb_uint64_handlerfunc(void *c, const void *hd, uint64_t val); -typedef bool upb_float_handlerfunc(void *c, const void *hd, float val); -typedef bool upb_double_handlerfunc(void *c, const void *hd, double val); -typedef bool upb_bool_handlerfunc(void *c, const void *hd, bool val); -typedef void *upb_startstr_handlerfunc(void *c, const void *hd, - size_t size_hint); -typedef size_t upb_string_handlerfunc(void *c, const void *hd, const char *buf, - size_t n, const upb_bufhandle* handle); - -struct upb_handlers; -typedef struct upb_handlers upb_handlers; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Mutating accessors. */ -const upb_status *upb_handlers_status(upb_handlers *h); -void upb_handlers_clearerr(upb_handlers *h); -const upb_msgdef *upb_handlers_msgdef(const upb_handlers *h); -bool upb_handlers_addcleanup(upb_handlers *h, void *p, upb_handlerfree *hfree); -bool upb_handlers_setunknown(upb_handlers *h, upb_unknown_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setstartmsg(upb_handlers *h, upb_startmsg_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setendmsg(upb_handlers *h, upb_endmsg_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setint32(upb_handlers *h, const upb_fielddef *f, - upb_int32_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setint64(upb_handlers *h, const upb_fielddef *f, - upb_int64_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setuint32(upb_handlers *h, const upb_fielddef *f, - upb_uint32_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setuint64(upb_handlers *h, const upb_fielddef *f, - upb_uint64_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setfloat(upb_handlers *h, const upb_fielddef *f, - upb_float_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setdouble(upb_handlers *h, const upb_fielddef *f, - upb_double_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setbool(upb_handlers *h, const upb_fielddef *f, - upb_bool_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setstartstr(upb_handlers *h, const upb_fielddef *f, - upb_startstr_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setstring(upb_handlers *h, const upb_fielddef *f, - upb_string_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setendstr(upb_handlers *h, const upb_fielddef *f, - upb_endfield_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setstartseq(upb_handlers *h, const upb_fielddef *f, - upb_startfield_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setstartsubmsg(upb_handlers *h, const upb_fielddef *f, - upb_startfield_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setendsubmsg(upb_handlers *h, const upb_fielddef *f, - upb_endfield_handlerfunc *func, - const upb_handlerattr *attr); -bool upb_handlers_setendseq(upb_handlers *h, const upb_fielddef *f, - upb_endfield_handlerfunc *func, - const upb_handlerattr *attr); - -/* Read-only accessors. */ -const upb_handlers *upb_handlers_getsubhandlers(const upb_handlers *h, - const upb_fielddef *f); -const upb_handlers *upb_handlers_getsubhandlers_sel(const upb_handlers *h, - upb_selector_t sel); -upb_func *upb_handlers_gethandler(const upb_handlers *h, upb_selector_t s, - const void **handler_data); -bool upb_handlers_getattr(const upb_handlers *h, upb_selector_t s, - upb_handlerattr *attr); - -/* "Static" methods */ -upb_handlertype_t upb_handlers_getprimitivehandlertype(const upb_fielddef *f); -bool upb_handlers_getselector(const upb_fielddef *f, upb_handlertype_t type, - upb_selector_t *s); -UPB_INLINE upb_selector_t upb_handlers_getendselector(upb_selector_t start) { - return start + 1; -} - -#ifdef __cplusplus -} /* extern "C" */ - -namespace upb { -typedef upb_handlers Handlers; -} - -/* Convenience macros for creating a Handler object that is wrapped with a - * type-safe wrapper function that converts the "void*" parameters/returns - * of the underlying C API into nice C++ function. - * - * Sample usage: - * void OnValue1(MyClosure* c, const MyHandlerData* d, int32_t val) { - * // do stuff ... - * } - * - * // Handler that doesn't need any data bound to it. - * void OnValue2(MyClosure* c, int32_t val) { - * // do stuff ... - * } - * - * // Handler that returns bool so it can return failure if necessary. - * bool OnValue3(MyClosure* c, int32_t val) { - * // do stuff ... - * return ok; - * } - * - * // Member function handler. - * class MyClosure { - * public: - * void OnValue(int32_t val) { - * // do stuff ... - * } - * }; - * - * // Takes ownership of the MyHandlerData. - * handlers->SetInt32Handler(f1, UpbBind(OnValue1, new MyHandlerData(...))); - * handlers->SetInt32Handler(f2, UpbMakeHandler(OnValue2)); - * handlers->SetInt32Handler(f1, UpbMakeHandler(OnValue3)); - * handlers->SetInt32Handler(f2, UpbMakeHandler(&MyClosure::OnValue)); - */ - -/* In C++11, the "template" disambiguator can appear even outside templates, - * so all calls can safely use this pair of macros. */ - -#define UpbMakeHandler(f) upb::MatchFunc(f).template GetFunc() - -/* We have to be careful to only evaluate "d" once. */ -#define UpbBind(f, d) upb::MatchFunc(f).template GetFunc((d)) - -/* Handler: a struct that contains the (handler, data, deleter) tuple that is - * used to register all handlers. Users can Make() these directly but it's - * more convenient to use the UpbMakeHandler/UpbBind macros above. */ -template class upb::Handler { - public: - /* The underlying, handler function signature that upb uses internally. */ - typedef T FuncPtr; - - /* Intentionally implicit. */ - template Handler(F func); - ~Handler() { UPB_ASSERT(registered_); } - - void AddCleanup(upb_handlers* h) const; - FuncPtr handler() const { return handler_; } - const upb_handlerattr& attr() const { return attr_; } - - private: - Handler(const Handler&) = delete; - Handler& operator=(const Handler&) = delete; - - FuncPtr handler_; - mutable upb_handlerattr attr_; - mutable bool registered_; - void *cleanup_data_; - upb_handlerfree *cleanup_func_; -}; - -/* A upb::Handlers object represents the set of handlers associated with a - * message in the graph of messages. You can think of it as a big virtual - * table with functions corresponding to all the events that can fire while - * parsing or visiting a message of a specific type. - * - * Any handlers that are not set behave as if they had successfully consumed - * the value. Any unset Start* handlers will propagate their closure to the - * inner frame. - * - * The easiest way to create the *Handler objects needed by the Set* methods is - * with the UpbBind() and UpbMakeHandler() macros; see below. */ -class upb::HandlersPtr { - public: - HandlersPtr(upb_handlers* ptr) : ptr_(ptr) {} - - upb_handlers* ptr() const { return ptr_; } - - typedef upb_selector_t Selector; - typedef upb_handlertype_t Type; - - typedef Handler StartFieldHandler; - typedef Handler EndFieldHandler; - typedef Handler StartMessageHandler; - typedef Handler - EndMessageHandler; - typedef Handler StartStringHandler; - typedef Handler - StringHandler; - - template struct ValueHandler { - typedef Handler H; - }; - - typedef ValueHandler::H Int32Handler; - typedef ValueHandler::H Int64Handler; - typedef ValueHandler::H UInt32Handler; - typedef ValueHandler::H UInt64Handler; - typedef ValueHandler::H FloatHandler; - typedef ValueHandler::H DoubleHandler; - typedef ValueHandler::H BoolHandler; - - /* Any function pointer can be converted to this and converted back to its - * correct type. */ - typedef void GenericFunction(); - - typedef void HandlersCallback(const void *closure, upb_handlers *h); - - /* Returns the msgdef associated with this handlers object. */ - MessageDefPtr message_def() const { - return MessageDefPtr(upb_handlers_msgdef(ptr())); - } - - /* Adds the given pointer and function to the list of cleanup functions that - * will be run when these handlers are freed. If this pointer has previously - * been registered, the function returns false and does nothing. */ - bool AddCleanup(void *ptr, upb_handlerfree *cleanup) { - return upb_handlers_addcleanup(ptr_, ptr, cleanup); - } - - /* Sets the startmsg handler for the message, which is defined as follows: - * - * bool startmsg(MyType* closure) { - * // Called when the message begins. Returns true if processing should - * // continue. - * return true; - * } - */ - bool SetStartMessageHandler(const StartMessageHandler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setstartmsg(ptr(), h.handler(), &h.attr()); - } - - /* Sets the endmsg handler for the message, which is defined as follows: - * - * bool endmsg(MyType* closure, upb_status *status) { - * // Called when processing of this message ends, whether in success or - * // failure. "status" indicates the final status of processing, and - * // can also be modified in-place to update the final status. - * } - */ - bool SetEndMessageHandler(const EndMessageHandler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setendmsg(ptr(), h.handler(), &h.attr()); - } - - /* Sets the value handler for the given field, which is defined as follows - * (this is for an int32 field; other field types will pass their native - * C/C++ type for "val"): - * - * bool OnValue(MyClosure* c, const MyHandlerData* d, int32_t val) { - * // Called when the field's value is encountered. "d" contains - * // whatever data was bound to this field when it was registered. - * // Returns true if processing should continue. - * return true; - * } - * - * handers->SetInt32Handler(f, UpbBind(OnValue, new MyHandlerData(...))); - * - * The value type must exactly match f->type(). - * For example, a handler that takes an int32_t parameter may only be used for - * fields of type UPB_TYPE_INT32 and UPB_TYPE_ENUM. - * - * Returns false if the handler failed to register; in this case the cleanup - * handler (if any) will be called immediately. - */ - bool SetInt32Handler(FieldDefPtr f, const Int32Handler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setint32(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetInt64Handler (FieldDefPtr f, const Int64Handler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setint64(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetUInt32Handler(FieldDefPtr f, const UInt32Handler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setuint32(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetUInt64Handler(FieldDefPtr f, const UInt64Handler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setuint64(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetFloatHandler (FieldDefPtr f, const FloatHandler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setfloat(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetDoubleHandler(FieldDefPtr f, const DoubleHandler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setdouble(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetBoolHandler(FieldDefPtr f, const BoolHandler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setbool(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - /* Like the previous, but templated on the type on the value (ie. int32). - * This is mostly useful to call from other templates. To call this you must - * specify the template parameter explicitly, ie: - * h->SetValueHandler(f, UpbBind(MyHandler, MyData)); */ - template - bool SetValueHandler( - FieldDefPtr f, - const typename ValueHandler::Type>::H &handler); - - /* Sets handlers for a string field, which are defined as follows: - * - * MySubClosure* startstr(MyClosure* c, const MyHandlerData* d, - * size_t size_hint) { - * // Called when a string value begins. The return value indicates the - * // closure for the string. "size_hint" indicates the size of the - * // string if it is known, however if the string is length-delimited - * // and the end-of-string is not available size_hint will be zero. - * // This case is indistinguishable from the case where the size is - * // known to be zero. - * // - * // TODO(haberman): is it important to distinguish these cases? - * // If we had ssize_t as a type we could make -1 "unknown", but - * // ssize_t is POSIX (not ANSI) and therefore less portable. - * // In practice I suspect it won't be important to distinguish. - * return closure; - * } - * - * size_t str(MyClosure* closure, const MyHandlerData* d, - * const char *str, size_t len) { - * // Called for each buffer of string data; the multiple physical buffers - * // are all part of the same logical string. The return value indicates - * // how many bytes were consumed. If this number is less than "len", - * // this will also indicate that processing should be halted for now, - * // like returning false or UPB_BREAK from any other callback. If - * // number is greater than "len", the excess bytes will be skipped over - * // and not passed to the callback. - * return len; - * } - * - * bool endstr(MyClosure* c, const MyHandlerData* d) { - * // Called when a string value ends. Return value indicates whether - * // processing should continue. - * return true; - * } - */ - bool SetStartStringHandler(FieldDefPtr f, const StartStringHandler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setstartstr(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetStringHandler(FieldDefPtr f, const StringHandler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setstring(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - bool SetEndStringHandler(FieldDefPtr f, const EndFieldHandler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setendstr(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - /* Sets the startseq handler, which is defined as follows: - * - * MySubClosure *startseq(MyClosure* c, const MyHandlerData* d) { - * // Called when a sequence (repeated field) begins. The returned - * // pointer indicates the closure for the sequence (or UPB_BREAK - * // to interrupt processing). - * return closure; - * } - * - * h->SetStartSequenceHandler(f, UpbBind(startseq, new MyHandlerData(...))); - * - * Returns "false" if "f" does not belong to this message or is not a - * repeated field. - */ - bool SetStartSequenceHandler(FieldDefPtr f, const StartFieldHandler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setstartseq(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - /* Sets the startsubmsg handler for the given field, which is defined as - * follows: - * - * MySubClosure* startsubmsg(MyClosure* c, const MyHandlerData* d) { - * // Called when a submessage begins. The returned pointer indicates the - * // closure for the sequence (or UPB_BREAK to interrupt processing). - * return closure; - * } - * - * h->SetStartSubMessageHandler(f, UpbBind(startsubmsg, - * new MyHandlerData(...))); - * - * Returns "false" if "f" does not belong to this message or is not a - * submessage/group field. - */ - bool SetStartSubMessageHandler(FieldDefPtr f, const StartFieldHandler& h) { - h.AddCleanup(ptr()); - return upb_handlers_setstartsubmsg(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - /* Sets the endsubmsg handler for the given field, which is defined as - * follows: - * - * bool endsubmsg(MyClosure* c, const MyHandlerData* d) { - * // Called when a submessage ends. Returns true to continue processing. - * return true; - * } - * - * Returns "false" if "f" does not belong to this message or is not a - * submessage/group field. - */ - bool SetEndSubMessageHandler(FieldDefPtr f, const EndFieldHandler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setendsubmsg(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - /* Starts the endsubseq handler for the given field, which is defined as - * follows: - * - * bool endseq(MyClosure* c, const MyHandlerData* d) { - * // Called when a sequence ends. Returns true continue processing. - * return true; - * } - * - * Returns "false" if "f" does not belong to this message or is not a - * repeated field. - */ - bool SetEndSequenceHandler(FieldDefPtr f, const EndFieldHandler &h) { - h.AddCleanup(ptr()); - return upb_handlers_setendseq(ptr(), f.ptr(), h.handler(), &h.attr()); - } - - private: - upb_handlers* ptr_; -}; - -#endif /* __cplusplus */ - -/* upb_handlercache ***********************************************************/ - -/* A upb_handlercache lazily builds and caches upb_handlers. You pass it a - * function (with optional closure) that can build handlers for a given - * message on-demand, and the cache maintains a map of msgdef->handlers. */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct upb_handlercache; -typedef struct upb_handlercache upb_handlercache; - -typedef void upb_handlers_callback(const void *closure, upb_handlers *h); - -upb_handlercache *upb_handlercache_new(upb_handlers_callback *callback, - const void *closure); -void upb_handlercache_free(upb_handlercache *cache); -const upb_handlers *upb_handlercache_get(upb_handlercache *cache, - const upb_msgdef *md); -bool upb_handlercache_addcleanup(upb_handlercache *h, void *p, - upb_handlerfree *hfree); - -#ifdef __cplusplus -} /* extern "C" */ - -class upb::HandlerCache { - public: - HandlerCache(upb_handlers_callback *callback, const void *closure) - : ptr_(upb_handlercache_new(callback, closure), upb_handlercache_free) {} - HandlerCache(HandlerCache&&) = default; - HandlerCache& operator=(HandlerCache&&) = default; - HandlerCache(upb_handlercache* c) : ptr_(c, upb_handlercache_free) {} - - upb_handlercache* ptr() { return ptr_.get(); } - - const upb_handlers *Get(MessageDefPtr md) { - return upb_handlercache_get(ptr_.get(), md.ptr()); - } - - private: - std::unique_ptr ptr_; -}; - -#endif /* __cplusplus */ - -/* upb_byteshandler ***********************************************************/ - -typedef struct { - upb_func *func; - - /* It is wasteful to include the entire attributes here: - * - * * Some of the information is redundant (like storing the closure type - * separately for each handler that must match). - * * Some of the info is only needed prior to freeze() (like closure types). - * * alignment padding wastes a lot of space for alwaysok_. - * - * If/when the size and locality of handlers is an issue, we can optimize this - * not to store the entire attr like this. We do not expose the table's - * layout to allow this optimization in the future. */ - upb_handlerattr attr; -} upb_handlers_tabent; - -#define UPB_TABENT_INIT {NULL, UPB_HANDLERATTR_INIT} - -typedef struct { - upb_handlers_tabent table[3]; -} upb_byteshandler; - -#define UPB_BYTESHANDLER_INIT \ - { \ - { UPB_TABENT_INIT, UPB_TABENT_INIT, UPB_TABENT_INIT } \ - } - -UPB_INLINE void upb_byteshandler_init(upb_byteshandler *handler) { - upb_byteshandler init = UPB_BYTESHANDLER_INIT; - *handler = init; -} - -#ifdef __cplusplus -extern "C" { -#endif - -/* Caller must ensure that "d" outlives the handlers. */ -bool upb_byteshandler_setstartstr(upb_byteshandler *h, - upb_startstr_handlerfunc *func, void *d); -bool upb_byteshandler_setstring(upb_byteshandler *h, - upb_string_handlerfunc *func, void *d); -bool upb_byteshandler_setendstr(upb_byteshandler *h, - upb_endfield_handlerfunc *func, void *d); - -#ifdef __cplusplus -} /* extern "C" */ - -namespace upb { -typedef upb_byteshandler BytesHandler; -} -#endif - -/** Message handlers ******************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -/* These are the handlers used internally by upb_msgfactory_getmergehandlers(). - * They write scalar data to a known offset from the message pointer. - * - * These would be trivial for anyone to implement themselves, but it's better - * to use these because some JITs will recognize and specialize these instead - * of actually calling the function. */ - -/* Sets a handler for the given primitive field that will write the data at the - * given offset. If hasbit > 0, also sets a hasbit at the given bit offset - * (addressing each byte low to high). */ -bool upb_msg_setscalarhandler(upb_handlers *h, - const upb_fielddef *f, - size_t offset, - int32_t hasbit); - -/* If the given handler is a msghandlers_primitive field, returns true and sets - * *type, *offset and *hasbit. Otherwise returns false. */ -bool upb_msg_getscalarhandlerdata(const upb_handlers *h, - upb_selector_t s, - upb_fieldtype_t *type, - size_t *offset, - int32_t *hasbit); - - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#include "upb/port_undef.inc" - -#include "upb/handlers-inl.h" - -#endif /* UPB_HANDLERS_H */ diff --git a/third_party/upb/upb/json/parser.h b/third_party/upb/upb/json/parser.h deleted file mode 100644 index d323c52ef8c..00000000000 --- a/third_party/upb/upb/json/parser.h +++ /dev/null @@ -1,140 +0,0 @@ -/* -** upb::json::Parser (upb_json_parser) -** -** Parses JSON according to a specific schema. -** Support for parsing arbitrary JSON (schema-less) will be added later. -*/ - -#ifndef UPB_JSON_PARSER_H_ -#define UPB_JSON_PARSER_H_ - -#include "upb/sink.h" - -#ifdef __cplusplus -namespace upb { -namespace json { -class CodeCache; -class ParserPtr; -class ParserMethodPtr; -} /* namespace json */ -} /* namespace upb */ -#endif - -/* upb_json_parsermethod ******************************************************/ - -struct upb_json_parsermethod; -typedef struct upb_json_parsermethod upb_json_parsermethod; - -#ifdef __cplusplus -extern "C" { -#endif - -const upb_byteshandler* upb_json_parsermethod_inputhandler( - const upb_json_parsermethod* m); - -#ifdef __cplusplus -} /* extern "C" */ - -class upb::json::ParserMethodPtr { - public: - ParserMethodPtr() : ptr_(nullptr) {} - ParserMethodPtr(const upb_json_parsermethod* ptr) : ptr_(ptr) {} - - const upb_json_parsermethod* ptr() const { return ptr_; } - - const BytesHandler* input_handler() const { - return upb_json_parsermethod_inputhandler(ptr()); - } - - private: - const upb_json_parsermethod* ptr_; -}; - -#endif /* __cplusplus */ - -/* upb_json_parser ************************************************************/ - -/* Preallocation hint: parser won't allocate more bytes than this when first - * constructed. This hint may be an overestimate for some build configurations. - * But if the parser library is upgraded without recompiling the application, - * it may be an underestimate. */ -#define UPB_JSON_PARSER_SIZE 5712 - -struct upb_json_parser; -typedef struct upb_json_parser upb_json_parser; - -#ifdef __cplusplus -extern "C" { -#endif - -upb_json_parser* upb_json_parser_create(upb_arena* a, - const upb_json_parsermethod* m, - const upb_symtab* symtab, - upb_sink output, - upb_status *status, - bool ignore_json_unknown); -upb_bytessink upb_json_parser_input(upb_json_parser* p); - -#ifdef __cplusplus -} /* extern "C" */ - -/* Parses an incoming BytesStream, pushing the results to the destination - * sink. */ -class upb::json::ParserPtr { - public: - ParserPtr(upb_json_parser* ptr) : ptr_(ptr) {} - - static ParserPtr Create(Arena* arena, ParserMethodPtr method, - SymbolTable* symtab, Sink output, Status* status, - bool ignore_json_unknown) { - upb_symtab* symtab_ptr = symtab ? symtab->ptr() : nullptr; - return ParserPtr(upb_json_parser_create( - arena->ptr(), method.ptr(), symtab_ptr, output.sink(), status->ptr(), - ignore_json_unknown)); - } - - BytesSink input() { return upb_json_parser_input(ptr_); } - - private: - upb_json_parser* ptr_; -}; - -#endif /* __cplusplus */ - -/* upb_json_codecache *********************************************************/ - -/* Lazily builds and caches decoder methods that will push data to the given - * handlers. The upb_symtab object(s) must outlive this object. */ - -struct upb_json_codecache; -typedef struct upb_json_codecache upb_json_codecache; - -#ifdef __cplusplus -extern "C" { -#endif - -upb_json_codecache *upb_json_codecache_new(void); -void upb_json_codecache_free(upb_json_codecache *cache); -const upb_json_parsermethod* upb_json_codecache_get(upb_json_codecache* cache, - const upb_msgdef* md); - -#ifdef __cplusplus -} /* extern "C" */ - -class upb::json::CodeCache { - public: - CodeCache() : ptr_(upb_json_codecache_new(), upb_json_codecache_free) {} - - /* Returns a DecoderMethod that can push data to the given handlers. - * If a suitable method already exists, it will be returned from the cache. */ - ParserMethodPtr Get(MessageDefPtr md) { - return upb_json_codecache_get(ptr_.get(), md.ptr()); - } - - private: - std::unique_ptr ptr_; -}; - -#endif - -#endif /* UPB_JSON_PARSER_H_ */ diff --git a/third_party/upb/upb/json/parser.rl b/third_party/upb/upb/json/parser.rl deleted file mode 100644 index a7d75ff1583..00000000000 --- a/third_party/upb/upb/json/parser.rl +++ /dev/null @@ -1,2996 +0,0 @@ -/* -** upb::json::Parser (upb_json_parser) -** -** A parser that uses the Ragel State Machine Compiler to generate -** the finite automata. -** -** Ragel only natively handles regular languages, but we can manually -** program it a bit to handle context-free languages like JSON, by using -** the "fcall" and "fret" constructs. -** -** This parser can handle the basics, but needs several things to be fleshed -** out: -** -** - handling of unicode escape sequences (including high surrogate pairs). -** - properly check and report errors for unknown fields, stack overflow, -** improper array nesting (or lack of nesting). -** - handling of base64 sequences with padding characters. -** - handling of push-back (non-success returns from sink functions). -** - handling of keys/escape-sequences/etc that span input buffers. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "upb/json/parser.h" -#include "upb/pb/encoder.h" - -#include "upb/port_def.inc" - -#define UPB_JSON_MAX_DEPTH 64 - -/* Type of value message */ -enum { - VALUE_NULLVALUE = 0, - VALUE_NUMBERVALUE = 1, - VALUE_STRINGVALUE = 2, - VALUE_BOOLVALUE = 3, - VALUE_STRUCTVALUE = 4, - VALUE_LISTVALUE = 5 -}; - -/* Forward declare */ -static bool is_top_level(upb_json_parser *p); -static bool is_wellknown_msg(upb_json_parser *p, upb_wellknowntype_t type); -static bool is_wellknown_field(upb_json_parser *p, upb_wellknowntype_t type); - -static bool is_number_wrapper_object(upb_json_parser *p); -static bool does_number_wrapper_start(upb_json_parser *p); -static bool does_number_wrapper_end(upb_json_parser *p); - -static bool is_string_wrapper_object(upb_json_parser *p); -static bool does_string_wrapper_start(upb_json_parser *p); -static bool does_string_wrapper_end(upb_json_parser *p); - -static bool does_fieldmask_start(upb_json_parser *p); -static bool does_fieldmask_end(upb_json_parser *p); -static void start_fieldmask_object(upb_json_parser *p); -static void end_fieldmask_object(upb_json_parser *p); - -static void start_wrapper_object(upb_json_parser *p); -static void end_wrapper_object(upb_json_parser *p); - -static void start_value_object(upb_json_parser *p, int value_type); -static void end_value_object(upb_json_parser *p); - -static void start_listvalue_object(upb_json_parser *p); -static void end_listvalue_object(upb_json_parser *p); - -static void start_structvalue_object(upb_json_parser *p); -static void end_structvalue_object(upb_json_parser *p); - -static void start_object(upb_json_parser *p); -static void end_object(upb_json_parser *p); - -static void start_any_object(upb_json_parser *p, const char *ptr); -static bool end_any_object(upb_json_parser *p, const char *ptr); - -static bool start_subobject(upb_json_parser *p); -static void end_subobject(upb_json_parser *p); - -static void start_member(upb_json_parser *p); -static void end_member(upb_json_parser *p); -static bool end_membername(upb_json_parser *p); - -static void start_any_member(upb_json_parser *p, const char *ptr); -static void end_any_member(upb_json_parser *p, const char *ptr); -static bool end_any_membername(upb_json_parser *p); - -size_t parse(void *closure, const void *hd, const char *buf, size_t size, - const upb_bufhandle *handle); -static bool end(void *closure, const void *hd); - -static const char eof_ch = 'e'; - -/* stringsink */ -typedef struct { - upb_byteshandler handler; - upb_bytessink sink; - char *ptr; - size_t len, size; -} upb_stringsink; - - -static void *stringsink_start(void *_sink, const void *hd, size_t size_hint) { - upb_stringsink *sink = _sink; - sink->len = 0; - UPB_UNUSED(hd); - UPB_UNUSED(size_hint); - return sink; -} - -static size_t stringsink_string(void *_sink, const void *hd, const char *ptr, - size_t len, const upb_bufhandle *handle) { - upb_stringsink *sink = _sink; - size_t new_size = sink->size; - - UPB_UNUSED(hd); - UPB_UNUSED(handle); - - while (sink->len + len > new_size) { - new_size *= 2; - } - - if (new_size != sink->size) { - sink->ptr = realloc(sink->ptr, new_size); - sink->size = new_size; - } - - memcpy(sink->ptr + sink->len, ptr, len); - sink->len += len; - - return len; -} - -void upb_stringsink_init(upb_stringsink *sink) { - upb_byteshandler_init(&sink->handler); - upb_byteshandler_setstartstr(&sink->handler, stringsink_start, NULL); - upb_byteshandler_setstring(&sink->handler, stringsink_string, NULL); - - upb_bytessink_reset(&sink->sink, &sink->handler, sink); - - sink->size = 32; - sink->ptr = malloc(sink->size); - sink->len = 0; -} - -void upb_stringsink_uninit(upb_stringsink *sink) { free(sink->ptr); } - -typedef struct { - /* For encoding Any value field in binary format. */ - upb_handlercache *encoder_handlercache; - upb_stringsink stringsink; - - /* For decoding Any value field in json format. */ - upb_json_codecache *parser_codecache; - upb_sink sink; - upb_json_parser *parser; - - /* Mark the range of uninterpreted values in json input before type url. */ - const char *before_type_url_start; - const char *before_type_url_end; - - /* Mark the range of uninterpreted values in json input after type url. */ - const char *after_type_url_start; -} upb_jsonparser_any_frame; - -typedef struct { - upb_sink sink; - - /* The current message in which we're parsing, and the field whose value we're - * expecting next. */ - const upb_msgdef *m; - const upb_fielddef *f; - - /* The table mapping json name to fielddef for this message. */ - const upb_strtable *name_table; - - /* We are in a repeated-field context. We need this flag to decide whether to - * handle the array as a normal repeated field or a - * google.protobuf.ListValue/google.protobuf.Value. */ - bool is_repeated; - - /* We are in a repeated-field context, ready to emit mapentries as - * submessages. This flag alters the start-of-object (open-brace) behavior to - * begin a sequence of mapentry messages rather than a single submessage. */ - bool is_map; - - /* We are in a map-entry message context. This flag is set when parsing the - * value field of a single map entry and indicates to all value-field parsers - * (subobjects, strings, numbers, and bools) that the map-entry submessage - * should end as soon as the value is parsed. */ - bool is_mapentry; - - /* If |is_map| or |is_mapentry| is true, |mapfield| refers to the parent - * message's map field that we're currently parsing. This differs from |f| - * because |f| is the field in the *current* message (i.e., the map-entry - * message itself), not the parent's field that leads to this map. */ - const upb_fielddef *mapfield; - - /* We are in an Any message context. This flag is set when parsing the Any - * message and indicates to all field parsers (subobjects, strings, numbers, - * and bools) that the parsed field should be serialized as binary data or - * cached (type url not found yet). */ - bool is_any; - - /* The type of packed message in Any. */ - upb_jsonparser_any_frame *any_frame; - - /* True if the field to be parsed is unknown. */ - bool is_unknown_field; -} upb_jsonparser_frame; - -static void init_frame(upb_jsonparser_frame* frame) { - frame->m = NULL; - frame->f = NULL; - frame->name_table = NULL; - frame->is_repeated = false; - frame->is_map = false; - frame->is_mapentry = false; - frame->mapfield = NULL; - frame->is_any = false; - frame->any_frame = NULL; - frame->is_unknown_field = false; -} - -struct upb_json_parser { - upb_arena *arena; - const upb_json_parsermethod *method; - upb_bytessink input_; - - /* Stack to track the JSON scopes we are in. */ - upb_jsonparser_frame stack[UPB_JSON_MAX_DEPTH]; - upb_jsonparser_frame *top; - upb_jsonparser_frame *limit; - - upb_status *status; - - /* Ragel's internal parsing stack for the parsing state machine. */ - int current_state; - int parser_stack[UPB_JSON_MAX_DEPTH]; - int parser_top; - - /* The handle for the current buffer. */ - const upb_bufhandle *handle; - - /* Accumulate buffer. See details in parser.rl. */ - const char *accumulated; - size_t accumulated_len; - char *accumulate_buf; - size_t accumulate_buf_size; - - /* Multi-part text data. See details in parser.rl. */ - int multipart_state; - upb_selector_t string_selector; - - /* Input capture. See details in parser.rl. */ - const char *capture; - - /* Intermediate result of parsing a unicode escape sequence. */ - uint32_t digit; - - /* For resolve type url in Any. */ - const upb_symtab *symtab; - - /* Whether to proceed if unknown field is met. */ - bool ignore_json_unknown; - - /* Cache for parsing timestamp due to base and zone are handled in different - * handlers. */ - struct tm tm; -}; - -static upb_jsonparser_frame* start_jsonparser_frame(upb_json_parser *p) { - upb_jsonparser_frame *inner; - inner = p->top + 1; - init_frame(inner); - return inner; -} - -struct upb_json_codecache { - upb_arena *arena; - upb_inttable methods; /* upb_msgdef* -> upb_json_parsermethod* */ -}; - -struct upb_json_parsermethod { - const upb_json_codecache *cache; - upb_byteshandler input_handler_; - - /* Maps json_name -> fielddef */ - upb_strtable name_table; -}; - -#define PARSER_CHECK_RETURN(x) if (!(x)) return false - -static upb_jsonparser_any_frame *json_parser_any_frame_new( - upb_json_parser *p) { - upb_jsonparser_any_frame *frame; - - frame = upb_arena_malloc(p->arena, sizeof(upb_jsonparser_any_frame)); - - frame->encoder_handlercache = upb_pb_encoder_newcache(); - frame->parser_codecache = upb_json_codecache_new(); - frame->parser = NULL; - frame->before_type_url_start = NULL; - frame->before_type_url_end = NULL; - frame->after_type_url_start = NULL; - - upb_stringsink_init(&frame->stringsink); - - return frame; -} - -static void json_parser_any_frame_set_payload_type( - upb_json_parser *p, - upb_jsonparser_any_frame *frame, - const upb_msgdef *payload_type) { - const upb_handlers *h; - const upb_json_parsermethod *parser_method; - upb_pb_encoder *encoder; - - /* Initialize encoder. */ - h = upb_handlercache_get(frame->encoder_handlercache, payload_type); - encoder = upb_pb_encoder_create(p->arena, h, frame->stringsink.sink); - - /* Initialize parser. */ - parser_method = upb_json_codecache_get(frame->parser_codecache, payload_type); - upb_sink_reset(&frame->sink, h, encoder); - frame->parser = - upb_json_parser_create(p->arena, parser_method, p->symtab, frame->sink, - p->status, p->ignore_json_unknown); -} - -static void json_parser_any_frame_free(upb_jsonparser_any_frame *frame) { - upb_handlercache_free(frame->encoder_handlercache); - upb_json_codecache_free(frame->parser_codecache); - upb_stringsink_uninit(&frame->stringsink); -} - -static bool json_parser_any_frame_has_type_url( - upb_jsonparser_any_frame *frame) { - return frame->parser != NULL; -} - -static bool json_parser_any_frame_has_value_before_type_url( - upb_jsonparser_any_frame *frame) { - return frame->before_type_url_start != frame->before_type_url_end; -} - -static bool json_parser_any_frame_has_value_after_type_url( - upb_jsonparser_any_frame *frame) { - return frame->after_type_url_start != NULL; -} - -static bool json_parser_any_frame_has_value( - upb_jsonparser_any_frame *frame) { - return json_parser_any_frame_has_value_before_type_url(frame) || - json_parser_any_frame_has_value_after_type_url(frame); -} - -static void json_parser_any_frame_set_before_type_url_end( - upb_jsonparser_any_frame *frame, - const char *ptr) { - if (frame->parser == NULL) { - frame->before_type_url_end = ptr; - } -} - -static void json_parser_any_frame_set_after_type_url_start_once( - upb_jsonparser_any_frame *frame, - const char *ptr) { - if (json_parser_any_frame_has_type_url(frame) && - frame->after_type_url_start == NULL) { - frame->after_type_url_start = ptr; - } -} - -/* Used to signal that a capture has been suspended. */ -static char suspend_capture; - -static upb_selector_t getsel_for_handlertype(upb_json_parser *p, - upb_handlertype_t type) { - upb_selector_t sel; - bool ok = upb_handlers_getselector(p->top->f, type, &sel); - UPB_ASSUME(ok); - return sel; -} - -static upb_selector_t parser_getsel(upb_json_parser *p) { - return getsel_for_handlertype( - p, upb_handlers_getprimitivehandlertype(p->top->f)); -} - -static bool check_stack(upb_json_parser *p) { - if ((p->top + 1) == p->limit) { - upb_status_seterrmsg(p->status, "Nesting too deep"); - return false; - } - - return true; -} - -static void set_name_table(upb_json_parser *p, upb_jsonparser_frame *frame) { - upb_value v; - const upb_json_codecache *cache = p->method->cache; - bool ok; - const upb_json_parsermethod *method; - - ok = upb_inttable_lookupptr(&cache->methods, frame->m, &v); - UPB_ASSUME(ok); - method = upb_value_getconstptr(v); - - frame->name_table = &method->name_table; -} - -/* There are GCC/Clang built-ins for overflow checking which we could start - * using if there was any performance benefit to it. */ - -static bool checked_add(size_t a, size_t b, size_t *c) { - if (SIZE_MAX - a < b) return false; - *c = a + b; - return true; -} - -static size_t saturating_multiply(size_t a, size_t b) { - /* size_t is unsigned, so this is defined behavior even on overflow. */ - size_t ret = a * b; - if (b != 0 && ret / b != a) { - ret = SIZE_MAX; - } - return ret; -} - - -/* Base64 decoding ************************************************************/ - -/* TODO(haberman): make this streaming. */ - -static const signed char b64table[] = { - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 62/*+*/, -1, -1, -1, 63/*/ */, - 52/*0*/, 53/*1*/, 54/*2*/, 55/*3*/, 56/*4*/, 57/*5*/, 58/*6*/, 59/*7*/, - 60/*8*/, 61/*9*/, -1, -1, -1, -1, -1, -1, - -1, 0/*A*/, 1/*B*/, 2/*C*/, 3/*D*/, 4/*E*/, 5/*F*/, 6/*G*/, - 07/*H*/, 8/*I*/, 9/*J*/, 10/*K*/, 11/*L*/, 12/*M*/, 13/*N*/, 14/*O*/, - 15/*P*/, 16/*Q*/, 17/*R*/, 18/*S*/, 19/*T*/, 20/*U*/, 21/*V*/, 22/*W*/, - 23/*X*/, 24/*Y*/, 25/*Z*/, -1, -1, -1, -1, -1, - -1, 26/*a*/, 27/*b*/, 28/*c*/, 29/*d*/, 30/*e*/, 31/*f*/, 32/*g*/, - 33/*h*/, 34/*i*/, 35/*j*/, 36/*k*/, 37/*l*/, 38/*m*/, 39/*n*/, 40/*o*/, - 41/*p*/, 42/*q*/, 43/*r*/, 44/*s*/, 45/*t*/, 46/*u*/, 47/*v*/, 48/*w*/, - 49/*x*/, 50/*y*/, 51/*z*/, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 -}; - -/* Returns the table value sign-extended to 32 bits. Knowing that the upper - * bits will be 1 for unrecognized characters makes it easier to check for - * this error condition later (see below). */ -int32_t b64lookup(unsigned char ch) { return b64table[ch]; } - -/* Returns true if the given character is not a valid base64 character or - * padding. */ -bool nonbase64(unsigned char ch) { return b64lookup(ch) == -1 && ch != '='; } - -static bool base64_push(upb_json_parser *p, upb_selector_t sel, const char *ptr, - size_t len) { - const char *limit = ptr + len; - for (; ptr < limit; ptr += 4) { - uint32_t val; - char output[3]; - - if (limit - ptr < 4) { - upb_status_seterrf(p->status, - "Base64 input for bytes field not a multiple of 4: %s", - upb_fielddef_name(p->top->f)); - return false; - } - - val = b64lookup(ptr[0]) << 18 | - b64lookup(ptr[1]) << 12 | - b64lookup(ptr[2]) << 6 | - b64lookup(ptr[3]); - - /* Test the upper bit; returns true if any of the characters returned -1. */ - if (val & 0x80000000) { - goto otherchar; - } - - output[0] = val >> 16; - output[1] = (val >> 8) & 0xff; - output[2] = val & 0xff; - upb_sink_putstring(p->top->sink, sel, output, 3, NULL); - } - return true; - -otherchar: - if (nonbase64(ptr[0]) || nonbase64(ptr[1]) || nonbase64(ptr[2]) || - nonbase64(ptr[3]) ) { - upb_status_seterrf(p->status, - "Non-base64 characters in bytes field: %s", - upb_fielddef_name(p->top->f)); - return false; - } if (ptr[2] == '=') { - uint32_t val; - char output; - - /* Last group contains only two input bytes, one output byte. */ - if (ptr[0] == '=' || ptr[1] == '=' || ptr[3] != '=') { - goto badpadding; - } - - val = b64lookup(ptr[0]) << 18 | - b64lookup(ptr[1]) << 12; - - UPB_ASSERT(!(val & 0x80000000)); - output = val >> 16; - upb_sink_putstring(p->top->sink, sel, &output, 1, NULL); - return true; - } else { - uint32_t val; - char output[2]; - - /* Last group contains only three input bytes, two output bytes. */ - if (ptr[0] == '=' || ptr[1] == '=' || ptr[2] == '=') { - goto badpadding; - } - - val = b64lookup(ptr[0]) << 18 | - b64lookup(ptr[1]) << 12 | - b64lookup(ptr[2]) << 6; - - output[0] = val >> 16; - output[1] = (val >> 8) & 0xff; - upb_sink_putstring(p->top->sink, sel, output, 2, NULL); - return true; - } - -badpadding: - upb_status_seterrf(p->status, - "Incorrect base64 padding for field: %s (%.*s)", - upb_fielddef_name(p->top->f), - 4, ptr); - return false; -} - - -/* Accumulate buffer **********************************************************/ - -/* Functionality for accumulating a buffer. - * - * Some parts of the parser need an entire value as a contiguous string. For - * example, to look up a member name in a hash table, or to turn a string into - * a number, the relevant library routines need the input string to be in - * contiguous memory, even if the value spanned two or more buffers in the - * input. These routines handle that. - * - * In the common case we can just point to the input buffer to get this - * contiguous string and avoid any actual copy. So we optimistically begin - * this way. But there are a few cases where we must instead copy into a - * separate buffer: - * - * 1. The string was not contiguous in the input (it spanned buffers). - * - * 2. The string included escape sequences that need to be interpreted to get - * the true value in a contiguous buffer. */ - -static void assert_accumulate_empty(upb_json_parser *p) { - UPB_ASSERT(p->accumulated == NULL); - UPB_ASSERT(p->accumulated_len == 0); -} - -static void accumulate_clear(upb_json_parser *p) { - p->accumulated = NULL; - p->accumulated_len = 0; -} - -/* Used internally by accumulate_append(). */ -static bool accumulate_realloc(upb_json_parser *p, size_t need) { - void *mem; - size_t old_size = p->accumulate_buf_size; - size_t new_size = UPB_MAX(old_size, 128); - while (new_size < need) { - new_size = saturating_multiply(new_size, 2); - } - - mem = upb_arena_realloc(p->arena, p->accumulate_buf, old_size, new_size); - if (!mem) { - upb_status_seterrmsg(p->status, "Out of memory allocating buffer."); - return false; - } - - p->accumulate_buf = mem; - p->accumulate_buf_size = new_size; - return true; -} - -/* Logically appends the given data to the append buffer. - * If "can_alias" is true, we will try to avoid actually copying, but the buffer - * must be valid until the next accumulate_append() call (if any). */ -static bool accumulate_append(upb_json_parser *p, const char *buf, size_t len, - bool can_alias) { - size_t need; - - if (!p->accumulated && can_alias) { - p->accumulated = buf; - p->accumulated_len = len; - return true; - } - - if (!checked_add(p->accumulated_len, len, &need)) { - upb_status_seterrmsg(p->status, "Integer overflow."); - return false; - } - - if (need > p->accumulate_buf_size && !accumulate_realloc(p, need)) { - return false; - } - - if (p->accumulated != p->accumulate_buf) { - if (p->accumulated_len) { - memcpy(p->accumulate_buf, p->accumulated, p->accumulated_len); - } - p->accumulated = p->accumulate_buf; - } - - memcpy(p->accumulate_buf + p->accumulated_len, buf, len); - p->accumulated_len += len; - return true; -} - -/* Returns a pointer to the data accumulated since the last accumulate_clear() - * call, and writes the length to *len. This with point either to the input - * buffer or a temporary accumulate buffer. */ -static const char *accumulate_getptr(upb_json_parser *p, size_t *len) { - UPB_ASSERT(p->accumulated); - *len = p->accumulated_len; - return p->accumulated; -} - - -/* Mult-part text data ********************************************************/ - -/* When we have text data in the input, it can often come in multiple segments. - * For example, there may be some raw string data followed by an escape - * sequence. The two segments are processed with different logic. Also buffer - * seams in the input can cause multiple segments. - * - * As we see segments, there are two main cases for how we want to process them: - * - * 1. we want to push the captured input directly to string handlers. - * - * 2. we need to accumulate all the parts into a contiguous buffer for further - * processing (field name lookup, string->number conversion, etc). */ - -/* This is the set of states for p->multipart_state. */ -enum { - /* We are not currently processing multipart data. */ - MULTIPART_INACTIVE = 0, - - /* We are processing multipart data by accumulating it into a contiguous - * buffer. */ - MULTIPART_ACCUMULATE = 1, - - /* We are processing multipart data by pushing each part directly to the - * current string handlers. */ - MULTIPART_PUSHEAGERLY = 2 -}; - -/* Start a multi-part text value where we accumulate the data for processing at - * the end. */ -static void multipart_startaccum(upb_json_parser *p) { - assert_accumulate_empty(p); - UPB_ASSERT(p->multipart_state == MULTIPART_INACTIVE); - p->multipart_state = MULTIPART_ACCUMULATE; -} - -/* Start a multi-part text value where we immediately push text data to a string - * value with the given selector. */ -static void multipart_start(upb_json_parser *p, upb_selector_t sel) { - assert_accumulate_empty(p); - UPB_ASSERT(p->multipart_state == MULTIPART_INACTIVE); - p->multipart_state = MULTIPART_PUSHEAGERLY; - p->string_selector = sel; -} - -static bool multipart_text(upb_json_parser *p, const char *buf, size_t len, - bool can_alias) { - switch (p->multipart_state) { - case MULTIPART_INACTIVE: - upb_status_seterrmsg( - p->status, "Internal error: unexpected state MULTIPART_INACTIVE"); - return false; - - case MULTIPART_ACCUMULATE: - if (!accumulate_append(p, buf, len, can_alias)) { - return false; - } - break; - - case MULTIPART_PUSHEAGERLY: { - const upb_bufhandle *handle = can_alias ? p->handle : NULL; - upb_sink_putstring(p->top->sink, p->string_selector, buf, len, handle); - break; - } - } - - return true; -} - -/* Note: this invalidates the accumulate buffer! Call only after reading its - * contents. */ -static void multipart_end(upb_json_parser *p) { - /* This is false sometimes. Probably a bug of some sort, but this code is - * intended for deletion soon. */ - /* UPB_ASSERT(p->multipart_state != MULTIPART_INACTIVE); */ - p->multipart_state = MULTIPART_INACTIVE; - accumulate_clear(p); -} - - -/* Input capture **************************************************************/ - -/* Functionality for capturing a region of the input as text. Gracefully - * handles the case where a buffer seam occurs in the middle of the captured - * region. */ - -static void capture_begin(upb_json_parser *p, const char *ptr) { - UPB_ASSERT(p->multipart_state != MULTIPART_INACTIVE); - UPB_ASSERT(p->capture == NULL); - p->capture = ptr; -} - -static bool capture_end(upb_json_parser *p, const char *ptr) { - UPB_ASSERT(p->capture); - if (multipart_text(p, p->capture, ptr - p->capture, true)) { - p->capture = NULL; - return true; - } else { - return false; - } -} - -/* This is called at the end of each input buffer (ie. when we have hit a - * buffer seam). If we are in the middle of capturing the input, this - * processes the unprocessed capture region. */ -static void capture_suspend(upb_json_parser *p, const char **ptr) { - if (!p->capture) return; - - if (multipart_text(p, p->capture, *ptr - p->capture, false)) { - /* We use this as a signal that we were in the middle of capturing, and - * that capturing should resume at the beginning of the next buffer. - * - * We can't use *ptr here, because we have no guarantee that this pointer - * will be valid when we resume (if the underlying memory is freed, then - * using the pointer at all, even to compare to NULL, is likely undefined - * behavior). */ - p->capture = &suspend_capture; - } else { - /* Need to back up the pointer to the beginning of the capture, since - * we were not able to actually preserve it. */ - *ptr = p->capture; - } -} - -static void capture_resume(upb_json_parser *p, const char *ptr) { - if (p->capture) { - UPB_ASSERT(p->capture == &suspend_capture); - p->capture = ptr; - } -} - - -/* Callbacks from the parser **************************************************/ - -/* These are the functions called directly from the parser itself. - * We define these in the same order as their declarations in the parser. */ - -static char escape_char(char in) { - switch (in) { - case 'r': return '\r'; - case 't': return '\t'; - case 'n': return '\n'; - case 'f': return '\f'; - case 'b': return '\b'; - case '/': return '/'; - case '"': return '"'; - case '\\': return '\\'; - default: - UPB_ASSERT(0); - return 'x'; - } -} - -static bool escape(upb_json_parser *p, const char *ptr) { - char ch = escape_char(*ptr); - return multipart_text(p, &ch, 1, false); -} - -static void start_hex(upb_json_parser *p) { - p->digit = 0; -} - -static void hexdigit(upb_json_parser *p, const char *ptr) { - char ch = *ptr; - - p->digit <<= 4; - - if (ch >= '0' && ch <= '9') { - p->digit += (ch - '0'); - } else if (ch >= 'a' && ch <= 'f') { - p->digit += ((ch - 'a') + 10); - } else { - UPB_ASSERT(ch >= 'A' && ch <= 'F'); - p->digit += ((ch - 'A') + 10); - } -} - -static bool end_hex(upb_json_parser *p) { - uint32_t codepoint = p->digit; - - /* emit the codepoint as UTF-8. */ - char utf8[3]; /* support \u0000 -- \uFFFF -- need only three bytes. */ - int length = 0; - if (codepoint <= 0x7F) { - utf8[0] = codepoint; - length = 1; - } else if (codepoint <= 0x07FF) { - utf8[1] = (codepoint & 0x3F) | 0x80; - codepoint >>= 6; - utf8[0] = (codepoint & 0x1F) | 0xC0; - length = 2; - } else /* codepoint <= 0xFFFF */ { - utf8[2] = (codepoint & 0x3F) | 0x80; - codepoint >>= 6; - utf8[1] = (codepoint & 0x3F) | 0x80; - codepoint >>= 6; - utf8[0] = (codepoint & 0x0F) | 0xE0; - length = 3; - } - /* TODO(haberman): Handle high surrogates: if codepoint is a high surrogate - * we have to wait for the next escape to get the full code point). */ - - return multipart_text(p, utf8, length, false); -} - -static void start_text(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_text(upb_json_parser *p, const char *ptr) { - return capture_end(p, ptr); -} - -static bool start_number(upb_json_parser *p, const char *ptr) { - if (is_top_level(p)) { - if (is_number_wrapper_object(p)) { - start_wrapper_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_NUMBERVALUE); - } else { - return false; - } - } else if (does_number_wrapper_start(p)) { - if (!start_subobject(p)) { - return false; - } - start_wrapper_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_NUMBERVALUE); - } - - multipart_startaccum(p); - capture_begin(p, ptr); - return true; -} - -static bool parse_number(upb_json_parser *p, bool is_quoted); - -static bool end_number_nontop(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - - if (p->top->f == NULL) { - multipart_end(p); - return true; - } - - return parse_number(p, false); -} - -static bool end_number(upb_json_parser *p, const char *ptr) { - if (!end_number_nontop(p, ptr)) { - return false; - } - - if (does_number_wrapper_end(p)) { - end_wrapper_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - return true; -} - -/* |buf| is NULL-terminated. |buf| itself will never include quotes; - * |is_quoted| tells us whether this text originally appeared inside quotes. */ -static bool parse_number_from_buffer(upb_json_parser *p, const char *buf, - bool is_quoted) { - size_t len = strlen(buf); - const char *bufend = buf + len; - char *end; - upb_fieldtype_t type = upb_fielddef_type(p->top->f); - double val; - double dummy; - double inf = INFINITY; - - errno = 0; - - if (len == 0 || buf[0] == ' ') { - return false; - } - - /* For integer types, first try parsing with integer-specific routines. - * If these succeed, they will be more accurate for int64/uint64 than - * strtod(). - */ - switch (type) { - case UPB_TYPE_ENUM: - case UPB_TYPE_INT32: { - long val = strtol(buf, &end, 0); - if (errno == ERANGE || end != bufend) { - break; - } else if (val > INT32_MAX || val < INT32_MIN) { - return false; - } else { - upb_sink_putint32(p->top->sink, parser_getsel(p), (int32_t)val); - return true; - } - UPB_UNREACHABLE(); - } - case UPB_TYPE_UINT32: { - unsigned long val = strtoul(buf, &end, 0); - if (end != bufend) { - break; - } else if (val > UINT32_MAX || errno == ERANGE) { - return false; - } else { - upb_sink_putuint32(p->top->sink, parser_getsel(p), (uint32_t)val); - return true; - } - UPB_UNREACHABLE(); - } - /* XXX: We can't handle [u]int64 properly on 32-bit machines because - * strto[u]ll isn't in C89. */ - case UPB_TYPE_INT64: { - long val = strtol(buf, &end, 0); - if (errno == ERANGE || end != bufend) { - break; - } else { - upb_sink_putint64(p->top->sink, parser_getsel(p), val); - return true; - } - UPB_UNREACHABLE(); - } - case UPB_TYPE_UINT64: { - unsigned long val = strtoul(p->accumulated, &end, 0); - if (end != bufend) { - break; - } else if (errno == ERANGE) { - return false; - } else { - upb_sink_putuint64(p->top->sink, parser_getsel(p), val); - return true; - } - UPB_UNREACHABLE(); - } - default: - break; - } - - if (type != UPB_TYPE_DOUBLE && type != UPB_TYPE_FLOAT && is_quoted) { - /* Quoted numbers for integer types are not allowed to be in double form. */ - return false; - } - - if (len == strlen("Infinity") && strcmp(buf, "Infinity") == 0) { - /* C89 does not have an INFINITY macro. */ - val = inf; - } else if (len == strlen("-Infinity") && strcmp(buf, "-Infinity") == 0) { - val = -inf; - } else { - val = strtod(buf, &end); - if (errno == ERANGE || end != bufend) { - return false; - } - } - - switch (type) { -#define CASE(capitaltype, smalltype, ctype, min, max) \ - case UPB_TYPE_ ## capitaltype: { \ - if (modf(val, &dummy) != 0 || val > max || val < min) { \ - return false; \ - } else { \ - upb_sink_put ## smalltype(p->top->sink, parser_getsel(p), \ - (ctype)val); \ - return true; \ - } \ - break; \ - } - case UPB_TYPE_ENUM: - CASE(INT32, int32, int32_t, INT32_MIN, INT32_MAX); - CASE(INT64, int64, int64_t, INT64_MIN, INT64_MAX); - CASE(UINT32, uint32, uint32_t, 0, UINT32_MAX); - CASE(UINT64, uint64, uint64_t, 0, UINT64_MAX); -#undef CASE - - case UPB_TYPE_DOUBLE: - upb_sink_putdouble(p->top->sink, parser_getsel(p), val); - return true; - case UPB_TYPE_FLOAT: - if ((val > FLT_MAX || val < -FLT_MAX) && val != inf && val != -inf) { - return false; - } else { - upb_sink_putfloat(p->top->sink, parser_getsel(p), val); - return true; - } - default: - return false; - } -} - -static bool parse_number(upb_json_parser *p, bool is_quoted) { - size_t len; - const char *buf; - - /* strtol() and friends unfortunately do not support specifying the length of - * the input string, so we need to force a copy into a NULL-terminated buffer. */ - if (!multipart_text(p, "\0", 1, false)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - if (parse_number_from_buffer(p, buf, is_quoted)) { - multipart_end(p); - return true; - } else { - upb_status_seterrf(p->status, "error parsing number: %s", buf); - multipart_end(p); - return false; - } -} - -static bool parser_putbool(upb_json_parser *p, bool val) { - bool ok; - - if (p->top->f == NULL) { - return true; - } - - if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL) { - upb_status_seterrf(p->status, - "Boolean value specified for non-bool field: %s", - upb_fielddef_name(p->top->f)); - return false; - } - - ok = upb_sink_putbool(p->top->sink, parser_getsel(p), val); - UPB_ASSERT(ok); - - return true; -} - -static bool end_bool(upb_json_parser *p, bool val) { - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_BOOLVALUE)) { - start_wrapper_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_BOOLVALUE); - } else { - return false; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_BOOLVALUE)) { - if (!start_subobject(p)) { - return false; - } - start_wrapper_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_BOOLVALUE); - } - - if (p->top->is_unknown_field) { - return true; - } - - if (!parser_putbool(p, val)) { - return false; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_BOOLVALUE)) { - end_wrapper_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - return true; -} - -static bool end_null(upb_json_parser *p) { - const char *zero_ptr = "0"; - - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_NULLVALUE); - } else { - return true; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_NULLVALUE); - } else { - return true; - } - - /* Fill null_value field. */ - multipart_startaccum(p); - capture_begin(p, zero_ptr); - capture_end(p, zero_ptr + 1); - parse_number(p, false); - - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - - return true; -} - -static bool start_any_stringval(upb_json_parser *p) { - multipart_startaccum(p); - return true; -} - -static bool start_stringval(upb_json_parser *p) { - if (is_top_level(p)) { - if (is_string_wrapper_object(p) || - is_number_wrapper_object(p)) { - start_wrapper_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_FIELDMASK)) { - start_fieldmask_object(p); - return true; - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_msg(p, UPB_WELLKNOWN_DURATION)) { - start_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_STRINGVALUE); - } else { - return false; - } - } else if (does_string_wrapper_start(p) || - does_number_wrapper_start(p)) { - if (!start_subobject(p)) { - return false; - } - start_wrapper_object(p); - } else if (does_fieldmask_start(p)) { - if (!start_subobject(p)) { - return false; - } - start_fieldmask_object(p); - return true; - } else if (is_wellknown_field(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_field(p, UPB_WELLKNOWN_DURATION)) { - if (!start_subobject(p)) { - return false; - } - start_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) { - return false; - } - start_value_object(p, VALUE_STRINGVALUE); - } - - if (p->top->f == NULL) { - multipart_startaccum(p); - return true; - } - - if (p->top->is_any) { - return start_any_stringval(p); - } - - if (upb_fielddef_isstring(p->top->f)) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - if (!check_stack(p)) return false; - - /* Start a new parser frame: parser frames correspond one-to-one with - * handler frames, and string events occur in a sub-frame. */ - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - inner->m = p->top->m; - inner->f = p->top->f; - p->top = inner; - - if (upb_fielddef_type(p->top->f) == UPB_TYPE_STRING) { - /* For STRING fields we push data directly to the handlers as it is - * parsed. We don't do this yet for BYTES fields, because our base64 - * decoder is not streaming. - * - * TODO(haberman): make base64 decoding streaming also. */ - multipart_start(p, getsel_for_handlertype(p, UPB_HANDLER_STRING)); - return true; - } else { - multipart_startaccum(p); - return true; - } - } else if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL && - upb_fielddef_type(p->top->f) != UPB_TYPE_MESSAGE) { - /* No need to push a frame -- numeric values in quotes remain in the - * current parser frame. These values must accmulate so we can convert - * them all at once at the end. */ - multipart_startaccum(p); - return true; - } else { - upb_status_seterrf(p->status, - "String specified for bool or submessage field: %s", - upb_fielddef_name(p->top->f)); - return false; - } -} - -static bool end_any_stringval(upb_json_parser *p) { - size_t len; - const char *buf = accumulate_getptr(p, &len); - - /* Set type_url */ - upb_selector_t sel; - upb_jsonparser_frame *inner; - if (!check_stack(p)) return false; - inner = p->top + 1; - - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); - upb_sink_putstring(inner->sink, sel, buf, len, NULL); - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(inner->sink, sel); - - multipart_end(p); - - /* Resolve type url */ - if (strncmp(buf, "type.googleapis.com/", 20) == 0 && len > 20) { - const upb_msgdef *payload_type = NULL; - buf += 20; - len -= 20; - - payload_type = upb_symtab_lookupmsg2(p->symtab, buf, len); - if (payload_type == NULL) { - upb_status_seterrf( - p->status, "Cannot find packed type: %.*s\n", (int)len, buf); - return false; - } - - json_parser_any_frame_set_payload_type(p, p->top->any_frame, payload_type); - - return true; - } else { - upb_status_seterrf( - p->status, "Invalid type url: %.*s\n", (int)len, buf); - return false; - } -} - -static bool end_stringval_nontop(upb_json_parser *p) { - bool ok = true; - - if (is_wellknown_msg(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_msg(p, UPB_WELLKNOWN_DURATION)) { - multipart_end(p); - return true; - } - - if (p->top->f == NULL) { - multipart_end(p); - return true; - } - - if (p->top->is_any) { - return end_any_stringval(p); - } - - switch (upb_fielddef_type(p->top->f)) { - case UPB_TYPE_BYTES: - if (!base64_push(p, getsel_for_handlertype(p, UPB_HANDLER_STRING), - p->accumulated, p->accumulated_len)) { - return false; - } - /* Fall through. */ - - case UPB_TYPE_STRING: { - upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(p->top->sink, sel); - p->top--; - break; - } - - case UPB_TYPE_ENUM: { - /* Resolve enum symbolic name to integer value. */ - const upb_enumdef *enumdef = upb_fielddef_enumsubdef(p->top->f); - - size_t len; - const char *buf = accumulate_getptr(p, &len); - - int32_t int_val = 0; - ok = upb_enumdef_ntoi(enumdef, buf, len, &int_val); - - if (ok) { - upb_selector_t sel = parser_getsel(p); - upb_sink_putint32(p->top->sink, sel, int_val); - } else { - if (p->ignore_json_unknown) { - ok = true; - /* TODO(teboring): Should also clean this field. */ - } else { - upb_status_seterrf(p->status, "Enum value unknown: '%.*s'", len, buf); - } - } - - break; - } - - case UPB_TYPE_INT32: - case UPB_TYPE_INT64: - case UPB_TYPE_UINT32: - case UPB_TYPE_UINT64: - case UPB_TYPE_DOUBLE: - case UPB_TYPE_FLOAT: - ok = parse_number(p, true); - break; - - default: - UPB_ASSERT(false); - upb_status_seterrmsg(p->status, "Internal error in JSON decoder"); - ok = false; - break; - } - - multipart_end(p); - - return ok; -} - -static bool end_stringval(upb_json_parser *p) { - /* FieldMask's stringvals have been ended when handling them. Only need to - * close FieldMask here.*/ - if (does_fieldmask_end(p)) { - end_fieldmask_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (!end_stringval_nontop(p)) { - return false; - } - - if (does_string_wrapper_end(p) || - does_number_wrapper_end(p)) { - end_wrapper_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_TIMESTAMP) || - is_wellknown_msg(p, UPB_WELLKNOWN_DURATION) || - is_wellknown_msg(p, UPB_WELLKNOWN_FIELDMASK)) { - end_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - return true; - } - - return true; -} - -static void start_duration_base(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_duration_base(upb_json_parser *p, const char *ptr) { - size_t len; - const char *buf; - char seconds_buf[14]; - char nanos_buf[12]; - char *end; - int64_t seconds = 0; - int32_t nanos = 0; - double val = 0.0; - const char *seconds_membername = "seconds"; - const char *nanos_membername = "nanos"; - size_t fraction_start; - - if (!capture_end(p, ptr)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - memset(seconds_buf, 0, 14); - memset(nanos_buf, 0, 12); - - /* Find out base end. The maximus duration is 315576000000, which cannot be - * represented by double without losing precision. Thus, we need to handle - * fraction and base separately. */ - for (fraction_start = 0; fraction_start < len && buf[fraction_start] != '.'; - fraction_start++); - - /* Parse base */ - memcpy(seconds_buf, buf, fraction_start); - seconds = strtol(seconds_buf, &end, 10); - if (errno == ERANGE || end != seconds_buf + fraction_start) { - upb_status_seterrf(p->status, "error parsing duration: %s", - seconds_buf); - return false; - } - - if (seconds > 315576000000) { - upb_status_seterrf(p->status, "error parsing duration: " - "maximum acceptable value is " - "315576000000"); - return false; - } - - if (seconds < -315576000000) { - upb_status_seterrf(p->status, "error parsing duration: " - "minimum acceptable value is " - "-315576000000"); - return false; - } - - /* Parse fraction */ - nanos_buf[0] = '0'; - memcpy(nanos_buf + 1, buf + fraction_start, len - fraction_start); - val = strtod(nanos_buf, &end); - if (errno == ERANGE || end != nanos_buf + len - fraction_start + 1) { - upb_status_seterrf(p->status, "error parsing duration: %s", - nanos_buf); - return false; - } - - nanos = val * 1000000000; - if (seconds < 0) nanos = -nanos; - - /* Clean up buffer */ - multipart_end(p); - - /* Set seconds */ - start_member(p); - capture_begin(p, seconds_membername); - capture_end(p, seconds_membername + 7); - end_membername(p); - upb_sink_putint64(p->top->sink, parser_getsel(p), seconds); - end_member(p); - - /* Set nanos */ - start_member(p); - capture_begin(p, nanos_membername); - capture_end(p, nanos_membername + 5); - end_membername(p); - upb_sink_putint32(p->top->sink, parser_getsel(p), nanos); - end_member(p); - - /* Continue previous arena */ - multipart_startaccum(p); - - return true; -} - -static int parse_timestamp_number(upb_json_parser *p) { - size_t len; - const char *buf; - int val; - - /* atoi() and friends unfortunately do not support specifying the length of - * the input string, so we need to force a copy into a NULL-terminated buffer. */ - multipart_text(p, "\0", 1, false); - - buf = accumulate_getptr(p, &len); - val = atoi(buf); - multipart_end(p); - multipart_startaccum(p); - - return val; -} - -static void start_year(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_year(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_year = parse_timestamp_number(p) - 1900; - return true; -} - -static void start_month(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_month(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_mon = parse_timestamp_number(p) - 1; - return true; -} - -static void start_day(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_day(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_mday = parse_timestamp_number(p); - return true; -} - -static void start_hour(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_hour(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_hour = parse_timestamp_number(p); - return true; -} - -static void start_minute(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_minute(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_min = parse_timestamp_number(p); - return true; -} - -static void start_second(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_second(upb_json_parser *p, const char *ptr) { - if (!capture_end(p, ptr)) { - return false; - } - p->tm.tm_sec = parse_timestamp_number(p); - return true; -} - -static void start_timestamp_base(upb_json_parser *p) { - memset(&p->tm, 0, sizeof(struct tm)); -} - -static void start_timestamp_fraction(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_timestamp_fraction(upb_json_parser *p, const char *ptr) { - size_t len; - const char *buf; - char nanos_buf[12]; - char *end; - double val = 0.0; - int32_t nanos; - const char *nanos_membername = "nanos"; - - memset(nanos_buf, 0, 12); - - if (!capture_end(p, ptr)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - if (len > 10) { - upb_status_seterrf(p->status, - "error parsing timestamp: at most 9-digit fraction."); - return false; - } - - /* Parse nanos */ - nanos_buf[0] = '0'; - memcpy(nanos_buf + 1, buf, len); - val = strtod(nanos_buf, &end); - - if (errno == ERANGE || end != nanos_buf + len + 1) { - upb_status_seterrf(p->status, "error parsing timestamp nanos: %s", - nanos_buf); - return false; - } - - nanos = val * 1000000000; - - /* Clean up previous environment */ - multipart_end(p); - - /* Set nanos */ - start_member(p); - capture_begin(p, nanos_membername); - capture_end(p, nanos_membername + 5); - end_membername(p); - upb_sink_putint32(p->top->sink, parser_getsel(p), nanos); - end_member(p); - - /* Continue previous environment */ - multipart_startaccum(p); - - return true; -} - -static void start_timestamp_zone(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -/* epoch_days(1970, 1, 1) == 1970-01-01 == 0. */ -static int epoch_days(int year, int month, int day) { - static const uint16_t month_yday[12] = {0, 31, 59, 90, 120, 151, - 181, 212, 243, 273, 304, 334}; - uint32_t year_adj = year + 4800; /* Ensure positive year, multiple of 400. */ - uint32_t febs = year_adj - (month <= 2 ? 1 : 0); /* Februaries since base. */ - uint32_t leap_days = 1 + (febs / 4) - (febs / 100) + (febs / 400); - uint32_t days = 365 * year_adj + leap_days + month_yday[month - 1] + day - 1; - return days - 2472692; /* Adjust to Unix epoch. */ -} - -static int64_t upb_timegm(const struct tm *tp) { - int64_t ret = epoch_days(tp->tm_year + 1900, tp->tm_mon + 1, tp->tm_mday); - ret = (ret * 24) + tp->tm_hour; - ret = (ret * 60) + tp->tm_min; - ret = (ret * 60) + tp->tm_sec; - return ret; -} - -static bool end_timestamp_zone(upb_json_parser *p, const char *ptr) { - size_t len; - const char *buf; - int hours; - int64_t seconds; - const char *seconds_membername = "seconds"; - - if (!capture_end(p, ptr)) { - return false; - } - - buf = accumulate_getptr(p, &len); - - if (buf[0] != 'Z') { - if (sscanf(buf + 1, "%2d:00", &hours) != 1) { - upb_status_seterrf(p->status, "error parsing timestamp offset"); - return false; - } - - if (buf[0] == '+') { - hours = -hours; - } - - p->tm.tm_hour += hours; - } - - /* Normalize tm */ - seconds = upb_timegm(&p->tm); - - /* Check timestamp boundary */ - if (seconds < -62135596800) { - upb_status_seterrf(p->status, "error parsing timestamp: " - "minimum acceptable value is " - "0001-01-01T00:00:00Z"); - return false; - } - - /* Clean up previous environment */ - multipart_end(p); - - /* Set seconds */ - start_member(p); - capture_begin(p, seconds_membername); - capture_end(p, seconds_membername + 7); - end_membername(p); - upb_sink_putint64(p->top->sink, parser_getsel(p), seconds); - end_member(p); - - /* Continue previous environment */ - multipart_startaccum(p); - - return true; -} - -static void start_fieldmask_path_text(upb_json_parser *p, const char *ptr) { - capture_begin(p, ptr); -} - -static bool end_fieldmask_path_text(upb_json_parser *p, const char *ptr) { - return capture_end(p, ptr); -} - -static bool start_fieldmask_path(upb_json_parser *p) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - if (!check_stack(p)) return false; - - /* Start a new parser frame: parser frames correspond one-to-one with - * handler frames, and string events occur in a sub-frame. */ - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - inner->m = p->top->m; - inner->f = p->top->f; - p->top = inner; - - multipart_startaccum(p); - return true; -} - -static bool lower_camel_push( - upb_json_parser *p, upb_selector_t sel, const char *ptr, size_t len) { - const char *limit = ptr + len; - bool first = true; - for (;ptr < limit; ptr++) { - if (*ptr >= 'A' && *ptr <= 'Z' && !first) { - char lower = tolower(*ptr); - upb_sink_putstring(p->top->sink, sel, "_", 1, NULL); - upb_sink_putstring(p->top->sink, sel, &lower, 1, NULL); - } else { - upb_sink_putstring(p->top->sink, sel, ptr, 1, NULL); - } - first = false; - } - return true; -} - -static bool end_fieldmask_path(upb_json_parser *p) { - upb_selector_t sel; - - if (!lower_camel_push( - p, getsel_for_handlertype(p, UPB_HANDLER_STRING), - p->accumulated, p->accumulated_len)) { - return false; - } - - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(p->top->sink, sel); - p->top--; - - multipart_end(p); - return true; -} - -static void start_member(upb_json_parser *p) { - UPB_ASSERT(!p->top->f); - multipart_startaccum(p); -} - -/* Helper: invoked during parse_mapentry() to emit the mapentry message's key - * field based on the current contents of the accumulate buffer. */ -static bool parse_mapentry_key(upb_json_parser *p) { - - size_t len; - const char *buf = accumulate_getptr(p, &len); - - /* Emit the key field. We do a bit of ad-hoc parsing here because the - * parser state machine has already decided that this is a string field - * name, and we are reinterpreting it as some arbitrary key type. In - * particular, integer and bool keys are quoted, so we need to parse the - * quoted string contents here. */ - - p->top->f = upb_msgdef_itof(p->top->m, UPB_MAPENTRY_KEY); - if (p->top->f == NULL) { - upb_status_seterrmsg(p->status, "mapentry message has no key"); - return false; - } - switch (upb_fielddef_type(p->top->f)) { - case UPB_TYPE_INT32: - case UPB_TYPE_INT64: - case UPB_TYPE_UINT32: - case UPB_TYPE_UINT64: - /* Invoke end_number. The accum buffer has the number's text already. */ - if (!parse_number(p, true)) { - return false; - } - break; - case UPB_TYPE_BOOL: - if (len == 4 && !strncmp(buf, "true", 4)) { - if (!parser_putbool(p, true)) { - return false; - } - } else if (len == 5 && !strncmp(buf, "false", 5)) { - if (!parser_putbool(p, false)) { - return false; - } - } else { - upb_status_seterrmsg(p->status, - "Map bool key not 'true' or 'false'"); - return false; - } - multipart_end(p); - break; - case UPB_TYPE_STRING: - case UPB_TYPE_BYTES: { - upb_sink subsink; - upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, len, &subsink); - sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); - upb_sink_putstring(subsink, sel, buf, len, NULL); - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(subsink, sel); - multipart_end(p); - break; - } - default: - upb_status_seterrmsg(p->status, "Invalid field type for map key"); - return false; - } - - return true; -} - -/* Helper: emit one map entry (as a submessage in the map field sequence). This - * is invoked from end_membername(), at the end of the map entry's key string, - * with the map key in the accumulate buffer. It parses the key from that - * buffer, emits the handler calls to start the mapentry submessage (setting up - * its subframe in the process), and sets up state in the subframe so that the - * value parser (invoked next) will emit the mapentry's value field and then - * end the mapentry message. */ - -static bool handle_mapentry(upb_json_parser *p) { - const upb_fielddef *mapfield; - const upb_msgdef *mapentrymsg; - upb_jsonparser_frame *inner; - upb_selector_t sel; - - /* Map entry: p->top->sink is the seq frame, so we need to start a frame - * for the mapentry itself, and then set |f| in that frame so that the map - * value field is parsed, and also set a flag to end the frame after the - * map-entry value is parsed. */ - if (!check_stack(p)) return false; - - mapfield = p->top->mapfield; - mapentrymsg = upb_fielddef_msgsubdef(mapfield); - - inner = start_jsonparser_frame(p); - p->top->f = mapfield; - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSUBMSG); - upb_sink_startsubmsg(p->top->sink, sel, &inner->sink); - inner->m = mapentrymsg; - inner->mapfield = mapfield; - - /* Don't set this to true *yet* -- we reuse parsing handlers below to push - * the key field value to the sink, and these handlers will pop the frame - * if they see is_mapentry (when invoked by the parser state machine, they - * would have just seen the map-entry value, not key). */ - inner->is_mapentry = false; - p->top = inner; - - /* send STARTMSG in submsg frame. */ - upb_sink_startmsg(p->top->sink); - - parse_mapentry_key(p); - - /* Set up the value field to receive the map-entry value. */ - p->top->f = upb_msgdef_itof(p->top->m, UPB_MAPENTRY_VALUE); - p->top->is_mapentry = true; /* set up to pop frame after value is parsed. */ - p->top->mapfield = mapfield; - if (p->top->f == NULL) { - upb_status_seterrmsg(p->status, "mapentry message has no value"); - return false; - } - - return true; -} - -static bool end_membername(upb_json_parser *p) { - UPB_ASSERT(!p->top->f); - - if (!p->top->m) { - p->top->is_unknown_field = true; - multipart_end(p); - return true; - } - - if (p->top->is_any) { - return end_any_membername(p); - } else if (p->top->is_map) { - return handle_mapentry(p); - } else { - size_t len; - const char *buf = accumulate_getptr(p, &len); - upb_value v; - - if (upb_strtable_lookup2(p->top->name_table, buf, len, &v)) { - p->top->f = upb_value_getconstptr(v); - multipart_end(p); - - return true; - } else if (p->ignore_json_unknown) { - p->top->is_unknown_field = true; - multipart_end(p); - return true; - } else { - upb_status_seterrf(p->status, "No such field: %.*s\n", (int)len, buf); - return false; - } - } -} - -static bool end_any_membername(upb_json_parser *p) { - size_t len; - const char *buf = accumulate_getptr(p, &len); - upb_value v; - - if (len == 5 && strncmp(buf, "@type", len) == 0) { - upb_strtable_lookup2(p->top->name_table, "type_url", 8, &v); - p->top->f = upb_value_getconstptr(v); - multipart_end(p); - return true; - } else { - p->top->is_unknown_field = true; - multipart_end(p); - return true; - } -} - -static void end_member(upb_json_parser *p) { - /* If we just parsed a map-entry value, end that frame too. */ - if (p->top->is_mapentry) { - upb_selector_t sel; - bool ok; - const upb_fielddef *mapfield; - - UPB_ASSERT(p->top > p->stack); - /* send ENDMSG on submsg. */ - upb_sink_endmsg(p->top->sink, p->status); - mapfield = p->top->mapfield; - - /* send ENDSUBMSG in repeated-field-of-mapentries frame. */ - p->top--; - ok = upb_handlers_getselector(mapfield, UPB_HANDLER_ENDSUBMSG, &sel); - UPB_ASSUME(ok); - upb_sink_endsubmsg(p->top->sink, (p->top + 1)->sink, sel); - } - - p->top->f = NULL; - p->top->is_unknown_field = false; -} - -static void start_any_member(upb_json_parser *p, const char *ptr) { - start_member(p); - json_parser_any_frame_set_after_type_url_start_once(p->top->any_frame, ptr); -} - -static void end_any_member(upb_json_parser *p, const char *ptr) { - json_parser_any_frame_set_before_type_url_end(p->top->any_frame, ptr); - end_member(p); -} - -static bool start_subobject(upb_json_parser *p) { - if (p->top->is_unknown_field) { - if (!check_stack(p)) return false; - - p->top = start_jsonparser_frame(p); - return true; - } - - if (upb_fielddef_ismap(p->top->f)) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - /* Beginning of a map. Start a new parser frame in a repeated-field - * context. */ - if (!check_stack(p)) return false; - - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSEQ); - upb_sink_startseq(p->top->sink, sel, &inner->sink); - inner->m = upb_fielddef_msgsubdef(p->top->f); - inner->mapfield = p->top->f; - inner->is_map = true; - p->top = inner; - - return true; - } else if (upb_fielddef_issubmsg(p->top->f)) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - /* Beginning of a subobject. Start a new parser frame in the submsg - * context. */ - if (!check_stack(p)) return false; - - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSUBMSG); - upb_sink_startsubmsg(p->top->sink, sel, &inner->sink); - inner->m = upb_fielddef_msgsubdef(p->top->f); - set_name_table(p, inner); - p->top = inner; - - if (is_wellknown_msg(p, UPB_WELLKNOWN_ANY)) { - p->top->is_any = true; - p->top->any_frame = json_parser_any_frame_new(p); - } else { - p->top->is_any = false; - p->top->any_frame = NULL; - } - - return true; - } else { - upb_status_seterrf(p->status, - "Object specified for non-message/group field: %s", - upb_fielddef_name(p->top->f)); - return false; - } -} - -static bool start_subobject_full(upb_json_parser *p) { - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_STRUCTVALUE); - if (!start_subobject(p)) return false; - start_structvalue_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_STRUCT)) { - start_structvalue_object(p); - } else { - return true; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_STRUCT)) { - if (!start_subobject(p)) return false; - start_structvalue_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE)) { - if (!start_subobject(p)) return false; - start_value_object(p, VALUE_STRUCTVALUE); - if (!start_subobject(p)) return false; - start_structvalue_object(p); - } - - return start_subobject(p); -} - -static void end_subobject(upb_json_parser *p) { - if (is_top_level(p)) { - return; - } - - if (p->top->is_map) { - upb_selector_t sel; - p->top--; - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSEQ); - upb_sink_endseq(p->top->sink, sel); - } else { - upb_selector_t sel; - bool is_unknown = p->top->m == NULL; - p->top--; - if (!is_unknown) { - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSUBMSG); - upb_sink_endsubmsg(p->top->sink, (p->top + 1)->sink, sel); - } - } -} - -static void end_subobject_full(upb_json_parser *p) { - end_subobject(p); - - if (is_wellknown_msg(p, UPB_WELLKNOWN_STRUCT)) { - end_structvalue_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } -} - -static bool start_array(upb_json_parser *p) { - upb_jsonparser_frame *inner; - upb_selector_t sel; - - if (is_top_level(p)) { - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - start_value_object(p, VALUE_LISTVALUE); - if (!start_subobject(p)) return false; - start_listvalue_object(p); - } else if (is_wellknown_msg(p, UPB_WELLKNOWN_LISTVALUE)) { - start_listvalue_object(p); - } else { - return false; - } - } else if (is_wellknown_field(p, UPB_WELLKNOWN_LISTVALUE) && - (!upb_fielddef_isseq(p->top->f) || - p->top->is_repeated)) { - if (!start_subobject(p)) return false; - start_listvalue_object(p); - } else if (is_wellknown_field(p, UPB_WELLKNOWN_VALUE) && - (!upb_fielddef_isseq(p->top->f) || - p->top->is_repeated)) { - if (!start_subobject(p)) return false; - start_value_object(p, VALUE_LISTVALUE); - if (!start_subobject(p)) return false; - start_listvalue_object(p); - } - - if (p->top->is_unknown_field) { - inner = start_jsonparser_frame(p); - inner->is_unknown_field = true; - p->top = inner; - - return true; - } - - if (!upb_fielddef_isseq(p->top->f)) { - upb_status_seterrf(p->status, - "Array specified for non-repeated field: %s", - upb_fielddef_name(p->top->f)); - return false; - } - - if (!check_stack(p)) return false; - - inner = start_jsonparser_frame(p); - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSEQ); - upb_sink_startseq(p->top->sink, sel, &inner->sink); - inner->m = p->top->m; - inner->f = p->top->f; - inner->is_repeated = true; - p->top = inner; - - return true; -} - -static void end_array(upb_json_parser *p) { - upb_selector_t sel; - - UPB_ASSERT(p->top > p->stack); - - p->top--; - - if (p->top->is_unknown_field) { - return; - } - - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSEQ); - upb_sink_endseq(p->top->sink, sel); - - if (is_wellknown_msg(p, UPB_WELLKNOWN_LISTVALUE)) { - end_listvalue_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } - - if (is_wellknown_msg(p, UPB_WELLKNOWN_VALUE)) { - end_value_object(p); - if (!is_top_level(p)) { - end_subobject(p); - } - } -} - -static void start_object(upb_json_parser *p) { - if (!p->top->is_map && p->top->m != NULL) { - upb_sink_startmsg(p->top->sink); - } -} - -static void end_object(upb_json_parser *p) { - if (!p->top->is_map && p->top->m != NULL) { - upb_sink_endmsg(p->top->sink, p->status); - } -} - -static void start_any_object(upb_json_parser *p, const char *ptr) { - start_object(p); - p->top->any_frame->before_type_url_start = ptr; - p->top->any_frame->before_type_url_end = ptr; -} - -static bool end_any_object(upb_json_parser *p, const char *ptr) { - const char *value_membername = "value"; - bool is_well_known_packed = false; - const char *packed_end = ptr + 1; - upb_selector_t sel; - upb_jsonparser_frame *inner; - - if (json_parser_any_frame_has_value(p->top->any_frame) && - !json_parser_any_frame_has_type_url(p->top->any_frame)) { - upb_status_seterrmsg(p->status, "No valid type url"); - return false; - } - - /* Well known types data is represented as value field. */ - if (upb_msgdef_wellknowntype(p->top->any_frame->parser->top->m) != - UPB_WELLKNOWN_UNSPECIFIED) { - is_well_known_packed = true; - - if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame)) { - p->top->any_frame->before_type_url_start = - memchr(p->top->any_frame->before_type_url_start, ':', - p->top->any_frame->before_type_url_end - - p->top->any_frame->before_type_url_start); - if (p->top->any_frame->before_type_url_start == NULL) { - upb_status_seterrmsg(p->status, "invalid data for well known type."); - return false; - } - p->top->any_frame->before_type_url_start++; - } - - if (json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) { - p->top->any_frame->after_type_url_start = - memchr(p->top->any_frame->after_type_url_start, ':', - (ptr + 1) - - p->top->any_frame->after_type_url_start); - if (p->top->any_frame->after_type_url_start == NULL) { - upb_status_seterrmsg(p->status, "Invalid data for well known type."); - return false; - } - p->top->any_frame->after_type_url_start++; - packed_end = ptr; - } - } - - if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame)) { - if (!parse(p->top->any_frame->parser, NULL, - p->top->any_frame->before_type_url_start, - p->top->any_frame->before_type_url_end - - p->top->any_frame->before_type_url_start, NULL)) { - return false; - } - } else { - if (!is_well_known_packed) { - if (!parse(p->top->any_frame->parser, NULL, "{", 1, NULL)) { - return false; - } - } - } - - if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame) && - json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) { - if (!parse(p->top->any_frame->parser, NULL, ",", 1, NULL)) { - return false; - } - } - - if (json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) { - if (!parse(p->top->any_frame->parser, NULL, - p->top->any_frame->after_type_url_start, - packed_end - p->top->any_frame->after_type_url_start, NULL)) { - return false; - } - } else { - if (!is_well_known_packed) { - if (!parse(p->top->any_frame->parser, NULL, "}", 1, NULL)) { - return false; - } - } - } - - if (!end(p->top->any_frame->parser, NULL)) { - return false; - } - - p->top->is_any = false; - - /* Set value */ - start_member(p); - capture_begin(p, value_membername); - capture_end(p, value_membername + 5); - end_membername(p); - - if (!check_stack(p)) return false; - inner = p->top + 1; - - sel = getsel_for_handlertype(p, UPB_HANDLER_STARTSTR); - upb_sink_startstr(p->top->sink, sel, 0, &inner->sink); - sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); - upb_sink_putstring(inner->sink, sel, p->top->any_frame->stringsink.ptr, - p->top->any_frame->stringsink.len, NULL); - sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); - upb_sink_endstr(inner->sink, sel); - - end_member(p); - - end_object(p); - - /* Deallocate any parse frame. */ - json_parser_any_frame_free(p->top->any_frame); - - return true; -} - -static bool is_string_wrapper(const upb_msgdef *m) { - upb_wellknowntype_t type = upb_msgdef_wellknowntype(m); - return type == UPB_WELLKNOWN_STRINGVALUE || - type == UPB_WELLKNOWN_BYTESVALUE; -} - -static bool is_fieldmask(const upb_msgdef *m) { - upb_wellknowntype_t type = upb_msgdef_wellknowntype(m); - return type == UPB_WELLKNOWN_FIELDMASK; -} - -static void start_fieldmask_object(upb_json_parser *p) { - const char *membername = "paths"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + 5); - end_membername(p); - - start_array(p); -} - -static void end_fieldmask_object(upb_json_parser *p) { - end_array(p); - end_member(p); - end_object(p); -} - -static void start_wrapper_object(upb_json_parser *p) { - const char *membername = "value"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + 5); - end_membername(p); -} - -static void end_wrapper_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static void start_value_object(upb_json_parser *p, int value_type) { - const char *nullmember = "null_value"; - const char *numbermember = "number_value"; - const char *stringmember = "string_value"; - const char *boolmember = "bool_value"; - const char *structmember = "struct_value"; - const char *listmember = "list_value"; - const char *membername = ""; - - switch (value_type) { - case VALUE_NULLVALUE: - membername = nullmember; - break; - case VALUE_NUMBERVALUE: - membername = numbermember; - break; - case VALUE_STRINGVALUE: - membername = stringmember; - break; - case VALUE_BOOLVALUE: - membername = boolmember; - break; - case VALUE_STRUCTVALUE: - membername = structmember; - break; - case VALUE_LISTVALUE: - membername = listmember; - break; - } - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + strlen(membername)); - end_membername(p); -} - -static void end_value_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static void start_listvalue_object(upb_json_parser *p) { - const char *membername = "values"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + strlen(membername)); - end_membername(p); -} - -static void end_listvalue_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static void start_structvalue_object(upb_json_parser *p) { - const char *membername = "fields"; - - start_object(p); - - /* Set up context for parsing value */ - start_member(p); - capture_begin(p, membername); - capture_end(p, membername + strlen(membername)); - end_membername(p); -} - -static void end_structvalue_object(upb_json_parser *p) { - end_member(p); - end_object(p); -} - -static bool is_top_level(upb_json_parser *p) { - return p->top == p->stack && p->top->f == NULL && !p->top->is_unknown_field; -} - -static bool is_wellknown_msg(upb_json_parser *p, upb_wellknowntype_t type) { - return p->top->m != NULL && upb_msgdef_wellknowntype(p->top->m) == type; -} - -static bool is_wellknown_field(upb_json_parser *p, upb_wellknowntype_t type) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - (upb_msgdef_wellknowntype(upb_fielddef_msgsubdef(p->top->f)) - == type); -} - -static bool does_number_wrapper_start(upb_json_parser *p) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - upb_msgdef_isnumberwrapper(upb_fielddef_msgsubdef(p->top->f)); -} - -static bool does_number_wrapper_end(upb_json_parser *p) { - return p->top->m != NULL && upb_msgdef_isnumberwrapper(p->top->m); -} - -static bool is_number_wrapper_object(upb_json_parser *p) { - return p->top->m != NULL && upb_msgdef_isnumberwrapper(p->top->m); -} - -static bool does_string_wrapper_start(upb_json_parser *p) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - is_string_wrapper(upb_fielddef_msgsubdef(p->top->f)); -} - -static bool does_string_wrapper_end(upb_json_parser *p) { - return p->top->m != NULL && is_string_wrapper(p->top->m); -} - -static bool is_string_wrapper_object(upb_json_parser *p) { - return p->top->m != NULL && is_string_wrapper(p->top->m); -} - -static bool does_fieldmask_start(upb_json_parser *p) { - return p->top->f != NULL && - upb_fielddef_issubmsg(p->top->f) && - is_fieldmask(upb_fielddef_msgsubdef(p->top->f)); -} - -static bool does_fieldmask_end(upb_json_parser *p) { - return p->top->m != NULL && is_fieldmask(p->top->m); -} - -#define CHECK_RETURN_TOP(x) if (!(x)) goto error - - -/* The actual parser **********************************************************/ - -/* What follows is the Ragel parser itself. The language is specified in Ragel - * and the actions call our C functions above. - * - * Ragel has an extensive set of functionality, and we use only a small part of - * it. There are many action types but we only use a few: - * - * ">" -- transition into a machine - * "%" -- transition out of a machine - * "@" -- transition into a final state of a machine. - * - * "@" transitions are tricky because a machine can transition into a final - * state repeatedly. But in some cases we know this can't happen, for example - * a string which is delimited by a final '"' can only transition into its - * final state once, when the closing '"' is seen. */ - -%%{ - machine json; - - ws = space*; - - integer = "0" | /[1-9]/ /[0-9]/*; - decimal = "." /[0-9]/+; - exponent = /[eE]/ /[+\-]/? /[0-9]/+; - - number_machine := - ("-"? integer decimal? exponent?) - %/{ fhold; fret; } - <: any - >{ fhold; fret; } - ; - number = /[0-9\-]/ >{ fhold; fcall number_machine; }; - - text = - /[^\\"]/+ - >{ start_text(parser, p); } - %{ CHECK_RETURN_TOP(end_text(parser, p)); } - ; - - unicode_char = - "\\u" - /[0-9A-Fa-f]/{4} - >{ start_hex(parser); } - ${ hexdigit(parser, p); } - %{ CHECK_RETURN_TOP(end_hex(parser)); } - ; - - escape_char = - "\\" - /[rtbfn"\/\\]/ - >{ CHECK_RETURN_TOP(escape(parser, p)); } - ; - - string_machine := - (text | unicode_char | escape_char)** - '"' - @{ fhold; fret; } - ; - - year = - (digit digit digit digit) - >{ start_year(parser, p); } - %{ CHECK_RETURN_TOP(end_year(parser, p)); } - ; - month = - (digit digit) - >{ start_month(parser, p); } - %{ CHECK_RETURN_TOP(end_month(parser, p)); } - ; - day = - (digit digit) - >{ start_day(parser, p); } - %{ CHECK_RETURN_TOP(end_day(parser, p)); } - ; - hour = - (digit digit) - >{ start_hour(parser, p); } - %{ CHECK_RETURN_TOP(end_hour(parser, p)); } - ; - minute = - (digit digit) - >{ start_minute(parser, p); } - %{ CHECK_RETURN_TOP(end_minute(parser, p)); } - ; - second = - (digit digit) - >{ start_second(parser, p); } - %{ CHECK_RETURN_TOP(end_second(parser, p)); } - ; - - duration_machine := - ("-"? integer decimal?) - >{ start_duration_base(parser, p); } - %{ CHECK_RETURN_TOP(end_duration_base(parser, p)); } - 's"' - @{ fhold; fret; } - ; - - timestamp_machine := - (year "-" month "-" day "T" hour ":" minute ":" second) - >{ start_timestamp_base(parser); } - ("." digit+)? - >{ start_timestamp_fraction(parser, p); } - %{ CHECK_RETURN_TOP(end_timestamp_fraction(parser, p)); } - ([+\-] digit digit ":00" | "Z") - >{ start_timestamp_zone(parser, p); } - %{ CHECK_RETURN_TOP(end_timestamp_zone(parser, p)); } - '"' - @{ fhold; fret; } - ; - - fieldmask_path_text = - /[^",]/+ - >{ start_fieldmask_path_text(parser, p); } - %{ end_fieldmask_path_text(parser, p); } - ; - - fieldmask_path = - fieldmask_path_text - >{ start_fieldmask_path(parser); } - %{ end_fieldmask_path(parser); } - ; - - fieldmask_machine := - (fieldmask_path ("," fieldmask_path)*)? - '"' - @{ fhold; fret; } - ; - - string = - '"' - @{ - if (is_wellknown_msg(parser, UPB_WELLKNOWN_TIMESTAMP)) { - fcall timestamp_machine; - } else if (is_wellknown_msg(parser, UPB_WELLKNOWN_DURATION)) { - fcall duration_machine; - } else if (is_wellknown_msg(parser, UPB_WELLKNOWN_FIELDMASK)) { - fcall fieldmask_machine; - } else { - fcall string_machine; - } - } - '"'; - - value2 = ^(space | "]" | "}") >{ fhold; fcall value_machine; } ; - - member = - ws - string - >{ - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - start_any_member(parser, p); - } else { - start_member(parser); - } - } - @{ CHECK_RETURN_TOP(end_membername(parser)); } - ws ":" ws - value2 - %{ - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - end_any_member(parser, p); - } else { - end_member(parser); - } - } - ws; - - object = - ("{" ws) - >{ - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - start_any_object(parser, p); - } else { - start_object(parser); - } - } - (member ("," member)*)? - "}" - >{ - if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { - CHECK_RETURN_TOP(end_any_object(parser, p)); - } else { - end_object(parser); - } - } - ; - - element = ws value2 ws; - array = - "[" - >{ CHECK_RETURN_TOP(start_array(parser)); } - ws - (element ("," element)*)? - "]" - >{ end_array(parser); } - ; - - value = - number - >{ CHECK_RETURN_TOP(start_number(parser, p)); } - %{ CHECK_RETURN_TOP(end_number(parser, p)); } - | string - >{ CHECK_RETURN_TOP(start_stringval(parser)); } - @{ CHECK_RETURN_TOP(end_stringval(parser)); } - | "true" - %{ CHECK_RETURN_TOP(end_bool(parser, true)); } - | "false" - %{ CHECK_RETURN_TOP(end_bool(parser, false)); } - | "null" - %{ CHECK_RETURN_TOP(end_null(parser)); } - | object - >{ CHECK_RETURN_TOP(start_subobject_full(parser)); } - %{ end_subobject_full(parser); } - | array; - - value_machine := - value - <: any >{ fhold; fret; } ; - - main := ws value ws; -}%% - -%% write data noerror nofinal; - -size_t parse(void *closure, const void *hd, const char *buf, size_t size, - const upb_bufhandle *handle) { - upb_json_parser *parser = closure; - - /* Variables used by Ragel's generated code. */ - int cs = parser->current_state; - int *stack = parser->parser_stack; - int top = parser->parser_top; - - const char *p = buf; - const char *pe = buf + size; - const char *eof = &eof_ch; - - parser->handle = handle; - - UPB_UNUSED(hd); - UPB_UNUSED(handle); - - capture_resume(parser, buf); - - %% write exec; - - if (p != pe) { - upb_status_seterrf(parser->status, "Parse error at '%.*s'\n", pe - p, p); - } else { - capture_suspend(parser, &p); - } - -error: - /* Save parsing state back to parser. */ - parser->current_state = cs; - parser->parser_top = top; - - return p - buf; -} - -static bool end(void *closure, const void *hd) { - upb_json_parser *parser = closure; - - /* Prevent compile warning on unused static constants. */ - UPB_UNUSED(json_start); - UPB_UNUSED(json_en_duration_machine); - UPB_UNUSED(json_en_fieldmask_machine); - UPB_UNUSED(json_en_number_machine); - UPB_UNUSED(json_en_string_machine); - UPB_UNUSED(json_en_timestamp_machine); - UPB_UNUSED(json_en_value_machine); - UPB_UNUSED(json_en_main); - - parse(parser, hd, &eof_ch, 0, NULL); - - return parser->current_state >= %%{ write first_final; }%%; -} - -static void json_parser_reset(upb_json_parser *p) { - int cs; - int top; - - p->top = p->stack; - init_frame(p->top); - - /* Emit Ragel initialization of the parser. */ - %% write init; - p->current_state = cs; - p->parser_top = top; - accumulate_clear(p); - p->multipart_state = MULTIPART_INACTIVE; - p->capture = NULL; - p->accumulated = NULL; -} - -static upb_json_parsermethod *parsermethod_new(upb_json_codecache *c, - const upb_msgdef *md) { - int i, n; - upb_alloc *alloc = upb_arena_alloc(c->arena); - - upb_json_parsermethod *m = upb_malloc(alloc, sizeof(*m)); - - m->cache = c; - - upb_byteshandler_init(&m->input_handler_); - upb_byteshandler_setstring(&m->input_handler_, parse, m); - upb_byteshandler_setendstr(&m->input_handler_, end, m); - - upb_strtable_init2(&m->name_table, UPB_CTYPE_CONSTPTR, 4, alloc); - - /* Build name_table */ - - n = upb_msgdef_fieldcount(md); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - upb_value v = upb_value_constptr(f); - const char *name; - - /* Add an entry for the JSON name. */ - name = upb_fielddef_jsonname(f); - upb_strtable_insert3(&m->name_table, name, strlen(name), v, alloc); - - if (strcmp(name, upb_fielddef_name(f)) != 0) { - /* Since the JSON name is different from the regular field name, add an - * entry for the raw name (compliant proto3 JSON parsers must accept - * both). */ - const char *name = upb_fielddef_name(f); - upb_strtable_insert3(&m->name_table, name, strlen(name), v, alloc); - } - } - - return m; -} - -/* Public API *****************************************************************/ - -upb_json_parser *upb_json_parser_create(upb_arena *arena, - const upb_json_parsermethod *method, - const upb_symtab* symtab, - upb_sink output, - upb_status *status, - bool ignore_json_unknown) { - upb_json_parser *p = upb_arena_malloc(arena, sizeof(upb_json_parser)); - if (!p) return false; - - p->arena = arena; - p->method = method; - p->status = status; - p->limit = p->stack + UPB_JSON_MAX_DEPTH; - p->accumulate_buf = NULL; - p->accumulate_buf_size = 0; - upb_bytessink_reset(&p->input_, &method->input_handler_, p); - - json_parser_reset(p); - p->top->sink = output; - p->top->m = upb_handlers_msgdef(output.handlers); - if (is_wellknown_msg(p, UPB_WELLKNOWN_ANY)) { - p->top->is_any = true; - p->top->any_frame = json_parser_any_frame_new(p); - } else { - p->top->is_any = false; - p->top->any_frame = NULL; - } - set_name_table(p, p->top); - p->symtab = symtab; - - p->ignore_json_unknown = ignore_json_unknown; - - return p; -} - -upb_bytessink upb_json_parser_input(upb_json_parser *p) { - return p->input_; -} - -const upb_byteshandler *upb_json_parsermethod_inputhandler( - const upb_json_parsermethod *m) { - return &m->input_handler_; -} - -upb_json_codecache *upb_json_codecache_new(void) { - upb_alloc *alloc; - upb_json_codecache *c; - - c = upb_gmalloc(sizeof(*c)); - - c->arena = upb_arena_new(); - alloc = upb_arena_alloc(c->arena); - - upb_inttable_init2(&c->methods, UPB_CTYPE_CONSTPTR, alloc); - - return c; -} - -void upb_json_codecache_free(upb_json_codecache *c) { - upb_arena_free(c->arena); - upb_gfree(c); -} - -const upb_json_parsermethod *upb_json_codecache_get(upb_json_codecache *c, - const upb_msgdef *md) { - upb_json_parsermethod *m; - upb_value v; - int i, n; - upb_alloc *alloc = upb_arena_alloc(c->arena); - - if (upb_inttable_lookupptr(&c->methods, md, &v)) { - return upb_value_getconstptr(v); - } - - m = parsermethod_new(c, md); - v = upb_value_constptr(m); - - if (!m) return NULL; - if (!upb_inttable_insertptr2(&c->methods, md, v, alloc)) return NULL; - - /* Populate parser methods for all submessages, so the name tables will - * be available during parsing. */ - n = upb_msgdef_fieldcount(md); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - - if (upb_fielddef_issubmsg(f)) { - const upb_msgdef *subdef = upb_fielddef_msgsubdef(f); - const upb_json_parsermethod *sub_method = - upb_json_codecache_get(c, subdef); - - if (!sub_method) return NULL; - } - } - - return m; -} diff --git a/third_party/upb/upb/json/printer.c b/third_party/upb/upb/json/printer.c deleted file mode 100644 index 2f0c8fb6c4f..00000000000 --- a/third_party/upb/upb/json/printer.c +++ /dev/null @@ -1,1396 +0,0 @@ -/* -** This currently uses snprintf() to format primitives, and could be optimized -** further. -*/ - -#include "upb/json/printer.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "upb/port_def.inc" - -struct upb_json_printer { - upb_sink input_; - /* BytesSink closure. */ - void *subc_; - upb_bytessink output_; - - /* We track the depth so that we know when to emit startstr/endstr on the - * output. */ - int depth_; - - /* Have we emitted the first element? This state is necessary to emit commas - * without leaving a trailing comma in arrays/maps. We keep this state per - * frame depth. - * - * Why max_depth * 2? UPB_MAX_HANDLER_DEPTH counts depth as nested messages. - * We count frames (contexts in which we separate elements by commas) as both - * repeated fields and messages (maps), and the worst case is a - * message->repeated field->submessage->repeated field->... nesting. */ - bool first_elem_[UPB_MAX_HANDLER_DEPTH * 2]; - - /* To print timestamp, printer needs to cache its seconds and nanos values - * and convert them when ending timestamp message. See comments of - * printer_sethandlers_timestamp for more detail. */ - int64_t seconds; - int32_t nanos; -}; - -/* StringPiece; a pointer plus a length. */ -typedef struct { - char *ptr; - size_t len; -} strpc; - -void freestrpc(void *ptr) { - strpc *pc = ptr; - upb_gfree(pc->ptr); - upb_gfree(pc); -} - -typedef struct { - bool preserve_fieldnames; -} upb_json_printercache; - -/* Convert fielddef name to JSON name and return as a string piece. */ -strpc *newstrpc(upb_handlers *h, const upb_fielddef *f, - bool preserve_fieldnames) { - /* TODO(haberman): handle malloc failure. */ - strpc *ret = upb_gmalloc(sizeof(*ret)); - if (preserve_fieldnames) { - ret->ptr = upb_gstrdup(upb_fielddef_name(f)); - ret->len = strlen(ret->ptr); - } else { - ret->ptr = upb_gstrdup(upb_fielddef_jsonname(f)); - ret->len = strlen(ret->ptr); - } - - upb_handlers_addcleanup(h, ret, freestrpc); - return ret; -} - -/* Convert a null-terminated const char* to a string piece. */ -strpc *newstrpc_str(upb_handlers *h, const char * str) { - strpc * ret = upb_gmalloc(sizeof(*ret)); - ret->ptr = upb_gstrdup(str); - ret->len = strlen(str); - upb_handlers_addcleanup(h, ret, freestrpc); - return ret; -} - -/* ------------ JSON string printing: values, maps, arrays ------------------ */ - -static void print_data( - upb_json_printer *p, const char *buf, size_t len) { - /* TODO: Will need to change if we support pushback from the sink. */ - size_t n = upb_bytessink_putbuf(p->output_, p->subc_, buf, len, NULL); - UPB_ASSERT(n == len); -} - -static void print_comma(upb_json_printer *p) { - if (!p->first_elem_[p->depth_]) { - print_data(p, ",", 1); - } - p->first_elem_[p->depth_] = false; -} - -/* Helpers that print properly formatted elements to the JSON output stream. */ - -/* Used for escaping control chars in strings. */ -static const char kControlCharLimit = 0x20; - -UPB_INLINE bool is_json_escaped(char c) { - /* See RFC 4627. */ - unsigned char uc = (unsigned char)c; - return uc < kControlCharLimit || uc == '"' || uc == '\\'; -} - -UPB_INLINE const char* json_nice_escape(char c) { - switch (c) { - case '"': return "\\\""; - case '\\': return "\\\\"; - case '\b': return "\\b"; - case '\f': return "\\f"; - case '\n': return "\\n"; - case '\r': return "\\r"; - case '\t': return "\\t"; - default: return NULL; - } -} - -/* Write a properly escaped string chunk. The surrounding quotes are *not* - * printed; this is so that the caller has the option of emitting the string - * content in chunks. */ -static void putstring(upb_json_printer *p, const char *buf, size_t len) { - const char* unescaped_run = NULL; - unsigned int i; - for (i = 0; i < len; i++) { - char c = buf[i]; - /* Handle escaping. */ - if (is_json_escaped(c)) { - /* Use a "nice" escape, like \n, if one exists for this character. */ - const char* escape = json_nice_escape(c); - /* If we don't have a specific 'nice' escape code, use a \uXXXX-style - * escape. */ - char escape_buf[8]; - if (!escape) { - unsigned char byte = (unsigned char)c; - snprintf(escape_buf, sizeof(escape_buf), "\\u%04x", (int)byte); - escape = escape_buf; - } - - /* N.B. that we assume that the input encoding is equal to the output - * encoding (both UTF-8 for now), so for chars >= 0x20 and != \, ", we - * can simply pass the bytes through. */ - - /* If there's a current run of unescaped chars, print that run first. */ - if (unescaped_run) { - print_data(p, unescaped_run, &buf[i] - unescaped_run); - unescaped_run = NULL; - } - /* Then print the escape code. */ - print_data(p, escape, strlen(escape)); - } else { - /* Add to the current unescaped run of characters. */ - if (unescaped_run == NULL) { - unescaped_run = &buf[i]; - } - } - } - - /* If the string ended in a run of unescaped characters, print that last run. */ - if (unescaped_run) { - print_data(p, unescaped_run, &buf[len] - unescaped_run); - } -} - -#define CHKLENGTH(x) if (!(x)) return -1; - -/* Helpers that format floating point values according to our custom formats. - * Right now we use %.8g and %.17g for float/double, respectively, to match - * proto2::util::JsonFormat's defaults. May want to change this later. */ - -const char neginf[] = "\"-Infinity\""; -const char inf[] = "\"Infinity\""; - -static size_t fmt_double(double val, char* buf, size_t length) { - if (val == INFINITY) { - CHKLENGTH(length >= strlen(inf)); - strcpy(buf, inf); - return strlen(inf); - } else if (val == -INFINITY) { - CHKLENGTH(length >= strlen(neginf)); - strcpy(buf, neginf); - return strlen(neginf); - } else { - size_t n = snprintf(buf, length, "%.17g", val); - CHKLENGTH(n > 0 && n < length); - return n; - } -} - -static size_t fmt_float(float val, char* buf, size_t length) { - size_t n = snprintf(buf, length, "%.8g", val); - CHKLENGTH(n > 0 && n < length); - return n; -} - -static size_t fmt_bool(bool val, char* buf, size_t length) { - size_t n = snprintf(buf, length, "%s", (val ? "true" : "false")); - CHKLENGTH(n > 0 && n < length); - return n; -} - -static size_t fmt_int64_as_number(int64_t val, char* buf, size_t length) { - size_t n = snprintf(buf, length, "%" PRId64, val); - CHKLENGTH(n > 0 && n < length); - return n; -} - -static size_t fmt_uint64_as_number(uint64_t val, char* buf, size_t length) { - size_t n = snprintf(buf, length, "%" PRIu64, val); - CHKLENGTH(n > 0 && n < length); - return n; -} - -static size_t fmt_int64_as_string(int64_t val, char* buf, size_t length) { - size_t n = snprintf(buf, length, "\"%" PRId64 "\"", val); - CHKLENGTH(n > 0 && n < length); - return n; -} - -static size_t fmt_uint64_as_string(uint64_t val, char* buf, size_t length) { - size_t n = snprintf(buf, length, "\"%" PRIu64 "\"", val); - CHKLENGTH(n > 0 && n < length); - return n; -} - -/* Print a map key given a field name. Called by scalar field handlers and by - * startseq for repeated fields. */ -static bool putkey(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - const strpc *key = handler_data; - print_comma(p); - print_data(p, "\"", 1); - putstring(p, key->ptr, key->len); - print_data(p, "\":", 2); - return true; -} - -#define CHKFMT(val) if ((val) == (size_t)-1) return false; -#define CHK(val) if (!(val)) return false; - -#define TYPE_HANDLERS(type, fmt_func) \ - static bool put##type(void *closure, const void *handler_data, type val) { \ - upb_json_printer *p = closure; \ - char data[64]; \ - size_t length = fmt_func(val, data, sizeof(data)); \ - UPB_UNUSED(handler_data); \ - CHKFMT(length); \ - print_data(p, data, length); \ - return true; \ - } \ - static bool scalar_##type(void *closure, const void *handler_data, \ - type val) { \ - CHK(putkey(closure, handler_data)); \ - CHK(put##type(closure, handler_data, val)); \ - return true; \ - } \ - static bool repeated_##type(void *closure, const void *handler_data, \ - type val) { \ - upb_json_printer *p = closure; \ - print_comma(p); \ - CHK(put##type(closure, handler_data, val)); \ - return true; \ - } - -#define TYPE_HANDLERS_MAPKEY(type, fmt_func) \ - static bool putmapkey_##type(void *closure, const void *handler_data, \ - type val) { \ - upb_json_printer *p = closure; \ - char data[64]; \ - size_t length = fmt_func(val, data, sizeof(data)); \ - UPB_UNUSED(handler_data); \ - print_data(p, "\"", 1); \ - print_data(p, data, length); \ - print_data(p, "\":", 2); \ - return true; \ - } - -TYPE_HANDLERS(double, fmt_double) -TYPE_HANDLERS(float, fmt_float) -TYPE_HANDLERS(bool, fmt_bool) -TYPE_HANDLERS(int32_t, fmt_int64_as_number) -TYPE_HANDLERS(uint32_t, fmt_int64_as_number) -TYPE_HANDLERS(int64_t, fmt_int64_as_string) -TYPE_HANDLERS(uint64_t, fmt_uint64_as_string) - -/* double and float are not allowed to be map keys. */ -TYPE_HANDLERS_MAPKEY(bool, fmt_bool) -TYPE_HANDLERS_MAPKEY(int32_t, fmt_int64_as_number) -TYPE_HANDLERS_MAPKEY(uint32_t, fmt_int64_as_number) -TYPE_HANDLERS_MAPKEY(int64_t, fmt_int64_as_number) -TYPE_HANDLERS_MAPKEY(uint64_t, fmt_uint64_as_number) - -#undef TYPE_HANDLERS -#undef TYPE_HANDLERS_MAPKEY - -typedef struct { - void *keyname; - const upb_enumdef *enumdef; -} EnumHandlerData; - -static bool scalar_enum(void *closure, const void *handler_data, - int32_t val) { - const EnumHandlerData *hd = handler_data; - upb_json_printer *p = closure; - const char *symbolic_name; - - CHK(putkey(closure, hd->keyname)); - - symbolic_name = upb_enumdef_iton(hd->enumdef, val); - if (symbolic_name) { - print_data(p, "\"", 1); - putstring(p, symbolic_name, strlen(symbolic_name)); - print_data(p, "\"", 1); - } else { - putint32_t(closure, NULL, val); - } - - return true; -} - -static void print_enum_symbolic_name(upb_json_printer *p, - const upb_enumdef *def, - int32_t val) { - const char *symbolic_name = upb_enumdef_iton(def, val); - if (symbolic_name) { - print_data(p, "\"", 1); - putstring(p, symbolic_name, strlen(symbolic_name)); - print_data(p, "\"", 1); - } else { - putint32_t(p, NULL, val); - } -} - -static bool repeated_enum(void *closure, const void *handler_data, - int32_t val) { - const EnumHandlerData *hd = handler_data; - upb_json_printer *p = closure; - print_comma(p); - - print_enum_symbolic_name(p, hd->enumdef, val); - - return true; -} - -static bool mapvalue_enum(void *closure, const void *handler_data, - int32_t val) { - const EnumHandlerData *hd = handler_data; - upb_json_printer *p = closure; - - print_enum_symbolic_name(p, hd->enumdef, val); - - return true; -} - -static void *scalar_startsubmsg(void *closure, const void *handler_data) { - return putkey(closure, handler_data) ? closure : UPB_BREAK; -} - -static void *repeated_startsubmsg(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_comma(p); - return closure; -} - -static void start_frame(upb_json_printer *p) { - p->depth_++; - p->first_elem_[p->depth_] = true; - print_data(p, "{", 1); -} - -static void end_frame(upb_json_printer *p) { - print_data(p, "}", 1); - p->depth_--; -} - -static bool printer_startmsg(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - if (p->depth_ == 0) { - upb_bytessink_start(p->output_, 0, &p->subc_); - } - start_frame(p); - return true; -} - -static bool printer_endmsg(void *closure, const void *handler_data, upb_status *s) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(s); - end_frame(p); - if (p->depth_ == 0) { - upb_bytessink_end(p->output_); - } - return true; -} - -static void *startseq(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - CHK(putkey(closure, handler_data)); - p->depth_++; - p->first_elem_[p->depth_] = true; - print_data(p, "[", 1); - return closure; -} - -static bool endseq(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_data(p, "]", 1); - p->depth_--; - return true; -} - -static void *startmap(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - CHK(putkey(closure, handler_data)); - p->depth_++; - p->first_elem_[p->depth_] = true; - print_data(p, "{", 1); - return closure; -} - -static bool endmap(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_data(p, "}", 1); - p->depth_--; - return true; -} - -static size_t putstr(void *closure, const void *handler_data, const char *str, - size_t len, const upb_bufhandle *handle) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(handle); - putstring(p, str, len); - return len; -} - -/* This has to Base64 encode the bytes, because JSON has no "bytes" type. */ -static size_t putbytes(void *closure, const void *handler_data, const char *str, - size_t len, const upb_bufhandle *handle) { - upb_json_printer *p = closure; - - /* This is the regular base64, not the "web-safe" version. */ - static const char base64[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - /* Base64-encode. */ - char data[16000]; - const char *limit = data + sizeof(data); - const unsigned char *from = (const unsigned char*)str; - char *to = data; - size_t remaining = len; - size_t bytes; - - UPB_UNUSED(handler_data); - UPB_UNUSED(handle); - - print_data(p, "\"", 1); - - while (remaining > 2) { - if (limit - to < 4) { - bytes = to - data; - putstring(p, data, bytes); - to = data; - } - - to[0] = base64[from[0] >> 2]; - to[1] = base64[((from[0] & 0x3) << 4) | (from[1] >> 4)]; - to[2] = base64[((from[1] & 0xf) << 2) | (from[2] >> 6)]; - to[3] = base64[from[2] & 0x3f]; - - remaining -= 3; - to += 4; - from += 3; - } - - switch (remaining) { - case 2: - to[0] = base64[from[0] >> 2]; - to[1] = base64[((from[0] & 0x3) << 4) | (from[1] >> 4)]; - to[2] = base64[(from[1] & 0xf) << 2]; - to[3] = '='; - to += 4; - from += 2; - break; - case 1: - to[0] = base64[from[0] >> 2]; - to[1] = base64[((from[0] & 0x3) << 4)]; - to[2] = '='; - to[3] = '='; - to += 4; - from += 1; - break; - } - - bytes = to - data; - putstring(p, data, bytes); - print_data(p, "\"", 1); - return len; -} - -static void *scalar_startstr(void *closure, const void *handler_data, - size_t size_hint) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(size_hint); - CHK(putkey(closure, handler_data)); - print_data(p, "\"", 1); - return p; -} - -static size_t scalar_str(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - CHK(putstr(closure, handler_data, str, len, handle)); - return len; -} - -static bool scalar_endstr(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_data(p, "\"", 1); - return true; -} - -static void *repeated_startstr(void *closure, const void *handler_data, - size_t size_hint) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(size_hint); - print_comma(p); - print_data(p, "\"", 1); - return p; -} - -static size_t repeated_str(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - CHK(putstr(closure, handler_data, str, len, handle)); - return len; -} - -static bool repeated_endstr(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_data(p, "\"", 1); - return true; -} - -static void *mapkeyval_startstr(void *closure, const void *handler_data, - size_t size_hint) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(size_hint); - print_data(p, "\"", 1); - return p; -} - -static size_t mapkey_str(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - CHK(putstr(closure, handler_data, str, len, handle)); - return len; -} - -static bool mapkey_endstr(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_data(p, "\":", 2); - return true; -} - -static bool mapvalue_endstr(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - print_data(p, "\"", 1); - return true; -} - -static size_t scalar_bytes(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - CHK(putkey(closure, handler_data)); - CHK(putbytes(closure, handler_data, str, len, handle)); - return len; -} - -static size_t repeated_bytes(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - upb_json_printer *p = closure; - print_comma(p); - CHK(putbytes(closure, handler_data, str, len, handle)); - return len; -} - -static size_t mapkey_bytes(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - upb_json_printer *p = closure; - CHK(putbytes(closure, handler_data, str, len, handle)); - print_data(p, ":", 1); - return len; -} - -static void set_enum_hd(upb_handlers *h, - const upb_fielddef *f, - bool preserve_fieldnames, - upb_handlerattr *attr) { - EnumHandlerData *hd = upb_gmalloc(sizeof(EnumHandlerData)); - hd->enumdef = upb_fielddef_enumsubdef(f); - hd->keyname = newstrpc(h, f, preserve_fieldnames); - upb_handlers_addcleanup(h, hd, upb_gfree); - attr->handler_data = hd; -} - -/* Set up handlers for a mapentry submessage (i.e., an individual key/value pair - * in a map). - * - * TODO: Handle missing key, missing value, out-of-order key/value, or repeated - * key or value cases properly. The right way to do this is to allocate a - * temporary structure at the start of a mapentry submessage, store key and - * value data in it as key and value handlers are called, and then print the - * key/value pair once at the end of the submessage. If we don't do this, we - * should at least detect the case and throw an error. However, so far all of - * our sources that emit mapentry messages do so canonically (with one key - * field, and then one value field), so this is not a pressing concern at the - * moment. */ -void printer_sethandlers_mapentry(const void *closure, bool preserve_fieldnames, - upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - - /* A mapentry message is printed simply as '"key": value'. Rather than - * special-case key and value for every type below, we just handle both - * fields explicitly here. */ - const upb_fielddef* key_field = upb_msgdef_itof(md, UPB_MAPENTRY_KEY); - const upb_fielddef* value_field = upb_msgdef_itof(md, UPB_MAPENTRY_VALUE); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - UPB_UNUSED(closure); - - switch (upb_fielddef_type(key_field)) { - case UPB_TYPE_INT32: - upb_handlers_setint32(h, key_field, putmapkey_int32_t, &empty_attr); - break; - case UPB_TYPE_INT64: - upb_handlers_setint64(h, key_field, putmapkey_int64_t, &empty_attr); - break; - case UPB_TYPE_UINT32: - upb_handlers_setuint32(h, key_field, putmapkey_uint32_t, &empty_attr); - break; - case UPB_TYPE_UINT64: - upb_handlers_setuint64(h, key_field, putmapkey_uint64_t, &empty_attr); - break; - case UPB_TYPE_BOOL: - upb_handlers_setbool(h, key_field, putmapkey_bool, &empty_attr); - break; - case UPB_TYPE_STRING: - upb_handlers_setstartstr(h, key_field, mapkeyval_startstr, &empty_attr); - upb_handlers_setstring(h, key_field, mapkey_str, &empty_attr); - upb_handlers_setendstr(h, key_field, mapkey_endstr, &empty_attr); - break; - case UPB_TYPE_BYTES: - upb_handlers_setstring(h, key_field, mapkey_bytes, &empty_attr); - break; - default: - UPB_ASSERT(false); - break; - } - - switch (upb_fielddef_type(value_field)) { - case UPB_TYPE_INT32: - upb_handlers_setint32(h, value_field, putint32_t, &empty_attr); - break; - case UPB_TYPE_INT64: - upb_handlers_setint64(h, value_field, putint64_t, &empty_attr); - break; - case UPB_TYPE_UINT32: - upb_handlers_setuint32(h, value_field, putuint32_t, &empty_attr); - break; - case UPB_TYPE_UINT64: - upb_handlers_setuint64(h, value_field, putuint64_t, &empty_attr); - break; - case UPB_TYPE_BOOL: - upb_handlers_setbool(h, value_field, putbool, &empty_attr); - break; - case UPB_TYPE_FLOAT: - upb_handlers_setfloat(h, value_field, putfloat, &empty_attr); - break; - case UPB_TYPE_DOUBLE: - upb_handlers_setdouble(h, value_field, putdouble, &empty_attr); - break; - case UPB_TYPE_STRING: - upb_handlers_setstartstr(h, value_field, mapkeyval_startstr, &empty_attr); - upb_handlers_setstring(h, value_field, putstr, &empty_attr); - upb_handlers_setendstr(h, value_field, mapvalue_endstr, &empty_attr); - break; - case UPB_TYPE_BYTES: - upb_handlers_setstring(h, value_field, putbytes, &empty_attr); - break; - case UPB_TYPE_ENUM: { - upb_handlerattr enum_attr = UPB_HANDLERATTR_INIT; - set_enum_hd(h, value_field, preserve_fieldnames, &enum_attr); - upb_handlers_setint32(h, value_field, mapvalue_enum, &enum_attr); - break; - } - case UPB_TYPE_MESSAGE: - /* No handler necessary -- the submsg handlers will print the message - * as appropriate. */ - break; - } -} - -static bool putseconds(void *closure, const void *handler_data, - int64_t seconds) { - upb_json_printer *p = closure; - p->seconds = seconds; - UPB_UNUSED(handler_data); - return true; -} - -static bool putnanos(void *closure, const void *handler_data, - int32_t nanos) { - upb_json_printer *p = closure; - p->nanos = nanos; - UPB_UNUSED(handler_data); - return true; -} - -static void *scalar_startstr_nokey(void *closure, const void *handler_data, - size_t size_hint) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(size_hint); - print_data(p, "\"", 1); - return p; -} - -static size_t putstr_nokey(void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(handle); - print_data(p, "\"", 1); - putstring(p, str, len); - print_data(p, "\"", 1); - return len + 2; -} - -static void *startseq_nokey(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - p->depth_++; - p->first_elem_[p->depth_] = true; - print_data(p, "[", 1); - return closure; -} - -static void *startseq_fieldmask(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - p->depth_++; - p->first_elem_[p->depth_] = true; - return closure; -} - -static bool endseq_fieldmask(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - p->depth_--; - return true; -} - -static void *repeated_startstr_fieldmask( - void *closure, const void *handler_data, - size_t size_hint) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(size_hint); - print_comma(p); - return p; -} - -static size_t repeated_str_fieldmask( - void *closure, const void *handler_data, - const char *str, size_t len, - const upb_bufhandle *handle) { - const char* limit = str + len; - bool upper = false; - size_t result_len = 0; - for (; str < limit; str++) { - if (*str == '_') { - upper = true; - continue; - } - if (upper && *str >= 'a' && *str <= 'z') { - char upper_char = toupper(*str); - CHK(putstr(closure, handler_data, &upper_char, 1, handle)); - } else { - CHK(putstr(closure, handler_data, str, 1, handle)); - } - upper = false; - result_len++; - } - return result_len; -} - -static void *startmap_nokey(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - p->depth_++; - p->first_elem_[p->depth_] = true; - print_data(p, "{", 1); - return closure; -} - -static bool putnull(void *closure, const void *handler_data, - int32_t null) { - upb_json_printer *p = closure; - print_data(p, "null", 4); - UPB_UNUSED(handler_data); - UPB_UNUSED(null); - return true; -} - -static bool printer_startdurationmsg(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - if (p->depth_ == 0) { - upb_bytessink_start(p->output_, 0, &p->subc_); - } - return true; -} - -#define UPB_DURATION_MAX_JSON_LEN 23 -#define UPB_DURATION_MAX_NANO_LEN 9 - -static bool printer_enddurationmsg(void *closure, const void *handler_data, - upb_status *s) { - upb_json_printer *p = closure; - char buffer[UPB_DURATION_MAX_JSON_LEN]; - size_t base_len; - size_t curr; - size_t i; - - memset(buffer, 0, UPB_DURATION_MAX_JSON_LEN); - - if (p->seconds < -315576000000) { - upb_status_seterrf(s, "error parsing duration: " - "minimum acceptable value is " - "-315576000000"); - return false; - } - - if (p->seconds > 315576000000) { - upb_status_seterrf(s, "error serializing duration: " - "maximum acceptable value is " - "315576000000"); - return false; - } - - snprintf(buffer, sizeof(buffer), "%ld", (long)p->seconds); - base_len = strlen(buffer); - - if (p->nanos != 0) { - char nanos_buffer[UPB_DURATION_MAX_NANO_LEN + 3]; - snprintf(nanos_buffer, sizeof(nanos_buffer), "%.9f", - p->nanos / 1000000000.0); - /* Remove trailing 0. */ - for (i = UPB_DURATION_MAX_NANO_LEN + 2; - nanos_buffer[i] == '0'; i--) { - nanos_buffer[i] = 0; - } - strcpy(buffer + base_len, nanos_buffer + 1); - } - - curr = strlen(buffer); - strcpy(buffer + curr, "s"); - - p->seconds = 0; - p->nanos = 0; - - print_data(p, "\"", 1); - print_data(p, buffer, strlen(buffer)); - print_data(p, "\"", 1); - - if (p->depth_ == 0) { - upb_bytessink_end(p->output_); - } - - UPB_UNUSED(handler_data); - return true; -} - -static bool printer_starttimestampmsg(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - if (p->depth_ == 0) { - upb_bytessink_start(p->output_, 0, &p->subc_); - } - return true; -} - -#define UPB_TIMESTAMP_MAX_JSON_LEN 31 -#define UPB_TIMESTAMP_BEFORE_NANO_LEN 19 -#define UPB_TIMESTAMP_MAX_NANO_LEN 9 - -static bool printer_endtimestampmsg(void *closure, const void *handler_data, - upb_status *s) { - upb_json_printer *p = closure; - char buffer[UPB_TIMESTAMP_MAX_JSON_LEN]; - time_t time = p->seconds; - size_t curr; - size_t i; - size_t year_length = - strftime(buffer, UPB_TIMESTAMP_MAX_JSON_LEN, "%Y", gmtime(&time)); - - if (p->seconds < -62135596800) { - upb_status_seterrf(s, "error parsing timestamp: " - "minimum acceptable value is " - "0001-01-01T00:00:00Z"); - return false; - } - - if (p->seconds > 253402300799) { - upb_status_seterrf(s, "error parsing timestamp: " - "maximum acceptable value is " - "9999-12-31T23:59:59Z"); - return false; - } - - /* strftime doesn't guarantee 4 digits for year. Prepend 0 by ourselves. */ - for (i = 0; i < 4 - year_length; i++) { - buffer[i] = '0'; - } - - strftime(buffer + (4 - year_length), UPB_TIMESTAMP_MAX_JSON_LEN, - "%Y-%m-%dT%H:%M:%S", gmtime(&time)); - if (p->nanos != 0) { - char nanos_buffer[UPB_TIMESTAMP_MAX_NANO_LEN + 3]; - snprintf(nanos_buffer, sizeof(nanos_buffer), "%.9f", - p->nanos / 1000000000.0); - /* Remove trailing 0. */ - for (i = UPB_TIMESTAMP_MAX_NANO_LEN + 2; - nanos_buffer[i] == '0'; i--) { - nanos_buffer[i] = 0; - } - strcpy(buffer + UPB_TIMESTAMP_BEFORE_NANO_LEN, nanos_buffer + 1); - } - - curr = strlen(buffer); - strcpy(buffer + curr, "Z"); - - p->seconds = 0; - p->nanos = 0; - - print_data(p, "\"", 1); - print_data(p, buffer, strlen(buffer)); - print_data(p, "\"", 1); - - if (p->depth_ == 0) { - upb_bytessink_end(p->output_); - } - - UPB_UNUSED(handler_data); - UPB_UNUSED(s); - return true; -} - -static bool printer_startmsg_noframe(void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - if (p->depth_ == 0) { - upb_bytessink_start(p->output_, 0, &p->subc_); - } - return true; -} - -static bool printer_endmsg_noframe( - void *closure, const void *handler_data, upb_status *s) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(s); - if (p->depth_ == 0) { - upb_bytessink_end(p->output_); - } - return true; -} - -static bool printer_startmsg_fieldmask( - void *closure, const void *handler_data) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - if (p->depth_ == 0) { - upb_bytessink_start(p->output_, 0, &p->subc_); - } - print_data(p, "\"", 1); - return true; -} - -static bool printer_endmsg_fieldmask( - void *closure, const void *handler_data, upb_status *s) { - upb_json_printer *p = closure; - UPB_UNUSED(handler_data); - UPB_UNUSED(s); - print_data(p, "\"", 1); - if (p->depth_ == 0) { - upb_bytessink_end(p->output_); - } - return true; -} - -static void *scalar_startstr_onlykey( - void *closure, const void *handler_data, size_t size_hint) { - upb_json_printer *p = closure; - UPB_UNUSED(size_hint); - CHK(putkey(closure, handler_data)); - return p; -} - -/* Set up handlers for an Any submessage. */ -void printer_sethandlers_any(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - - const upb_fielddef* type_field = upb_msgdef_itof(md, UPB_ANY_TYPE); - const upb_fielddef* value_field = upb_msgdef_itof(md, UPB_ANY_VALUE); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - /* type_url's json name is "@type" */ - upb_handlerattr type_name_attr = UPB_HANDLERATTR_INIT; - upb_handlerattr value_name_attr = UPB_HANDLERATTR_INIT; - strpc *type_url_json_name = newstrpc_str(h, "@type"); - strpc *value_json_name = newstrpc_str(h, "value"); - - type_name_attr.handler_data = type_url_json_name; - value_name_attr.handler_data = value_json_name; - - /* Set up handlers. */ - upb_handlers_setstartmsg(h, printer_startmsg, &empty_attr); - upb_handlers_setendmsg(h, printer_endmsg, &empty_attr); - - upb_handlers_setstartstr(h, type_field, scalar_startstr, &type_name_attr); - upb_handlers_setstring(h, type_field, scalar_str, &empty_attr); - upb_handlers_setendstr(h, type_field, scalar_endstr, &empty_attr); - - /* This is not the full and correct JSON encoding for the Any value field. It - * requires further processing by the wrapper code based on the type URL. - */ - upb_handlers_setstartstr(h, value_field, scalar_startstr_onlykey, - &value_name_attr); - - UPB_UNUSED(closure); -} - -/* Set up handlers for a fieldmask submessage. */ -void printer_sethandlers_fieldmask(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - const upb_fielddef* f = upb_msgdef_itof(md, 1); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - upb_handlers_setstartseq(h, f, startseq_fieldmask, &empty_attr); - upb_handlers_setendseq(h, f, endseq_fieldmask, &empty_attr); - - upb_handlers_setstartmsg(h, printer_startmsg_fieldmask, &empty_attr); - upb_handlers_setendmsg(h, printer_endmsg_fieldmask, &empty_attr); - - upb_handlers_setstartstr(h, f, repeated_startstr_fieldmask, &empty_attr); - upb_handlers_setstring(h, f, repeated_str_fieldmask, &empty_attr); - - UPB_UNUSED(closure); -} - -/* Set up handlers for a duration submessage. */ -void printer_sethandlers_duration(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - - const upb_fielddef* seconds_field = - upb_msgdef_itof(md, UPB_DURATION_SECONDS); - const upb_fielddef* nanos_field = - upb_msgdef_itof(md, UPB_DURATION_NANOS); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - upb_handlers_setstartmsg(h, printer_startdurationmsg, &empty_attr); - upb_handlers_setint64(h, seconds_field, putseconds, &empty_attr); - upb_handlers_setint32(h, nanos_field, putnanos, &empty_attr); - upb_handlers_setendmsg(h, printer_enddurationmsg, &empty_attr); - - UPB_UNUSED(closure); -} - -/* Set up handlers for a timestamp submessage. Instead of printing fields - * separately, the json representation of timestamp follows RFC 3339 */ -void printer_sethandlers_timestamp(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - - const upb_fielddef* seconds_field = - upb_msgdef_itof(md, UPB_TIMESTAMP_SECONDS); - const upb_fielddef* nanos_field = - upb_msgdef_itof(md, UPB_TIMESTAMP_NANOS); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - upb_handlers_setstartmsg(h, printer_starttimestampmsg, &empty_attr); - upb_handlers_setint64(h, seconds_field, putseconds, &empty_attr); - upb_handlers_setint32(h, nanos_field, putnanos, &empty_attr); - upb_handlers_setendmsg(h, printer_endtimestampmsg, &empty_attr); - - UPB_UNUSED(closure); -} - -void printer_sethandlers_value(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - int i, n; - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - upb_handlers_setstartmsg(h, printer_startmsg_noframe, &empty_attr); - upb_handlers_setendmsg(h, printer_endmsg_noframe, &empty_attr); - - n = upb_msgdef_fieldcount(md); - for (i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - - switch (upb_fielddef_type(f)) { - case UPB_TYPE_ENUM: - upb_handlers_setint32(h, f, putnull, &empty_attr); - break; - case UPB_TYPE_DOUBLE: - upb_handlers_setdouble(h, f, putdouble, &empty_attr); - break; - case UPB_TYPE_STRING: - upb_handlers_setstartstr(h, f, scalar_startstr_nokey, &empty_attr); - upb_handlers_setstring(h, f, scalar_str, &empty_attr); - upb_handlers_setendstr(h, f, scalar_endstr, &empty_attr); - break; - case UPB_TYPE_BOOL: - upb_handlers_setbool(h, f, putbool, &empty_attr); - break; - case UPB_TYPE_MESSAGE: - break; - default: - UPB_ASSERT(false); - break; - } - } - - UPB_UNUSED(closure); -} - -#define WRAPPER_SETHANDLERS(wrapper, type, putmethod) \ -void printer_sethandlers_##wrapper(const void *closure, upb_handlers *h) { \ - const upb_msgdef *md = upb_handlers_msgdef(h); \ - const upb_fielddef* f = upb_msgdef_itof(md, 1); \ - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; \ - upb_handlers_setstartmsg(h, printer_startmsg_noframe, &empty_attr); \ - upb_handlers_setendmsg(h, printer_endmsg_noframe, &empty_attr); \ - upb_handlers_set##type(h, f, putmethod, &empty_attr); \ - UPB_UNUSED(closure); \ -} - -WRAPPER_SETHANDLERS(doublevalue, double, putdouble) -WRAPPER_SETHANDLERS(floatvalue, float, putfloat) -WRAPPER_SETHANDLERS(int64value, int64, putint64_t) -WRAPPER_SETHANDLERS(uint64value, uint64, putuint64_t) -WRAPPER_SETHANDLERS(int32value, int32, putint32_t) -WRAPPER_SETHANDLERS(uint32value, uint32, putuint32_t) -WRAPPER_SETHANDLERS(boolvalue, bool, putbool) -WRAPPER_SETHANDLERS(stringvalue, string, putstr_nokey) -WRAPPER_SETHANDLERS(bytesvalue, string, putbytes) - -#undef WRAPPER_SETHANDLERS - -void printer_sethandlers_listvalue(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - const upb_fielddef* f = upb_msgdef_itof(md, 1); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - upb_handlers_setstartseq(h, f, startseq_nokey, &empty_attr); - upb_handlers_setendseq(h, f, endseq, &empty_attr); - - upb_handlers_setstartmsg(h, printer_startmsg_noframe, &empty_attr); - upb_handlers_setendmsg(h, printer_endmsg_noframe, &empty_attr); - - upb_handlers_setstartsubmsg(h, f, repeated_startsubmsg, &empty_attr); - - UPB_UNUSED(closure); -} - -void printer_sethandlers_structvalue(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - const upb_fielddef* f = upb_msgdef_itof(md, 1); - - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - - upb_handlers_setstartseq(h, f, startmap_nokey, &empty_attr); - upb_handlers_setendseq(h, f, endmap, &empty_attr); - - upb_handlers_setstartmsg(h, printer_startmsg_noframe, &empty_attr); - upb_handlers_setendmsg(h, printer_endmsg_noframe, &empty_attr); - - upb_handlers_setstartsubmsg(h, f, repeated_startsubmsg, &empty_attr); - - UPB_UNUSED(closure); -} - -void printer_sethandlers(const void *closure, upb_handlers *h) { - const upb_msgdef *md = upb_handlers_msgdef(h); - bool is_mapentry = upb_msgdef_mapentry(md); - upb_handlerattr empty_attr = UPB_HANDLERATTR_INIT; - int i, n; - const upb_json_printercache *cache = closure; - const bool preserve_fieldnames = cache->preserve_fieldnames; - - if (is_mapentry) { - /* mapentry messages are sufficiently different that we handle them - * separately. */ - printer_sethandlers_mapentry(closure, preserve_fieldnames, h); - return; - } - - switch (upb_msgdef_wellknowntype(md)) { - case UPB_WELLKNOWN_UNSPECIFIED: - break; - case UPB_WELLKNOWN_ANY: - printer_sethandlers_any(closure, h); - return; - case UPB_WELLKNOWN_FIELDMASK: - printer_sethandlers_fieldmask(closure, h); - return; - case UPB_WELLKNOWN_DURATION: - printer_sethandlers_duration(closure, h); - return; - case UPB_WELLKNOWN_TIMESTAMP: - printer_sethandlers_timestamp(closure, h); - return; - case UPB_WELLKNOWN_VALUE: - printer_sethandlers_value(closure, h); - return; - case UPB_WELLKNOWN_LISTVALUE: - printer_sethandlers_listvalue(closure, h); - return; - case UPB_WELLKNOWN_STRUCT: - printer_sethandlers_structvalue(closure, h); - return; -#define WRAPPER(wellknowntype, name) \ - case wellknowntype: \ - printer_sethandlers_##name(closure, h); \ - return; \ - - WRAPPER(UPB_WELLKNOWN_DOUBLEVALUE, doublevalue); - WRAPPER(UPB_WELLKNOWN_FLOATVALUE, floatvalue); - WRAPPER(UPB_WELLKNOWN_INT64VALUE, int64value); - WRAPPER(UPB_WELLKNOWN_UINT64VALUE, uint64value); - WRAPPER(UPB_WELLKNOWN_INT32VALUE, int32value); - WRAPPER(UPB_WELLKNOWN_UINT32VALUE, uint32value); - WRAPPER(UPB_WELLKNOWN_BOOLVALUE, boolvalue); - WRAPPER(UPB_WELLKNOWN_STRINGVALUE, stringvalue); - WRAPPER(UPB_WELLKNOWN_BYTESVALUE, bytesvalue); - -#undef WRAPPER - } - - upb_handlers_setstartmsg(h, printer_startmsg, &empty_attr); - upb_handlers_setendmsg(h, printer_endmsg, &empty_attr); - -#define TYPE(type, name, ctype) \ - case type: \ - if (upb_fielddef_isseq(f)) { \ - upb_handlers_set##name(h, f, repeated_##ctype, &empty_attr); \ - } else { \ - upb_handlers_set##name(h, f, scalar_##ctype, &name_attr); \ - } \ - break; - - n = upb_msgdef_fieldcount(md); - for (i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - - upb_handlerattr name_attr = UPB_HANDLERATTR_INIT; - name_attr.handler_data = newstrpc(h, f, preserve_fieldnames); - - if (upb_fielddef_ismap(f)) { - upb_handlers_setstartseq(h, f, startmap, &name_attr); - upb_handlers_setendseq(h, f, endmap, &name_attr); - } else if (upb_fielddef_isseq(f)) { - upb_handlers_setstartseq(h, f, startseq, &name_attr); - upb_handlers_setendseq(h, f, endseq, &empty_attr); - } - - switch (upb_fielddef_type(f)) { - TYPE(UPB_TYPE_FLOAT, float, float); - TYPE(UPB_TYPE_DOUBLE, double, double); - TYPE(UPB_TYPE_BOOL, bool, bool); - TYPE(UPB_TYPE_INT32, int32, int32_t); - TYPE(UPB_TYPE_UINT32, uint32, uint32_t); - TYPE(UPB_TYPE_INT64, int64, int64_t); - TYPE(UPB_TYPE_UINT64, uint64, uint64_t); - case UPB_TYPE_ENUM: { - /* For now, we always emit symbolic names for enums. We may want an - * option later to control this behavior, but we will wait for a real - * need first. */ - upb_handlerattr enum_attr = UPB_HANDLERATTR_INIT; - set_enum_hd(h, f, preserve_fieldnames, &enum_attr); - - if (upb_fielddef_isseq(f)) { - upb_handlers_setint32(h, f, repeated_enum, &enum_attr); - } else { - upb_handlers_setint32(h, f, scalar_enum, &enum_attr); - } - - break; - } - case UPB_TYPE_STRING: - if (upb_fielddef_isseq(f)) { - upb_handlers_setstartstr(h, f, repeated_startstr, &empty_attr); - upb_handlers_setstring(h, f, repeated_str, &empty_attr); - upb_handlers_setendstr(h, f, repeated_endstr, &empty_attr); - } else { - upb_handlers_setstartstr(h, f, scalar_startstr, &name_attr); - upb_handlers_setstring(h, f, scalar_str, &empty_attr); - upb_handlers_setendstr(h, f, scalar_endstr, &empty_attr); - } - break; - case UPB_TYPE_BYTES: - /* XXX: this doesn't support strings that span buffers yet. The base64 - * encoder will need to be made resumable for this to work properly. */ - if (upb_fielddef_isseq(f)) { - upb_handlers_setstring(h, f, repeated_bytes, &empty_attr); - } else { - upb_handlers_setstring(h, f, scalar_bytes, &name_attr); - } - break; - case UPB_TYPE_MESSAGE: - if (upb_fielddef_isseq(f)) { - upb_handlers_setstartsubmsg(h, f, repeated_startsubmsg, &name_attr); - } else { - upb_handlers_setstartsubmsg(h, f, scalar_startsubmsg, &name_attr); - } - break; - } - } - -#undef TYPE -} - -static void json_printer_reset(upb_json_printer *p) { - p->depth_ = 0; -} - - -/* Public API *****************************************************************/ - -upb_json_printer *upb_json_printer_create(upb_arena *a, const upb_handlers *h, - upb_bytessink output) { - upb_json_printer *p = upb_arena_malloc(a, sizeof(upb_json_printer)); - if (!p) return NULL; - - p->output_ = output; - json_printer_reset(p); - upb_sink_reset(&p->input_, h, p); - p->seconds = 0; - p->nanos = 0; - - return p; -} - -upb_sink upb_json_printer_input(upb_json_printer *p) { - return p->input_; -} - -upb_handlercache *upb_json_printer_newcache(bool preserve_proto_fieldnames) { - upb_json_printercache *cache = upb_gmalloc(sizeof(*cache)); - upb_handlercache *ret = upb_handlercache_new(printer_sethandlers, cache); - - cache->preserve_fieldnames = preserve_proto_fieldnames; - upb_handlercache_addcleanup(ret, cache, upb_gfree); - - return ret; -} diff --git a/third_party/upb/upb/json/printer.h b/third_party/upb/upb/json/printer.h deleted file mode 100644 index 85b9b128f97..00000000000 --- a/third_party/upb/upb/json/printer.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -** upb::json::Printer -** -** Handlers that emit JSON according to a specific protobuf schema. -*/ - -#ifndef UPB_JSON_TYPED_PRINTER_H_ -#define UPB_JSON_TYPED_PRINTER_H_ - -#include "upb/sink.h" - -#ifdef __cplusplus -namespace upb { -namespace json { -class PrinterPtr; -} /* namespace json */ -} /* namespace upb */ -#endif - -/* upb_json_printer ***********************************************************/ - -#define UPB_JSON_PRINTER_SIZE 192 - -struct upb_json_printer; -typedef struct upb_json_printer upb_json_printer; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Native C API. */ -upb_json_printer *upb_json_printer_create(upb_arena *a, const upb_handlers *h, - upb_bytessink output); -upb_sink upb_json_printer_input(upb_json_printer *p); -const upb_handlers *upb_json_printer_newhandlers(const upb_msgdef *md, - bool preserve_fieldnames, - const void *owner); - -/* Lazily builds and caches handlers that will push encoded data to a bytessink. - * Any msgdef objects used with this object must outlive it. */ -upb_handlercache *upb_json_printer_newcache(bool preserve_proto_fieldnames); - -#ifdef __cplusplus -} /* extern "C" */ - -/* Prints an incoming stream of data to a BytesSink in JSON format. */ -class upb::json::PrinterPtr { - public: - PrinterPtr(upb_json_printer* ptr) : ptr_(ptr) {} - - static PrinterPtr Create(Arena *arena, const upb::Handlers *handlers, - BytesSink output) { - return PrinterPtr( - upb_json_printer_create(arena->ptr(), handlers, output.sink())); - } - - /* The input to the printer. */ - Sink input() { return upb_json_printer_input(ptr_); } - - static const size_t kSize = UPB_JSON_PRINTER_SIZE; - - static HandlerCache NewCache(bool preserve_proto_fieldnames) { - return upb_json_printer_newcache(preserve_proto_fieldnames); - } - - private: - upb_json_printer* ptr_; -}; - -#endif /* __cplusplus */ - -#endif /* UPB_JSON_TYPED_PRINTER_H_ */ diff --git a/third_party/upb/upb/json_decode.c b/third_party/upb/upb/json_decode.c index bb337443247..b574a178177 100644 --- a/third_party/upb/upb/json_decode.c +++ b/third_party/upb/upb/json_decode.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/json_decode.h" @@ -62,6 +88,7 @@ UPB_NORETURN static void jsondec_err(jsondec *d, const char *msg) { UPB_LONGJMP(d->err, 1); } +UPB_PRINTF(2, 3) UPB_NORETURN static void jsondec_errf(jsondec *d, const char *fmt, ...) { va_list argp; upb_status_seterrf(d->status, "Error parsing JSON @%d:%d: ", d->line, @@ -678,7 +705,7 @@ static upb_msgval jsondec_int(jsondec *d, const upb_fielddef *f) { } val.int64_val = dbl; /* must be guarded, overflow here is UB */ if (val.int64_val != dbl) { - jsondec_errf(d, "JSON number was not integral (%d != %" PRId64 ")", dbl, + jsondec_errf(d, "JSON number was not integral (%f != %" PRId64 ")", dbl, val.int64_val); } break; @@ -704,7 +731,7 @@ static upb_msgval jsondec_int(jsondec *d, const upb_fielddef *f) { /* Parse UINT32 or UINT64 value. */ static upb_msgval jsondec_uint(jsondec *d, const upb_fielddef *f) { - upb_msgval val; + upb_msgval val = {0}; switch (jsondec_peek(d)) { case JD_NUMBER: { @@ -714,7 +741,7 @@ static upb_msgval jsondec_uint(jsondec *d, const upb_fielddef *f) { } val.uint64_val = dbl; /* must be guarded, overflow here is UB */ if (val.uint64_val != dbl) { - jsondec_errf(d, "JSON number was not integral (%d != %" PRIu64 ")", dbl, + jsondec_errf(d, "JSON number was not integral (%f != %" PRIu64 ")", dbl, val.uint64_val); } break; @@ -741,7 +768,7 @@ static upb_msgval jsondec_uint(jsondec *d, const upb_fielddef *f) { /* Parse DOUBLE or FLOAT value. */ static upb_msgval jsondec_double(jsondec *d, const upb_fielddef *f) { upb_strview str; - upb_msgval val; + upb_msgval val = {0}; switch (jsondec_peek(d)) { case JD_NUMBER: @@ -905,24 +932,24 @@ static void jsondec_field(jsondec *d, upb_msg *msg, const upb_msgdef *m) { if (!f) { if ((d->options & UPB_JSONDEC_IGNOREUNKNOWN) == 0) { - jsondec_errf(d, "Unknown field: '" UPB_STRVIEW_FORMAT "'", + jsondec_errf(d, "No such field: " UPB_STRVIEW_FORMAT, UPB_STRVIEW_ARGS(name)); } jsondec_skipval(d); return; } - if (upb_fielddef_realcontainingoneof(f) && - upb_msg_whichoneof(msg, upb_fielddef_containingoneof(f))) { - jsondec_err(d, "More than one field for this oneof."); - } - if (jsondec_peek(d) == JD_NULL && !jsondec_isvalue(f)) { /* JSON "null" indicates a default value, so no need to set anything. */ jsondec_null(d); return; } + if (upb_fielddef_realcontainingoneof(f) && + upb_msg_whichoneof(msg, upb_fielddef_containingoneof(f))) { + jsondec_err(d, "More than one field for this oneof."); + } + preserved = d->debug_field; d->debug_field = f; @@ -1058,7 +1085,8 @@ static void jsondec_timestamp(jsondec *d, upb_msg *msg, const upb_msgdef *m) { { /* [+-]08:00 or Z */ - int ofs = 0; + int ofs_hour = 0; + int ofs_min = 0; bool neg = false; if (ptr == end) goto malformed; @@ -1069,9 +1097,10 @@ static void jsondec_timestamp(jsondec *d, upb_msg *msg, const upb_msgdef *m) { /* fallthrough */ case '+': if ((end - ptr) != 5) goto malformed; - ofs = jsondec_tsdigits(d, &ptr, 2, ":00"); - ofs *= 60 * 60; - seconds.int64_val += (neg ? ofs : -ofs); + ofs_hour = jsondec_tsdigits(d, &ptr, 2, ":"); + ofs_min = jsondec_tsdigits(d, &ptr, 2, NULL); + ofs_min = ((ofs_hour * 60) + ofs_min) * 60; + seconds.int64_val += (neg ? ofs_min : -ofs_min); break; case 'Z': if (ptr != end) goto malformed; @@ -1424,6 +1453,9 @@ bool upb_json_decode(const char *buf, size_t size, upb_msg *msg, const upb_msgdef *m, const upb_symtab *any_pool, int options, upb_arena *arena, upb_status *status) { jsondec d; + + if (size == 0) return true; + d.ptr = buf; d.end = buf + size; d.arena = arena; diff --git a/third_party/upb/upb/json_decode.h b/third_party/upb/upb/json_decode.h index a0ba1ee596c..9ace310454a 100644 --- a/third_party/upb/upb/json_decode.h +++ b/third_party/upb/upb/json_decode.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPB_JSONDECODE_H_ #define UPB_JSONDECODE_H_ diff --git a/third_party/upb/upb/json_encode.c b/third_party/upb/upb/json_encode.c index 9217c65b256..31725cfdd1c 100644 --- a/third_party/upb/upb/json_encode.c +++ b/third_party/upb/upb/json_encode.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/json_encode.h" @@ -32,7 +58,7 @@ static void jsonenc_scalar(jsonenc *e, upb_msgval val, const upb_fielddef *f); static void jsonenc_msgfield(jsonenc *e, const upb_msg *msg, const upb_msgdef *m); static void jsonenc_msgfields(jsonenc *e, const upb_msg *msg, - const upb_msgdef *m); + const upb_msgdef *m, bool first); static void jsonenc_value(jsonenc *e, const upb_msg *msg, const upb_msgdef *m); UPB_NORETURN static void jsonenc_err(jsonenc *e, const char *msg) { @@ -40,6 +66,7 @@ UPB_NORETURN static void jsonenc_err(jsonenc *e, const char *msg) { longjmp(e->err, 1); } +UPB_PRINTF(2, 3) UPB_NORETURN static void jsonenc_errf(jsonenc *e, const char *fmt, ...) { va_list argp; va_start(argp, fmt); @@ -62,8 +89,10 @@ static void jsonenc_putbytes(jsonenc *e, const void *data, size_t len) { memcpy(e->ptr, data, len); e->ptr += len; } else { - if (have) memcpy(e->ptr, data, have); - e->ptr += have; + if (have) { + memcpy(e->ptr, data, have); + e->ptr += have; + } e->overflow += (len - have); } } @@ -72,6 +101,7 @@ static void jsonenc_putstr(jsonenc *e, const char *str) { jsonenc_putbytes(e, str, strlen(str)); } +UPB_PRINTF(2, 3) static void jsonenc_printf(jsonenc *e, const char *fmt, ...) { size_t n; size_t have = e->end - e->ptr; @@ -84,7 +114,7 @@ static void jsonenc_printf(jsonenc *e, const char *fmt, ...) { if (UPB_LIKELY(have > n)) { e->ptr += n; } else { - e->ptr += have; + e->ptr = UPB_PTRADD(e->ptr, have); e->overflow += (n - have); } } @@ -102,7 +132,7 @@ static void jsonenc_nanos(jsonenc *e, int32_t nanos) { digits -= 3; } - jsonenc_printf(e, ".%0.*" PRId32, digits, nanos); + jsonenc_printf(e, ".%.*" PRId32, digits, nanos); } static void jsonenc_timestamp(jsonenc *e, const upb_msg *msg, @@ -188,7 +218,7 @@ static void jsonenc_bytes(jsonenc *e, upb_strview str) { static const char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; const unsigned char *ptr = (unsigned char*)str.data; - const unsigned char *end = ptr + str.size; + const unsigned char *end = UPB_PTRADD(ptr, str.size); char buf[4]; jsonenc_putstr(e, "\""); @@ -224,7 +254,7 @@ static void jsonenc_bytes(jsonenc *e, upb_strview str) { static void jsonenc_stringbody(jsonenc *e, upb_strview str) { const char *ptr = str.data; - const char *end = ptr + str.size; + const char *end = UPB_PTRADD(ptr, str.size); while (ptr < end) { switch (*ptr) { @@ -277,7 +307,17 @@ static void jsonenc_double(jsonenc *e, const char *fmt, double val) { } else if (val != val) { jsonenc_putstr(e, "\"NaN\""); } else { + char *p = e->ptr; jsonenc_printf(e, fmt, val); + + /* printf() is dependent on locales; sadly there is no easy and portable way + * to avoid this. This little post-processing step will translate 1,2 -> 1.2 + * since JSON needs the latter. Arguably a hack, but it is simple and the + * alternatives are far more complicated, platform-dependent, and/or larger + * in code size. */ + for (char *end = e->ptr; p < end; p++) { + if (*p == ',') *p = '.'; + } } } @@ -340,14 +380,13 @@ static void jsonenc_any(jsonenc *e, const upb_msg *msg, const upb_msgdef *m) { jsonenc_putstr(e, "{\"@type\":"); jsonenc_string(e, type_url); - jsonenc_putstr(e, ","); if (upb_msgdef_wellknowntype(any_m) == UPB_WELLKNOWN_UNSPECIFIED) { /* Regular messages: {"@type": "...","foo": 1, "bar": 2} */ - jsonenc_msgfields(e, any, any_m); + jsonenc_msgfields(e, any, any_m, false); } else { /* Well-known type: {"@type": "...","value": } */ - jsonenc_putstr(e, "\"value\":"); + jsonenc_putstr(e, ",\"value\":"); jsonenc_msgfield(e, any, any_m); } @@ -650,10 +689,9 @@ static void jsonenc_fieldval(jsonenc *e, const upb_fielddef *f, } static void jsonenc_msgfields(jsonenc *e, const upb_msg *msg, - const upb_msgdef *m) { + const upb_msgdef *m, bool first) { upb_msgval val; const upb_fielddef *f; - bool first = true; if (e->options & UPB_JSONENC_EMITDEFAULTS) { /* Iterate over all fields. */ @@ -676,7 +714,7 @@ static void jsonenc_msgfields(jsonenc *e, const upb_msg *msg, static void jsonenc_msg(jsonenc *e, const upb_msg *msg, const upb_msgdef *m) { jsonenc_putstr(e, "{"); - jsonenc_msgfields(e, msg, m); + jsonenc_msgfields(e, msg, m, true); jsonenc_putstr(e, "}"); } @@ -698,7 +736,7 @@ size_t upb_json_encode(const upb_msg *msg, const upb_msgdef *m, e.buf = buf; e.ptr = buf; - e.end = buf + size; + e.end = UPB_PTRADD(buf, size); e.overflow = 0; e.options = options; e.ext_pool = ext_pool; diff --git a/third_party/upb/upb/json_encode.h b/third_party/upb/upb/json_encode.h index 0ad4163cdfc..1065af7fe71 100644 --- a/third_party/upb/upb/json_encode.h +++ b/third_party/upb/upb/json_encode.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPB_JSONENCODE_H_ #define UPB_JSONENCODE_H_ diff --git a/third_party/upb/upb/msg.c b/third_party/upb/upb/msg.c index 876a06d6fa5..ad2d547e219 100644 --- a/third_party/upb/upb/msg.c +++ b/third_party/upb/upb/msg.c @@ -1,13 +1,39 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/msg.h" -#include "upb/table.int.h" - +#include "upb/msg_internal.h" #include "upb/port_def.inc" +#include "upb/table_internal.h" /** upb_msg *******************************************************************/ -static const size_t overhead = sizeof(upb_msg_internal); +static const size_t overhead = sizeof(upb_msg_internaldata); static const upb_msg_internal *upb_msg_getinternal_const(const upb_msg *msg) { ptrdiff_t size = sizeof(upb_msg_internal); @@ -23,49 +49,107 @@ void _upb_msg_clear(upb_msg *msg, const upb_msglayout *l) { memset(mem, 0, upb_msg_sizeof(l)); } +static bool realloc_internal(upb_msg *msg, size_t need, upb_arena *arena) { + upb_msg_internal *in = upb_msg_getinternal(msg); + if (!in->internal) { + /* No internal data, allocate from scratch. */ + size_t size = UPB_MAX(128, _upb_lg2ceilsize(need + overhead)); + upb_msg_internaldata *internal = upb_arena_malloc(arena, size); + if (!internal) return false; + internal->size = size; + internal->unknown_end = overhead; + internal->ext_begin = size; + in->internal = internal; + } else if (in->internal->ext_begin - in->internal->unknown_end < need) { + /* Internal data is too small, reallocate. */ + size_t new_size = _upb_lg2ceilsize(in->internal->size + need); + size_t ext_bytes = in->internal->size - in->internal->ext_begin; + size_t new_ext_begin = new_size - ext_bytes; + upb_msg_internaldata *internal = + upb_arena_realloc(arena, in->internal, in->internal->size, new_size); + if (!internal) return false; + if (ext_bytes) { + /* Need to move extension data to the end. */ + char *ptr = (char*)internal; + memmove(ptr + new_ext_begin, ptr + internal->ext_begin, ext_bytes); + } + internal->ext_begin = new_ext_begin; + internal->size = new_size; + in->internal = internal; + } + UPB_ASSERT(in->internal->ext_begin - in->internal->unknown_end >= need); + return true; +} + bool _upb_msg_addunknown(upb_msg *msg, const char *data, size_t len, upb_arena *arena) { - + if (!realloc_internal(msg, len, arena)) return false; upb_msg_internal *in = upb_msg_getinternal(msg); - if (!in->unknown) { - size_t size = 128; - while (size < len) size *= 2; - in->unknown = upb_arena_malloc(arena, size + overhead); - if (!in->unknown) return false; - in->unknown->size = size; - in->unknown->len = 0; - } else if (in->unknown->size - in->unknown->len < len) { - size_t need = in->unknown->len + len; - size_t size = in->unknown->size; - while (size < need) size *= 2; - in->unknown = upb_arena_realloc( - arena, in->unknown, in->unknown->size + overhead, size + overhead); - if (!in->unknown) return false; - in->unknown->size = size; - } - memcpy(UPB_PTR_AT(in->unknown + 1, in->unknown->len, char), data, len); - in->unknown->len += len; + memcpy(UPB_PTR_AT(in->internal, in->internal->unknown_end, char), data, len); + in->internal->unknown_end += len; return true; } void _upb_msg_discardunknown_shallow(upb_msg *msg) { upb_msg_internal *in = upb_msg_getinternal(msg); - if (in->unknown) { - in->unknown->len = 0; + if (in->internal) { + in->internal->unknown_end = overhead; } } const char *upb_msg_getunknown(const upb_msg *msg, size_t *len) { const upb_msg_internal *in = upb_msg_getinternal_const(msg); - if (in->unknown) { - *len = in->unknown->len; - return (char*)(in->unknown + 1); + if (in->internal) { + *len = in->internal->unknown_end - overhead; + return (char*)(in->internal + 1); } else { *len = 0; return NULL; } } +const upb_msg_ext *_upb_msg_getexts(const upb_msg *msg, size_t *count) { + const upb_msg_internal *in = upb_msg_getinternal_const(msg); + if (in->internal) { + *count = + (in->internal->size - in->internal->ext_begin) / sizeof(upb_msg_ext); + return UPB_PTR_AT(in->internal, in->internal->ext_begin, void); + } else { + *count = 0; + return NULL; + } +} + +const upb_msg_ext *_upb_msg_getext(const upb_msg *msg, + const upb_msglayout_ext *e) { + size_t n; + const upb_msg_ext *ext = _upb_msg_getexts(msg, &n); + + /* For now we use linear search exclusively to find extensions. If this + * becomes an issue due to messages with lots of extensions, we can introduce + * a table of some sort. */ + for (size_t i = 0; i < n; i++) { + if (ext[i].ext == e) { + return &ext[i]; + } + } + + return NULL; +} + +upb_msg_ext *_upb_msg_getorcreateext(upb_msg *msg, const upb_msglayout_ext *e, + upb_arena *arena) { + upb_msg_ext *ext = (upb_msg_ext*)_upb_msg_getext(msg, e); + if (ext) return ext; + if (!realloc_internal(msg, sizeof(upb_msg_ext), arena)) return NULL; + upb_msg_internal *in = upb_msg_getinternal(msg); + in->internal->ext_begin -= sizeof(upb_msg_ext); + ext = UPB_PTR_AT(in->internal, in->internal->ext_begin, void); + memset(ext, 0, sizeof(upb_msg_ext)); + ext->ext = e; + return ext; +} + /** upb_array *****************************************************************/ bool _upb_array_realloc(upb_array *arr, size_t min_size, upb_arena *arena) { @@ -133,7 +217,7 @@ upb_map *_upb_map_new(upb_arena *a, size_t key_size, size_t value_size) { return NULL; } - upb_strtable_init2(&map->table, UPB_CTYPE_INT32, 4, upb_arena_alloc(a)); + upb_strtable_init(&map->table, 4, a); map->key_size = key_size; map->val_size = value_size; @@ -254,3 +338,60 @@ bool _upb_mapsorter_pushmap(_upb_mapsorter *s, upb_descriptortype_t key_type, qsort(&s->entries[sorted->start], map_size, sizeof(*s->entries), compar); return true; } + +/** upb_extreg ****************************************************************/ + +struct upb_extreg { + upb_arena *arena; + upb_strtable exts; /* Key is upb_msglayout* concatenated with fieldnum. */ +}; + +#define EXTREG_KEY_SIZE (sizeof(upb_msglayout*) + sizeof(uint32_t)) + +static void extreg_key(char *buf, const upb_msglayout *l, uint32_t fieldnum) { + memcpy(buf, &l, sizeof(l)); + memcpy(buf + sizeof(l), &fieldnum, sizeof(fieldnum)); +} + +upb_extreg *upb_extreg_new(upb_arena *arena) { + upb_extreg *r = upb_arena_malloc(arena, sizeof(*r)); + if (!r) return NULL; + r->arena = arena; + if (!upb_strtable_init(&r->exts, 8, arena)) return NULL; + return r; +} + +bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext *e, size_t count) { + char buf[EXTREG_KEY_SIZE]; + const upb_msglayout_ext *start = e; + const upb_msglayout_ext *end = e + count; + for (; e < end; e++) { + extreg_key(buf, e->extendee, e->field.number); + if (!upb_strtable_insert(&r->exts, buf, EXTREG_KEY_SIZE, + upb_value_constptr(e), r->arena)) { + goto failure; + } + } + return true; + +failure: + /* Back out the entries previously added. */ + for (end = e, e = start; e < end; e++) { + extreg_key(buf, e->extendee, e->field.number); + upb_strtable_remove(&r->exts, buf, EXTREG_KEY_SIZE, NULL); + } + return false; +} + +const upb_msglayout_field *_upb_extreg_get(const upb_extreg *r, + const upb_msglayout *l, + uint32_t num) { + char buf[EXTREG_KEY_SIZE]; + upb_value v; + extreg_key(buf, l, num); + if (upb_strtable_lookup2(&r->exts, buf, EXTREG_KEY_SIZE, &v)) { + return upb_value_getconstptr(v); + } else { + return NULL; + } +} diff --git a/third_party/upb/upb/msg.h b/third_party/upb/upb/msg.h index 9b4557ac183..497bd82b015 100644 --- a/third_party/upb/upb/msg.h +++ b/third_party/upb/upb/msg.h @@ -1,613 +1,108 @@ /* -** Our memory representation for parsing tables and messages themselves. -** Functions in this file are used by generated code and possibly reflection. -** -** The definitions in this file are internal to upb. -**/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Public APIs for message operations that do not require descriptors. + * These functions can be used even in build that does not want to depend on + * reflection or descriptors. + * + * Descriptor-based reflection functionality lives in reflection.h. + */ #ifndef UPB_MSG_H_ #define UPB_MSG_H_ -#include -#include -#include +#include -#include "upb/table.int.h" #include "upb/upb.h" -/* Must be last. */ -#include "upb/port_def.inc" - #ifdef __cplusplus extern "C" { #endif -#define PTR_AT(msg, ofs, type) (type*)((const char*)msg + ofs) - typedef void upb_msg; -/** upb_msglayout *************************************************************/ - -/* upb_msglayout represents the memory layout of a given upb_msgdef. The - * members are public so generated code can initialize them, but users MUST NOT - * read or write any of its members. */ - -/* These aren't real labels according to descriptor.proto, but in the table we - * use these for map/packed fields instead of UPB_LABEL_REPEATED. */ -enum { - _UPB_LABEL_MAP = 4, - _UPB_LABEL_PACKED = 7 /* Low 3 bits are common with UPB_LABEL_REPEATED. */ -}; - -typedef struct { - uint32_t number; - uint16_t offset; - int16_t presence; /* If >0, hasbit_index. If <0, ~oneof_index. */ - uint16_t submsg_index; /* undefined if descriptortype != MESSAGE or GROUP. */ - uint8_t descriptortype; - uint8_t label; /* google.protobuf.Label or _UPB_LABEL_* above. */ -} upb_msglayout_field; - -struct upb_decstate; +/* For users these are opaque. They can be obtained from upb_msgdef_layout() + * but users cannot access any of the members. */ struct upb_msglayout; - -typedef const char *_upb_field_parser(struct upb_decstate *d, const char *ptr, - upb_msg *msg, intptr_t table, - uint64_t hasbits, uint64_t data); - -typedef struct { - uint64_t field_data; - _upb_field_parser *field_parser; -} _upb_fasttable_entry; - -typedef struct upb_msglayout { - const struct upb_msglayout *const* submsgs; - const upb_msglayout_field *fields; - /* Must be aligned to sizeof(void*). Doesn't include internal members like - * unknown fields, extension dict, pointer to msglayout, etc. */ - uint16_t size; - uint16_t field_count; - bool extendable; - uint8_t table_mask; - /* To constant-initialize the tables of variable length, we need a flexible - * array member, and we need to compile in C99 mode. */ - _upb_fasttable_entry fasttable[]; -} upb_msglayout; - -/** upb_msg *******************************************************************/ - -/* Internal members of a upb_msg. We can change this without breaking binary - * compatibility. We put these before the user's data. The user's upb_msg* - * points after the upb_msg_internal. */ - -typedef struct { - uint32_t len; - uint32_t size; - /* Data follows. */ -} upb_msg_unknowndata; - -/* Used when a message is not extendable. */ -typedef struct { - upb_msg_unknowndata *unknown; -} upb_msg_internal; - -/* Maps upb_fieldtype_t -> memory size. */ -extern char _upb_fieldtype_to_size[12]; - -UPB_INLINE size_t upb_msg_sizeof(const upb_msglayout *l) { - return l->size + sizeof(upb_msg_internal); -} - -UPB_INLINE upb_msg *_upb_msg_new_inl(const upb_msglayout *l, upb_arena *a) { - size_t size = upb_msg_sizeof(l); - void *mem = upb_arena_malloc(a, size); - upb_msg *msg; - if (UPB_UNLIKELY(!mem)) return NULL; - msg = UPB_PTR_AT(mem, sizeof(upb_msg_internal), upb_msg); - memset(mem, 0, size); - return msg; -} - -/* Creates a new messages with the given layout on the given arena. */ -upb_msg *_upb_msg_new(const upb_msglayout *l, upb_arena *a); - -UPB_INLINE upb_msg_internal *upb_msg_getinternal(upb_msg *msg) { - ptrdiff_t size = sizeof(upb_msg_internal); - return (upb_msg_internal*)((char*)msg - size); -} - -/* Clears the given message. */ -void _upb_msg_clear(upb_msg *msg, const upb_msglayout *l); - -/* Discards the unknown fields for this message only. */ -void _upb_msg_discardunknown_shallow(upb_msg *msg); +typedef struct upb_msglayout upb_msglayout; /* Adds unknown data (serialized protobuf data) to the given message. The data * is copied into the message instance. */ -bool _upb_msg_addunknown(upb_msg *msg, const char *data, size_t len, - upb_arena *arena); +void upb_msg_addunknown(upb_msg *msg, const char *data, size_t len, + upb_arena *arena); /* Returns a reference to the message's unknown data. */ const char *upb_msg_getunknown(const upb_msg *msg, size_t *len); -/** Hasbit access *************************************************************/ - -UPB_INLINE bool _upb_hasbit(const upb_msg *msg, size_t idx) { - return (*PTR_AT(msg, idx / 8, const char) & (1 << (idx % 8))) != 0; -} - -UPB_INLINE void _upb_sethas(const upb_msg *msg, size_t idx) { - (*PTR_AT(msg, idx / 8, char)) |= (char)(1 << (idx % 8)); -} - -UPB_INLINE void _upb_clearhas(const upb_msg *msg, size_t idx) { - (*PTR_AT(msg, idx / 8, char)) &= (char)(~(1 << (idx % 8))); -} - -UPB_INLINE size_t _upb_msg_hasidx(const upb_msglayout_field *f) { - UPB_ASSERT(f->presence > 0); - return f->presence; -} - -UPB_INLINE bool _upb_hasbit_field(const upb_msg *msg, - const upb_msglayout_field *f) { - return _upb_hasbit(msg, _upb_msg_hasidx(f)); -} - -UPB_INLINE void _upb_sethas_field(const upb_msg *msg, - const upb_msglayout_field *f) { - _upb_sethas(msg, _upb_msg_hasidx(f)); -} - -UPB_INLINE void _upb_clearhas_field(const upb_msg *msg, - const upb_msglayout_field *f) { - _upb_clearhas(msg, _upb_msg_hasidx(f)); -} - -/** Oneof case access *********************************************************/ - -UPB_INLINE uint32_t *_upb_oneofcase(upb_msg *msg, size_t case_ofs) { - return PTR_AT(msg, case_ofs, uint32_t); -} - -UPB_INLINE uint32_t _upb_getoneofcase(const void *msg, size_t case_ofs) { - return *PTR_AT(msg, case_ofs, uint32_t); -} - -UPB_INLINE size_t _upb_oneofcase_ofs(const upb_msglayout_field *f) { - UPB_ASSERT(f->presence < 0); - return ~(ptrdiff_t)f->presence; -} - -UPB_INLINE uint32_t *_upb_oneofcase_field(upb_msg *msg, - const upb_msglayout_field *f) { - return _upb_oneofcase(msg, _upb_oneofcase_ofs(f)); -} - -UPB_INLINE uint32_t _upb_getoneofcase_field(const upb_msg *msg, - const upb_msglayout_field *f) { - return _upb_getoneofcase(msg, _upb_oneofcase_ofs(f)); -} - -UPB_INLINE bool _upb_has_submsg_nohasbit(const upb_msg *msg, size_t ofs) { - return *PTR_AT(msg, ofs, const upb_msg*) != NULL; -} - -UPB_INLINE bool _upb_isrepeated(const upb_msglayout_field *field) { - return (field->label & 3) == UPB_LABEL_REPEATED; -} - -UPB_INLINE bool _upb_repeated_or_map(const upb_msglayout_field *field) { - return field->label >= UPB_LABEL_REPEATED; -} - -/** upb_array *****************************************************************/ - -/* Our internal representation for repeated fields. */ -typedef struct { - uintptr_t data; /* Tagged ptr: low 3 bits of ptr are lg2(elem size). */ - size_t len; /* Measured in elements. */ - size_t size; /* Measured in elements. */ - uint64_t junk; -} upb_array; - -UPB_INLINE const void *_upb_array_constptr(const upb_array *arr) { - UPB_ASSERT((arr->data & 7) <= 4); - return (void*)(arr->data & ~(uintptr_t)7); -} - -UPB_INLINE uintptr_t _upb_array_tagptr(void* ptr, int elem_size_lg2) { - UPB_ASSERT(elem_size_lg2 <= 4); - return (uintptr_t)ptr | elem_size_lg2; -} - -UPB_INLINE void *_upb_array_ptr(upb_array *arr) { - return (void*)_upb_array_constptr(arr); -} - -UPB_INLINE uintptr_t _upb_tag_arrptr(void* ptr, int elem_size_lg2) { - UPB_ASSERT(elem_size_lg2 <= 4); - UPB_ASSERT(((uintptr_t)ptr & 7) == 0); - return (uintptr_t)ptr | (unsigned)elem_size_lg2; -} - -UPB_INLINE upb_array *_upb_array_new(upb_arena *a, size_t init_size, - int elem_size_lg2) { - const size_t arr_size = UPB_ALIGN_UP(sizeof(upb_array), 8); - const size_t bytes = sizeof(upb_array) + (init_size << elem_size_lg2); - upb_array *arr = (upb_array*)upb_arena_malloc(a, bytes); - if (!arr) return NULL; - arr->data = _upb_tag_arrptr(UPB_PTR_AT(arr, arr_size, void), elem_size_lg2); - arr->len = 0; - arr->size = init_size; - return arr; -} +/** upb_extreg *******************************************************************/ -/* Resizes the capacity of the array to be at least min_size. */ -bool _upb_array_realloc(upb_array *arr, size_t min_size, upb_arena *arena); - -/* Fallback functions for when the accessors require a resize. */ -void *_upb_array_resize_fallback(upb_array **arr_ptr, size_t size, - int elem_size_lg2, upb_arena *arena); -bool _upb_array_append_fallback(upb_array **arr_ptr, const void *value, - int elem_size_lg2, upb_arena *arena); - -UPB_INLINE bool _upb_array_reserve(upb_array *arr, size_t size, - upb_arena *arena) { - if (arr->size < size) return _upb_array_realloc(arr, size, arena); - return true; -} - -UPB_INLINE bool _upb_array_resize(upb_array *arr, size_t size, - upb_arena *arena) { - if (!_upb_array_reserve(arr, size, arena)) return false; - arr->len = size; - return true; -} - -UPB_INLINE const void *_upb_array_accessor(const void *msg, size_t ofs, - size_t *size) { - const upb_array *arr = *PTR_AT(msg, ofs, const upb_array*); - if (arr) { - if (size) *size = arr->len; - return _upb_array_constptr(arr); - } else { - if (size) *size = 0; - return NULL; - } -} - -UPB_INLINE void *_upb_array_mutable_accessor(void *msg, size_t ofs, - size_t *size) { - upb_array *arr = *PTR_AT(msg, ofs, upb_array*); - if (arr) { - if (size) *size = arr->len; - return _upb_array_ptr(arr); - } else { - if (size) *size = 0; - return NULL; - } -} - -UPB_INLINE void *_upb_array_resize_accessor2(void *msg, size_t ofs, size_t size, - int elem_size_lg2, - upb_arena *arena) { - upb_array **arr_ptr = PTR_AT(msg, ofs, upb_array *); - upb_array *arr = *arr_ptr; - if (!arr || arr->size < size) { - return _upb_array_resize_fallback(arr_ptr, size, elem_size_lg2, arena); - } - arr->len = size; - return _upb_array_ptr(arr); -} - -UPB_INLINE bool _upb_array_append_accessor2(void *msg, size_t ofs, - int elem_size_lg2, - const void *value, - upb_arena *arena) { - upb_array **arr_ptr = PTR_AT(msg, ofs, upb_array *); - size_t elem_size = 1 << elem_size_lg2; - upb_array *arr = *arr_ptr; - void *ptr; - if (!arr || arr->len == arr->size) { - return _upb_array_append_fallback(arr_ptr, value, elem_size_lg2, arena); - } - ptr = _upb_array_ptr(arr); - memcpy(PTR_AT(ptr, arr->len * elem_size, char), value, elem_size); - arr->len++; - return true; -} - -/* Used by old generated code, remove once all code has been regenerated. */ -UPB_INLINE int _upb_sizelg2(upb_fieldtype_t type) { - switch (type) { - case UPB_TYPE_BOOL: - return 0; - case UPB_TYPE_FLOAT: - case UPB_TYPE_INT32: - case UPB_TYPE_UINT32: - case UPB_TYPE_ENUM: - return 2; - case UPB_TYPE_MESSAGE: - return UPB_SIZE(2, 3); - case UPB_TYPE_DOUBLE: - case UPB_TYPE_INT64: - case UPB_TYPE_UINT64: - return 3; - case UPB_TYPE_STRING: - case UPB_TYPE_BYTES: - return UPB_SIZE(3, 4); - } - UPB_UNREACHABLE(); -} -UPB_INLINE void *_upb_array_resize_accessor(void *msg, size_t ofs, size_t size, - upb_fieldtype_t type, - upb_arena *arena) { - return _upb_array_resize_accessor2(msg, ofs, size, _upb_sizelg2(type), arena); -} -UPB_INLINE bool _upb_array_append_accessor(void *msg, size_t ofs, - size_t elem_size, upb_fieldtype_t type, - const void *value, - upb_arena *arena) { - (void)elem_size; - return _upb_array_append_accessor2(msg, ofs, _upb_sizelg2(type), value, - arena); -} - -/** upb_map *******************************************************************/ - -/* Right now we use strmaps for everything. We'll likely want to use - * integer-specific maps for integer-keyed maps.*/ -typedef struct { - /* Size of key and val, based on the map type. Strings are represented as '0' - * because they must be handled specially. */ - char key_size; - char val_size; - - upb_strtable table; -} upb_map; - -/* Map entries aren't actually stored, they are only used during parsing. For - * parsing, it helps a lot if all map entry messages have the same layout. - * The compiler and def.c must ensure that all map entries have this layout. */ -typedef struct { - upb_msg_internal internal; - union { - upb_strview str; /* For str/bytes. */ - upb_value val; /* For all other types. */ - } k; - union { - upb_strview str; /* For str/bytes. */ - upb_value val; /* For all other types. */ - } v; -} upb_map_entry; - -/* Creates a new map on the given arena with this key/value type. */ -upb_map *_upb_map_new(upb_arena *a, size_t key_size, size_t value_size); - -/* Converting between internal table representation and user values. +/* Extension registry: a dynamic data structure that stores a map of: + * (upb_msglayout, number) -> extension info + * + * upb_decode() uses upb_extreg to look up extensions while parsing binary + * format. + * + * upb_extreg is part of the mini-table (msglayout) family of objects. Like all + * mini-table objects, it is suitable for reflection-less builds that do not + * want to expose names into the binary. * - * _upb_map_tokey() and _upb_map_fromkey() are inverses. - * _upb_map_tovalue() and _upb_map_fromvalue() are inverses. + * Unlike most mini-table types, upb_extreg requires dynamic memory allocation + * and dynamic initialization: + * * If reflection is being used, then upb_symtab will construct an appropriate + * upb_extreg automatically. + * * For a mini-table only build, the user must manually construct the + * upb_extreg and populate it with all of the extensions the user cares about. + * * A third alternative is to manually unpack relevant extensions after the + * main parse is complete, similar to how Any works. This is perhaps the + * nicest solution from the perspective of reducing dependencies, avoiding + * dynamic memory allocation, and avoiding the need to parse uninteresting + * extensions. The downsides are: + * (1) parse errors are not caught during the main parse + * (2) the CPU hit of parsing comes during access, which could cause an + * undesirable stutter in application performance. * - * These functions account for the fact that strings are treated differently - * from other types when stored in a map. + * Users cannot directly get or put into this map. Users can only add the + * extensions from a generated module and pass the extension registry to the + * binary decoder. + * + * A upb_symtab provides a upb_extreg, so any users who use reflection do not + * need to populate a upb_extreg directly. */ -UPB_INLINE upb_strview _upb_map_tokey(const void *key, size_t size) { - if (size == UPB_MAPTYPE_STRING) { - return *(upb_strview*)key; - } else { - return upb_strview_make((const char*)key, size); - } -} - -UPB_INLINE void _upb_map_fromkey(upb_strview key, void* out, size_t size) { - if (size == UPB_MAPTYPE_STRING) { - memcpy(out, &key, sizeof(key)); - } else { - memcpy(out, key.data, size); - } -} - -UPB_INLINE bool _upb_map_tovalue(const void *val, size_t size, upb_value *msgval, - upb_arena *a) { - if (size == UPB_MAPTYPE_STRING) { - upb_strview *strp = (upb_strview*)upb_arena_malloc(a, sizeof(*strp)); - if (!strp) return false; - *strp = *(upb_strview*)val; - *msgval = upb_value_ptr(strp); - } else { - memcpy(msgval, val, size); - } - return true; -} - -UPB_INLINE void _upb_map_fromvalue(upb_value val, void* out, size_t size) { - if (size == UPB_MAPTYPE_STRING) { - const upb_strview *strp = (const upb_strview*)upb_value_getptr(val); - memcpy(out, strp, sizeof(upb_strview)); - } else { - memcpy(out, &val, size); - } -} - -/* Map operations, shared by reflection and generated code. */ - -UPB_INLINE size_t _upb_map_size(const upb_map *map) { - return map->table.t.count; -} - -UPB_INLINE bool _upb_map_get(const upb_map *map, const void *key, - size_t key_size, void *val, size_t val_size) { - upb_value tabval; - upb_strview k = _upb_map_tokey(key, key_size); - bool ret = upb_strtable_lookup2(&map->table, k.data, k.size, &tabval); - if (ret && val) { - _upb_map_fromvalue(tabval, val, val_size); - } - return ret; -} - -UPB_INLINE void* _upb_map_next(const upb_map *map, size_t *iter) { - upb_strtable_iter it; - it.t = &map->table; - it.index = *iter; - upb_strtable_next(&it); - *iter = it.index; - if (upb_strtable_done(&it)) return NULL; - return (void*)str_tabent(&it); -} - -UPB_INLINE bool _upb_map_set(upb_map *map, const void *key, size_t key_size, - void *val, size_t val_size, upb_arena *arena) { - upb_strview strkey = _upb_map_tokey(key, key_size); - upb_value tabval = {0}; - if (!_upb_map_tovalue(val, val_size, &tabval, arena)) return false; - upb_alloc *a = upb_arena_alloc(arena); +struct upb_extreg; +typedef struct upb_extreg upb_extreg; - /* TODO(haberman): add overwrite operation to minimize number of lookups. */ - upb_strtable_remove3(&map->table, strkey.data, strkey.size, NULL, a); - return upb_strtable_insert3(&map->table, strkey.data, strkey.size, tabval, a); -} - -UPB_INLINE bool _upb_map_delete(upb_map *map, const void *key, size_t key_size) { - upb_strview k = _upb_map_tokey(key, key_size); - return upb_strtable_remove3(&map->table, k.data, k.size, NULL, NULL); -} - -UPB_INLINE void _upb_map_clear(upb_map *map) { - upb_strtable_clear(&map->table); -} - -/* Message map operations, these get the map from the message first. */ - -UPB_INLINE size_t _upb_msg_map_size(const upb_msg *msg, size_t ofs) { - upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); - return map ? _upb_map_size(map) : 0; -} - -UPB_INLINE bool _upb_msg_map_get(const upb_msg *msg, size_t ofs, - const void *key, size_t key_size, void *val, - size_t val_size) { - upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); - if (!map) return false; - return _upb_map_get(map, key, key_size, val, val_size); -} - -UPB_INLINE void *_upb_msg_map_next(const upb_msg *msg, size_t ofs, - size_t *iter) { - upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); - if (!map) return NULL; - return _upb_map_next(map, iter); -} - -UPB_INLINE bool _upb_msg_map_set(upb_msg *msg, size_t ofs, const void *key, - size_t key_size, void *val, size_t val_size, - upb_arena *arena) { - upb_map **map = PTR_AT(msg, ofs, upb_map *); - if (!*map) { - *map = _upb_map_new(arena, key_size, val_size); - } - return _upb_map_set(*map, key, key_size, val, val_size, arena); -} - -UPB_INLINE bool _upb_msg_map_delete(upb_msg *msg, size_t ofs, const void *key, - size_t key_size) { - upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); - if (!map) return false; - return _upb_map_delete(map, key, key_size); -} - -UPB_INLINE void _upb_msg_map_clear(upb_msg *msg, size_t ofs) { - upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); - if (!map) return; - _upb_map_clear(map); -} - -/* Accessing map key/value from a pointer, used by generated code only. */ - -UPB_INLINE void _upb_msg_map_key(const void* msg, void* key, size_t size) { - const upb_tabent *ent = (const upb_tabent*)msg; - uint32_t u32len; - upb_strview k; - k.data = upb_tabstr(ent->key, &u32len); - k.size = u32len; - _upb_map_fromkey(k, key, size); -} - -UPB_INLINE void _upb_msg_map_value(const void* msg, void* val, size_t size) { - const upb_tabent *ent = (const upb_tabent*)msg; - upb_value v; - _upb_value_setval(&v, ent->val.val); - _upb_map_fromvalue(v, val, size); -} - -UPB_INLINE void _upb_msg_map_set_value(void* msg, const void* val, size_t size) { - upb_tabent *ent = (upb_tabent*)msg; - /* This is like _upb_map_tovalue() except the entry already exists so we can - * reuse the allocated upb_strview for string fields. */ - if (size == UPB_MAPTYPE_STRING) { - upb_strview *strp = (upb_strview*)(uintptr_t)ent->val.val; - memcpy(strp, val, sizeof(*strp)); - } else { - memcpy(&ent->val.val, val, size); - } -} - -/** _upb_mapsorter *************************************************************/ - -/* _upb_mapsorter sorts maps and provides ordered iteration over the entries. - * Since maps can be recursive (map values can be messages which contain other maps). - * _upb_mapsorter can contain a stack of maps. */ - -typedef struct { - upb_tabent const**entries; - int size; - int cap; -} _upb_mapsorter; - -typedef struct { - int start; - int pos; - int end; -} _upb_sortedmap; - -UPB_INLINE void _upb_mapsorter_init(_upb_mapsorter *s) { - s->entries = NULL; - s->size = 0; - s->cap = 0; -} - -UPB_INLINE void _upb_mapsorter_destroy(_upb_mapsorter *s) { - if (s->entries) free(s->entries); -} - -bool _upb_mapsorter_pushmap(_upb_mapsorter *s, upb_descriptortype_t key_type, - const upb_map *map, _upb_sortedmap *sorted); - -UPB_INLINE void _upb_mapsorter_popmap(_upb_mapsorter *s, _upb_sortedmap *sorted) { - s->size = sorted->start; -} - -UPB_INLINE bool _upb_sortedmap_next(_upb_mapsorter *s, const upb_map *map, - _upb_sortedmap *sorted, - upb_map_entry *ent) { - if (sorted->pos == sorted->end) return false; - const upb_tabent *tabent = s->entries[sorted->pos++]; - upb_strview key = upb_tabstrview(tabent->key); - _upb_map_fromkey(key, &ent->k, map->key_size); - upb_value val = {tabent->val.val}; - _upb_map_fromvalue(val, &ent->v, map->val_size); - return true; -} - -#undef PTR_AT +/* Creates a upb_extreg in the given arena. The arena must outlive any use of + * the extreg. */ +upb_extreg *upb_extreg_new(upb_arena *arena); #ifdef __cplusplus } /* extern "C" */ #endif -#include "upb/port_undef.inc" - -#endif /* UPB_MSG_H_ */ +#endif /* UPB_MSG_INT_H_ */ diff --git a/third_party/upb/upb/msg_internal.h b/third_party/upb/upb/msg_internal.h new file mode 100644 index 00000000000..24517002eac --- /dev/null +++ b/third_party/upb/upb/msg_internal.h @@ -0,0 +1,687 @@ +/* +** Our memory representation for parsing tables and messages themselves. +** Functions in this file are used by generated code and possibly reflection. +** +** The definitions in this file are internal to upb. +**/ + +#ifndef UPB_MSG_INT_H_ +#define UPB_MSG_INT_H_ + +#include +#include +#include + +#include "upb/msg.h" +#include "upb/table_internal.h" +#include "upb/upb.h" + +/* Must be last. */ +#include "upb/port_def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +/** upb_msglayout *************************************************************/ + +/* upb_msglayout represents the memory layout of a given upb_msgdef. The + * members are public so generated code can initialize them, but users MUST NOT + * read or write any of its members. */ + +/* These aren't real labels according to descriptor.proto, but in the table we + * use these for map/packed fields instead of UPB_LABEL_REPEATED. */ +enum { + _UPB_LABEL_MAP = 4, + _UPB_LABEL_PACKED = 7 /* Low 3 bits are common with UPB_LABEL_REPEATED. */ +}; + +typedef struct { + uint32_t number; + uint16_t offset; + int16_t presence; /* If >0, hasbit_index. If <0, ~oneof_index. */ + uint16_t submsg_index; /* undefined if descriptortype != MESSAGE or GROUP. */ + uint8_t descriptortype; + int8_t mode; /* upb_fieldmode, with flags from upb_labelflags */ +} upb_msglayout_field; + +typedef enum { + _UPB_MODE_MAP = 0, + _UPB_MODE_ARRAY = 1, + _UPB_MODE_SCALAR = 2, +} upb_fieldmode; + +/* Extra flags on the mode field. */ +enum upb_labelflags { + _UPB_MODE_IS_PACKED = 4, +}; + +UPB_INLINE upb_fieldmode _upb_getmode(const upb_msglayout_field *field) { + return (upb_fieldmode)(field->mode & 3); +} + +UPB_INLINE bool _upb_repeated_or_map(const upb_msglayout_field *field) { + /* This works because upb_fieldmode has no value 3. */ + return !(field->mode & _UPB_MODE_SCALAR); +} + +UPB_INLINE bool _upb_issubmsg(const upb_msglayout_field *field) { + return field->descriptortype == UPB_DTYPE_MESSAGE || + field->descriptortype == UPB_DTYPE_GROUP; +} + +struct upb_decstate; +struct upb_msglayout; + +typedef const char *_upb_field_parser(struct upb_decstate *d, const char *ptr, + upb_msg *msg, intptr_t table, + uint64_t hasbits, uint64_t data); + +typedef struct { + uint64_t field_data; + _upb_field_parser *field_parser; +} _upb_fasttable_entry; + +struct upb_msglayout { + const struct upb_msglayout *const* submsgs; + const upb_msglayout_field *fields; + /* Must be aligned to sizeof(void*). Doesn't include internal members like + * unknown fields, extension dict, pointer to msglayout, etc. */ + uint16_t size; + uint16_t field_count; + bool extendable; + uint8_t dense_below; + uint8_t table_mask; + /* To constant-initialize the tables of variable length, we need a flexible + * array member, and we need to compile in C99 mode. */ + _upb_fasttable_entry fasttable[]; +}; + +typedef struct { + upb_msglayout_field field; + const upb_msglayout *extendee; + const upb_msglayout *submsg; /* NULL for non-submessage fields. */ +} upb_msglayout_ext; + +/** upb_extreg ****************************************************************/ + +/* Adds the given extension info for message type |l| and field number |num| + * into the registry. Returns false if this message type and field number were + * already in the map, or if memory allocation fails. */ +bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext *e, size_t count); + +/* Looks up the extension (if any) defined for message type |l| and field + * number |num|. If an extension was found, copies the field info into |*ext| + * and returns true. Otherwise returns false. */ +const upb_msglayout_field *_upb_extreg_get(const upb_extreg *r, + const upb_msglayout *l, + uint32_t num); + +/** upb_msg *******************************************************************/ + +/* Internal members of a upb_msg that track unknown fields and/or extensions. + * We can change this without breaking binary compatibility. We put these + * before the user's data. The user's upb_msg* points after the + * upb_msg_internal. */ + +typedef struct { + /* Total size of this structure, including the data that follows. + * Must be aligned to 8, which is alignof(upb_msg_ext) */ + uint32_t size; + + /* Offsets relative to the beginning of this structure. + * + * Unknown data grows forward from the beginning to unknown_end. + * Extension data grows backward from size to ext_begin. + * When the two meet, we're out of data and have to realloc. + * + * If we imagine that the final member of this struct is: + * char data[size - overhead]; // overhead = sizeof(upb_msg_internaldata) + * + * Then we have: + * unknown data: data[0 .. (unknown_end - overhead)] + * extensions data: data[(ext_begin - overhead) .. (size - overhead)] */ + uint32_t unknown_end; + uint32_t ext_begin; + /* Data follows, as if there were an array: + * char data[size - sizeof(upb_msg_internaldata)]; */ +} upb_msg_internaldata; + +typedef struct { + upb_msg_internaldata *internal; +} upb_msg_internal; + +/* Maps upb_fieldtype_t -> memory size. */ +extern char _upb_fieldtype_to_size[12]; + +UPB_INLINE size_t upb_msg_sizeof(const upb_msglayout *l) { + return l->size + sizeof(upb_msg_internal); +} + +UPB_INLINE upb_msg *_upb_msg_new_inl(const upb_msglayout *l, upb_arena *a) { + size_t size = upb_msg_sizeof(l); + void *mem = upb_arena_malloc(a, size); + upb_msg *msg; + if (UPB_UNLIKELY(!mem)) return NULL; + msg = UPB_PTR_AT(mem, sizeof(upb_msg_internal), upb_msg); + memset(mem, 0, size); + return msg; +} + +/* Creates a new messages with the given layout on the given arena. */ +upb_msg *_upb_msg_new(const upb_msglayout *l, upb_arena *a); + +UPB_INLINE upb_msg_internal *upb_msg_getinternal(upb_msg *msg) { + ptrdiff_t size = sizeof(upb_msg_internal); + return (upb_msg_internal*)((char*)msg - size); +} + +/* Clears the given message. */ +void _upb_msg_clear(upb_msg *msg, const upb_msglayout *l); + +/* Discards the unknown fields for this message only. */ +void _upb_msg_discardunknown_shallow(upb_msg *msg); + +/* Adds unknown data (serialized protobuf data) to the given message. The data + * is copied into the message instance. */ +bool _upb_msg_addunknown(upb_msg *msg, const char *data, size_t len, + upb_arena *arena); + +/** upb_msg_ext ***************************************************************/ + +/* The internal representation of an extension is self-describing: it contains + * enough information that we can serialize it to binary format without needing + * to look it up in a registry. */ +typedef struct { + const upb_msglayout_ext *ext; + union { + upb_strview str; + void *ptr; + double dbl; + char scalar_data[8]; + } data; +} upb_msg_ext; + +/* Adds the given extension data to the given message. The returned extension will + * have its "ext" member initialized according to |ext|. */ +upb_msg_ext *_upb_msg_getorcreateext(upb_msg *msg, const upb_msglayout_ext *ext, + upb_arena *arena); + +/* Returns an array of extensions for this message. Note: the array is + * ordered in reverse relative to the order of creation. */ +const upb_msg_ext *_upb_msg_getexts(const upb_msg *msg, size_t *count); + +/* Returns an extension for the given field number, or NULL if no extension + * exists for this field number. */ +const upb_msg_ext *_upb_msg_getext(const upb_msg *msg, + const upb_msglayout_ext *ext); + +/** Hasbit access *************************************************************/ + +UPB_INLINE bool _upb_hasbit(const upb_msg *msg, size_t idx) { + return (*UPB_PTR_AT(msg, idx / 8, const char) & (1 << (idx % 8))) != 0; +} + +UPB_INLINE void _upb_sethas(const upb_msg *msg, size_t idx) { + (*UPB_PTR_AT(msg, idx / 8, char)) |= (char)(1 << (idx % 8)); +} + +UPB_INLINE void _upb_clearhas(const upb_msg *msg, size_t idx) { + (*UPB_PTR_AT(msg, idx / 8, char)) &= (char)(~(1 << (idx % 8))); +} + +UPB_INLINE size_t _upb_msg_hasidx(const upb_msglayout_field *f) { + UPB_ASSERT(f->presence > 0); + return f->presence; +} + +UPB_INLINE bool _upb_hasbit_field(const upb_msg *msg, + const upb_msglayout_field *f) { + return _upb_hasbit(msg, _upb_msg_hasidx(f)); +} + +UPB_INLINE void _upb_sethas_field(const upb_msg *msg, + const upb_msglayout_field *f) { + _upb_sethas(msg, _upb_msg_hasidx(f)); +} + +UPB_INLINE void _upb_clearhas_field(const upb_msg *msg, + const upb_msglayout_field *f) { + _upb_clearhas(msg, _upb_msg_hasidx(f)); +} + +/** Oneof case access *********************************************************/ + +UPB_INLINE uint32_t *_upb_oneofcase(upb_msg *msg, size_t case_ofs) { + return UPB_PTR_AT(msg, case_ofs, uint32_t); +} + +UPB_INLINE uint32_t _upb_getoneofcase(const void *msg, size_t case_ofs) { + return *UPB_PTR_AT(msg, case_ofs, uint32_t); +} + +UPB_INLINE size_t _upb_oneofcase_ofs(const upb_msglayout_field *f) { + UPB_ASSERT(f->presence < 0); + return ~(ptrdiff_t)f->presence; +} + +UPB_INLINE uint32_t *_upb_oneofcase_field(upb_msg *msg, + const upb_msglayout_field *f) { + return _upb_oneofcase(msg, _upb_oneofcase_ofs(f)); +} + +UPB_INLINE uint32_t _upb_getoneofcase_field(const upb_msg *msg, + const upb_msglayout_field *f) { + return _upb_getoneofcase(msg, _upb_oneofcase_ofs(f)); +} + +UPB_INLINE bool _upb_has_submsg_nohasbit(const upb_msg *msg, size_t ofs) { + return *UPB_PTR_AT(msg, ofs, const upb_msg*) != NULL; +} + +/** upb_array *****************************************************************/ + +/* Our internal representation for repeated fields. */ +typedef struct { + uintptr_t data; /* Tagged ptr: low 3 bits of ptr are lg2(elem size). */ + size_t len; /* Measured in elements. */ + size_t size; /* Measured in elements. */ + uint64_t junk; +} upb_array; + +UPB_INLINE const void *_upb_array_constptr(const upb_array *arr) { + UPB_ASSERT((arr->data & 7) <= 4); + return (void*)(arr->data & ~(uintptr_t)7); +} + +UPB_INLINE uintptr_t _upb_array_tagptr(void* ptr, int elem_size_lg2) { + UPB_ASSERT(elem_size_lg2 <= 4); + return (uintptr_t)ptr | elem_size_lg2; +} + +UPB_INLINE void *_upb_array_ptr(upb_array *arr) { + return (void*)_upb_array_constptr(arr); +} + +UPB_INLINE uintptr_t _upb_tag_arrptr(void* ptr, int elem_size_lg2) { + UPB_ASSERT(elem_size_lg2 <= 4); + UPB_ASSERT(((uintptr_t)ptr & 7) == 0); + return (uintptr_t)ptr | (unsigned)elem_size_lg2; +} + +UPB_INLINE upb_array *_upb_array_new(upb_arena *a, size_t init_size, + int elem_size_lg2) { + const size_t arr_size = UPB_ALIGN_UP(sizeof(upb_array), 8); + const size_t bytes = sizeof(upb_array) + (init_size << elem_size_lg2); + upb_array *arr = (upb_array*)upb_arena_malloc(a, bytes); + if (!arr) return NULL; + arr->data = _upb_tag_arrptr(UPB_PTR_AT(arr, arr_size, void), elem_size_lg2); + arr->len = 0; + arr->size = init_size; + return arr; +} + +/* Resizes the capacity of the array to be at least min_size. */ +bool _upb_array_realloc(upb_array *arr, size_t min_size, upb_arena *arena); + +/* Fallback functions for when the accessors require a resize. */ +void *_upb_array_resize_fallback(upb_array **arr_ptr, size_t size, + int elem_size_lg2, upb_arena *arena); +bool _upb_array_append_fallback(upb_array **arr_ptr, const void *value, + int elem_size_lg2, upb_arena *arena); + +UPB_INLINE bool _upb_array_reserve(upb_array *arr, size_t size, + upb_arena *arena) { + if (arr->size < size) return _upb_array_realloc(arr, size, arena); + return true; +} + +UPB_INLINE bool _upb_array_resize(upb_array *arr, size_t size, + upb_arena *arena) { + if (!_upb_array_reserve(arr, size, arena)) return false; + arr->len = size; + return true; +} + +UPB_INLINE const void *_upb_array_accessor(const void *msg, size_t ofs, + size_t *size) { + const upb_array *arr = *UPB_PTR_AT(msg, ofs, const upb_array*); + if (arr) { + if (size) *size = arr->len; + return _upb_array_constptr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} + +UPB_INLINE void *_upb_array_mutable_accessor(void *msg, size_t ofs, + size_t *size) { + upb_array *arr = *UPB_PTR_AT(msg, ofs, upb_array*); + if (arr) { + if (size) *size = arr->len; + return _upb_array_ptr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} + +UPB_INLINE void *_upb_array_resize_accessor2(void *msg, size_t ofs, size_t size, + int elem_size_lg2, + upb_arena *arena) { + upb_array **arr_ptr = UPB_PTR_AT(msg, ofs, upb_array *); + upb_array *arr = *arr_ptr; + if (!arr || arr->size < size) { + return _upb_array_resize_fallback(arr_ptr, size, elem_size_lg2, arena); + } + arr->len = size; + return _upb_array_ptr(arr); +} + +UPB_INLINE bool _upb_array_append_accessor2(void *msg, size_t ofs, + int elem_size_lg2, + const void *value, + upb_arena *arena) { + upb_array **arr_ptr = UPB_PTR_AT(msg, ofs, upb_array *); + size_t elem_size = 1 << elem_size_lg2; + upb_array *arr = *arr_ptr; + void *ptr; + if (!arr || arr->len == arr->size) { + return _upb_array_append_fallback(arr_ptr, value, elem_size_lg2, arena); + } + ptr = _upb_array_ptr(arr); + memcpy(UPB_PTR_AT(ptr, arr->len * elem_size, char), value, elem_size); + arr->len++; + return true; +} + +/* Used by old generated code, remove once all code has been regenerated. */ +UPB_INLINE int _upb_sizelg2(upb_fieldtype_t type) { + switch (type) { + case UPB_TYPE_BOOL: + return 0; + case UPB_TYPE_FLOAT: + case UPB_TYPE_INT32: + case UPB_TYPE_UINT32: + case UPB_TYPE_ENUM: + return 2; + case UPB_TYPE_MESSAGE: + return UPB_SIZE(2, 3); + case UPB_TYPE_DOUBLE: + case UPB_TYPE_INT64: + case UPB_TYPE_UINT64: + return 3; + case UPB_TYPE_STRING: + case UPB_TYPE_BYTES: + return UPB_SIZE(3, 4); + } + UPB_UNREACHABLE(); +} +UPB_INLINE void *_upb_array_resize_accessor(void *msg, size_t ofs, size_t size, + upb_fieldtype_t type, + upb_arena *arena) { + return _upb_array_resize_accessor2(msg, ofs, size, _upb_sizelg2(type), arena); +} +UPB_INLINE bool _upb_array_append_accessor(void *msg, size_t ofs, + size_t elem_size, upb_fieldtype_t type, + const void *value, + upb_arena *arena) { + (void)elem_size; + return _upb_array_append_accessor2(msg, ofs, _upb_sizelg2(type), value, + arena); +} + +/** upb_map *******************************************************************/ + +/* Right now we use strmaps for everything. We'll likely want to use + * integer-specific maps for integer-keyed maps.*/ +typedef struct { + /* Size of key and val, based on the map type. Strings are represented as '0' + * because they must be handled specially. */ + char key_size; + char val_size; + + upb_strtable table; +} upb_map; + +/* Map entries aren't actually stored, they are only used during parsing. For + * parsing, it helps a lot if all map entry messages have the same layout. + * The compiler and def.c must ensure that all map entries have this layout. */ +typedef struct { + upb_msg_internal internal; + union { + upb_strview str; /* For str/bytes. */ + upb_value val; /* For all other types. */ + } k; + union { + upb_strview str; /* For str/bytes. */ + upb_value val; /* For all other types. */ + } v; +} upb_map_entry; + +/* Creates a new map on the given arena with this key/value type. */ +upb_map *_upb_map_new(upb_arena *a, size_t key_size, size_t value_size); + +/* Converting between internal table representation and user values. + * + * _upb_map_tokey() and _upb_map_fromkey() are inverses. + * _upb_map_tovalue() and _upb_map_fromvalue() are inverses. + * + * These functions account for the fact that strings are treated differently + * from other types when stored in a map. + */ + +UPB_INLINE upb_strview _upb_map_tokey(const void *key, size_t size) { + if (size == UPB_MAPTYPE_STRING) { + return *(upb_strview*)key; + } else { + return upb_strview_make((const char*)key, size); + } +} + +UPB_INLINE void _upb_map_fromkey(upb_strview key, void* out, size_t size) { + if (size == UPB_MAPTYPE_STRING) { + memcpy(out, &key, sizeof(key)); + } else { + memcpy(out, key.data, size); + } +} + +UPB_INLINE bool _upb_map_tovalue(const void *val, size_t size, upb_value *msgval, + upb_arena *a) { + if (size == UPB_MAPTYPE_STRING) { + upb_strview *strp = (upb_strview*)upb_arena_malloc(a, sizeof(*strp)); + if (!strp) return false; + *strp = *(upb_strview*)val; + *msgval = upb_value_ptr(strp); + } else { + memcpy(msgval, val, size); + } + return true; +} + +UPB_INLINE void _upb_map_fromvalue(upb_value val, void* out, size_t size) { + if (size == UPB_MAPTYPE_STRING) { + const upb_strview *strp = (const upb_strview*)upb_value_getptr(val); + memcpy(out, strp, sizeof(upb_strview)); + } else { + memcpy(out, &val, size); + } +} + +/* Map operations, shared by reflection and generated code. */ + +UPB_INLINE size_t _upb_map_size(const upb_map *map) { + return map->table.t.count; +} + +UPB_INLINE bool _upb_map_get(const upb_map *map, const void *key, + size_t key_size, void *val, size_t val_size) { + upb_value tabval; + upb_strview k = _upb_map_tokey(key, key_size); + bool ret = upb_strtable_lookup2(&map->table, k.data, k.size, &tabval); + if (ret && val) { + _upb_map_fromvalue(tabval, val, val_size); + } + return ret; +} + +UPB_INLINE void* _upb_map_next(const upb_map *map, size_t *iter) { + upb_strtable_iter it; + it.t = &map->table; + it.index = *iter; + upb_strtable_next(&it); + *iter = it.index; + if (upb_strtable_done(&it)) return NULL; + return (void*)str_tabent(&it); +} + +UPB_INLINE bool _upb_map_set(upb_map *map, const void *key, size_t key_size, + void *val, size_t val_size, upb_arena *a) { + upb_strview strkey = _upb_map_tokey(key, key_size); + upb_value tabval = {0}; + if (!_upb_map_tovalue(val, val_size, &tabval, a)) return false; + + /* TODO(haberman): add overwrite operation to minimize number of lookups. */ + upb_strtable_remove(&map->table, strkey.data, strkey.size, NULL); + return upb_strtable_insert(&map->table, strkey.data, strkey.size, tabval, a); +} + +UPB_INLINE bool _upb_map_delete(upb_map *map, const void *key, size_t key_size) { + upb_strview k = _upb_map_tokey(key, key_size); + return upb_strtable_remove(&map->table, k.data, k.size, NULL); +} + +UPB_INLINE void _upb_map_clear(upb_map *map) { + upb_strtable_clear(&map->table); +} + +/* Message map operations, these get the map from the message first. */ + +UPB_INLINE size_t _upb_msg_map_size(const upb_msg *msg, size_t ofs) { + upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); + return map ? _upb_map_size(map) : 0; +} + +UPB_INLINE bool _upb_msg_map_get(const upb_msg *msg, size_t ofs, + const void *key, size_t key_size, void *val, + size_t val_size) { + upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); + if (!map) return false; + return _upb_map_get(map, key, key_size, val, val_size); +} + +UPB_INLINE void *_upb_msg_map_next(const upb_msg *msg, size_t ofs, + size_t *iter) { + upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); + if (!map) return NULL; + return _upb_map_next(map, iter); +} + +UPB_INLINE bool _upb_msg_map_set(upb_msg *msg, size_t ofs, const void *key, + size_t key_size, void *val, size_t val_size, + upb_arena *arena) { + upb_map **map = UPB_PTR_AT(msg, ofs, upb_map *); + if (!*map) { + *map = _upb_map_new(arena, key_size, val_size); + } + return _upb_map_set(*map, key, key_size, val, val_size, arena); +} + +UPB_INLINE bool _upb_msg_map_delete(upb_msg *msg, size_t ofs, const void *key, + size_t key_size) { + upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); + if (!map) return false; + return _upb_map_delete(map, key, key_size); +} + +UPB_INLINE void _upb_msg_map_clear(upb_msg *msg, size_t ofs) { + upb_map *map = *UPB_PTR_AT(msg, ofs, upb_map *); + if (!map) return; + _upb_map_clear(map); +} + +/* Accessing map key/value from a pointer, used by generated code only. */ + +UPB_INLINE void _upb_msg_map_key(const void* msg, void* key, size_t size) { + const upb_tabent *ent = (const upb_tabent*)msg; + uint32_t u32len; + upb_strview k; + k.data = upb_tabstr(ent->key, &u32len); + k.size = u32len; + _upb_map_fromkey(k, key, size); +} + +UPB_INLINE void _upb_msg_map_value(const void* msg, void* val, size_t size) { + const upb_tabent *ent = (const upb_tabent*)msg; + upb_value v = {ent->val.val}; + _upb_map_fromvalue(v, val, size); +} + +UPB_INLINE void _upb_msg_map_set_value(void* msg, const void* val, size_t size) { + upb_tabent *ent = (upb_tabent*)msg; + /* This is like _upb_map_tovalue() except the entry already exists so we can + * reuse the allocated upb_strview for string fields. */ + if (size == UPB_MAPTYPE_STRING) { + upb_strview *strp = (upb_strview*)(uintptr_t)ent->val.val; + memcpy(strp, val, sizeof(*strp)); + } else { + memcpy(&ent->val.val, val, size); + } +} + +/** _upb_mapsorter *************************************************************/ + +/* _upb_mapsorter sorts maps and provides ordered iteration over the entries. + * Since maps can be recursive (map values can be messages which contain other maps). + * _upb_mapsorter can contain a stack of maps. */ + +typedef struct { + upb_tabent const**entries; + int size; + int cap; +} _upb_mapsorter; + +typedef struct { + int start; + int pos; + int end; +} _upb_sortedmap; + +UPB_INLINE void _upb_mapsorter_init(_upb_mapsorter *s) { + s->entries = NULL; + s->size = 0; + s->cap = 0; +} + +UPB_INLINE void _upb_mapsorter_destroy(_upb_mapsorter *s) { + if (s->entries) free(s->entries); +} + +bool _upb_mapsorter_pushmap(_upb_mapsorter *s, upb_descriptortype_t key_type, + const upb_map *map, _upb_sortedmap *sorted); + +UPB_INLINE void _upb_mapsorter_popmap(_upb_mapsorter *s, _upb_sortedmap *sorted) { + s->size = sorted->start; +} + +UPB_INLINE bool _upb_sortedmap_next(_upb_mapsorter *s, const upb_map *map, + _upb_sortedmap *sorted, + upb_map_entry *ent) { + if (sorted->pos == sorted->end) return false; + const upb_tabent *tabent = s->entries[sorted->pos++]; + upb_strview key = upb_tabstrview(tabent->key); + _upb_map_fromkey(key, &ent->k, map->key_size); + upb_value val = {tabent->val.val}; + _upb_map_fromvalue(val, &ent->v, map->val_size); + return true; +} + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port_undef.inc" + +#endif /* UPB_MSG_INT_H_ */ diff --git a/third_party/upb/upb/pb/compile_decoder.c b/third_party/upb/upb/pb/compile_decoder.c deleted file mode 100644 index 3c73f1a93d4..00000000000 --- a/third_party/upb/upb/pb/compile_decoder.c +++ /dev/null @@ -1,919 +0,0 @@ -/* -** protobuf decoder bytecode compiler -** -** Code to compile a upb::Handlers into bytecode for decoding a protobuf -** according to that specific schema and destination handlers. -** -** Bytecode definition is in decoder.int.h. -*/ - -#include -#include "upb/pb/decoder.int.h" -#include "upb/pb/varint.int.h" - -#ifdef UPB_DUMP_BYTECODE -#include -#endif - -#include "upb/port_def.inc" - -#define MAXLABEL 5 -#define EMPTYLABEL -1 - -/* upb_pbdecodermethod ********************************************************/ - -static void freemethod(upb_pbdecodermethod *method) { - upb_inttable_uninit(&method->dispatch); - upb_gfree(method); -} - -static upb_pbdecodermethod *newmethod(const upb_handlers *dest_handlers, - mgroup *group) { - upb_pbdecodermethod *ret = upb_gmalloc(sizeof(*ret)); - upb_byteshandler_init(&ret->input_handler_); - - ret->group = group; - ret->dest_handlers_ = dest_handlers; - upb_inttable_init(&ret->dispatch, UPB_CTYPE_UINT64); - - return ret; -} - -const upb_handlers *upb_pbdecodermethod_desthandlers( - const upb_pbdecodermethod *m) { - return m->dest_handlers_; -} - -const upb_byteshandler *upb_pbdecodermethod_inputhandler( - const upb_pbdecodermethod *m) { - return &m->input_handler_; -} - -bool upb_pbdecodermethod_isnative(const upb_pbdecodermethod *m) { - return m->is_native_; -} - - -/* mgroup *********************************************************************/ - -static void freegroup(mgroup *g) { - upb_inttable_iter i; - - upb_inttable_begin(&i, &g->methods); - for(; !upb_inttable_done(&i); upb_inttable_next(&i)) { - freemethod(upb_value_getptr(upb_inttable_iter_value(&i))); - } - - upb_inttable_uninit(&g->methods); - upb_gfree(g->bytecode); - upb_gfree(g); -} - -mgroup *newgroup(void) { - mgroup *g = upb_gmalloc(sizeof(*g)); - upb_inttable_init(&g->methods, UPB_CTYPE_PTR); - g->bytecode = NULL; - g->bytecode_end = NULL; - return g; -} - - -/* bytecode compiler **********************************************************/ - -/* Data used only at compilation time. */ -typedef struct { - mgroup *group; - - uint32_t *pc; - int fwd_labels[MAXLABEL]; - int back_labels[MAXLABEL]; - - /* For fields marked "lazy", parse them lazily or eagerly? */ - bool lazy; -} compiler; - -static compiler *newcompiler(mgroup *group, bool lazy) { - compiler *ret = upb_gmalloc(sizeof(*ret)); - int i; - - ret->group = group; - ret->lazy = lazy; - for (i = 0; i < MAXLABEL; i++) { - ret->fwd_labels[i] = EMPTYLABEL; - ret->back_labels[i] = EMPTYLABEL; - } - return ret; -} - -static void freecompiler(compiler *c) { - upb_gfree(c); -} - -const size_t ptr_words = sizeof(void*) / sizeof(uint32_t); - -/* How many words an instruction is. */ -static int instruction_len(uint32_t instr) { - switch (getop(instr)) { - case OP_SETDISPATCH: return 1 + ptr_words; - case OP_TAGN: return 3; - case OP_SETBIGGROUPNUM: return 2; - default: return 1; - } -} - -bool op_has_longofs(int32_t instruction) { - switch (getop(instruction)) { - case OP_CALL: - case OP_BRANCH: - case OP_CHECKDELIM: - return true; - /* The "tag" instructions only have 8 bytes available for the jump target, - * but that is ok because these opcodes only require short jumps. */ - case OP_TAG1: - case OP_TAG2: - case OP_TAGN: - return false; - default: - UPB_ASSERT(false); - return false; - } -} - -static int32_t getofs(uint32_t instruction) { - if (op_has_longofs(instruction)) { - return (int32_t)instruction >> 8; - } else { - return (int8_t)(instruction >> 8); - } -} - -static void setofs(uint32_t *instruction, int32_t ofs) { - if (op_has_longofs(*instruction)) { - *instruction = getop(*instruction) | (uint32_t)ofs << 8; - } else { - *instruction = (*instruction & ~0xff00) | ((ofs & 0xff) << 8); - } - UPB_ASSERT(getofs(*instruction) == ofs); /* Would fail in cases of overflow. */ -} - -static uint32_t pcofs(compiler *c) { - return (uint32_t)(c->pc - c->group->bytecode); -} - -/* Defines a local label at the current PC location. All previous forward - * references are updated to point to this location. The location is noted - * for any future backward references. */ -static void label(compiler *c, unsigned int label) { - int val; - uint32_t *codep; - - UPB_ASSERT(label < MAXLABEL); - val = c->fwd_labels[label]; - codep = (val == EMPTYLABEL) ? NULL : c->group->bytecode + val; - while (codep) { - int ofs = getofs(*codep); - setofs(codep, (int32_t)(c->pc - codep - instruction_len(*codep))); - codep = ofs ? codep + ofs : NULL; - } - c->fwd_labels[label] = EMPTYLABEL; - c->back_labels[label] = pcofs(c); -} - -/* Creates a reference to a numbered label; either a forward reference - * (positive arg) or backward reference (negative arg). For forward references - * the value returned now is actually a "next" pointer into a linked list of all - * instructions that use this label and will be patched later when the label is - * defined with label(). - * - * The returned value is the offset that should be written into the instruction. - */ -static int32_t labelref(compiler *c, int label) { - UPB_ASSERT(label < MAXLABEL); - if (label == LABEL_DISPATCH) { - /* No resolving required. */ - return 0; - } else if (label < 0) { - /* Backward local label. Relative to the next instruction. */ - uint32_t from = (uint32_t)((c->pc + 1) - c->group->bytecode); - return c->back_labels[-label] - from; - } else { - /* Forward local label: prepend to (possibly-empty) linked list. */ - int *lptr = &c->fwd_labels[label]; - int32_t ret = (*lptr == EMPTYLABEL) ? 0 : *lptr - pcofs(c); - *lptr = pcofs(c); - return ret; - } -} - -static void put32(compiler *c, uint32_t v) { - mgroup *g = c->group; - if (c->pc == g->bytecode_end) { - int ofs = pcofs(c); - size_t oldsize = g->bytecode_end - g->bytecode; - size_t newsize = UPB_MAX(oldsize * 2, 64); - /* TODO(haberman): handle OOM. */ - g->bytecode = upb_grealloc(g->bytecode, oldsize * sizeof(uint32_t), - newsize * sizeof(uint32_t)); - g->bytecode_end = g->bytecode + newsize; - c->pc = g->bytecode + ofs; - } - *c->pc++ = v; -} - -static void putop(compiler *c, int op, ...) { - va_list ap; - va_start(ap, op); - - switch (op) { - case OP_SETDISPATCH: { - uintptr_t ptr = (uintptr_t)va_arg(ap, void*); - put32(c, OP_SETDISPATCH); - put32(c, (uint32_t)ptr); - if (sizeof(uintptr_t) > sizeof(uint32_t)) - put32(c, (uint64_t)ptr >> 32); - break; - } - case OP_STARTMSG: - case OP_ENDMSG: - case OP_PUSHLENDELIM: - case OP_POP: - case OP_SETDELIM: - case OP_HALT: - case OP_RET: - case OP_DISPATCH: - put32(c, op); - break; - case OP_PARSE_DOUBLE: - case OP_PARSE_FLOAT: - case OP_PARSE_INT64: - case OP_PARSE_UINT64: - case OP_PARSE_INT32: - case OP_PARSE_FIXED64: - case OP_PARSE_FIXED32: - case OP_PARSE_BOOL: - case OP_PARSE_UINT32: - case OP_PARSE_SFIXED32: - case OP_PARSE_SFIXED64: - case OP_PARSE_SINT32: - case OP_PARSE_SINT64: - case OP_STARTSEQ: - case OP_ENDSEQ: - case OP_STARTSUBMSG: - case OP_ENDSUBMSG: - case OP_STARTSTR: - case OP_STRING: - case OP_ENDSTR: - case OP_PUSHTAGDELIM: - put32(c, op | va_arg(ap, upb_selector_t) << 8); - break; - case OP_SETBIGGROUPNUM: - put32(c, op); - put32(c, va_arg(ap, int)); - break; - case OP_CALL: { - const upb_pbdecodermethod *method = va_arg(ap, upb_pbdecodermethod *); - put32(c, op | (method->code_base.ofs - (pcofs(c) + 1)) << 8); - break; - } - case OP_CHECKDELIM: - case OP_BRANCH: { - uint32_t instruction = op; - int label = va_arg(ap, int); - setofs(&instruction, labelref(c, label)); - put32(c, instruction); - break; - } - case OP_TAG1: - case OP_TAG2: { - int label = va_arg(ap, int); - uint64_t tag = va_arg(ap, uint64_t); - uint32_t instruction = (uint32_t)(op | (tag << 16)); - UPB_ASSERT(tag <= 0xffff); - setofs(&instruction, labelref(c, label)); - put32(c, instruction); - break; - } - case OP_TAGN: { - int label = va_arg(ap, int); - uint64_t tag = va_arg(ap, uint64_t); - uint32_t instruction = op | (upb_value_size(tag) << 16); - setofs(&instruction, labelref(c, label)); - put32(c, instruction); - put32(c, (uint32_t)tag); - put32(c, tag >> 32); - break; - } - } - - va_end(ap); -} - -#if defined(UPB_DUMP_BYTECODE) - -const char *upb_pbdecoder_getopname(unsigned int op) { -#define QUOTE(x) #x -#define EXPAND_AND_QUOTE(x) QUOTE(x) -#define OPNAME(x) OP_##x -#define OP(x) case OPNAME(x): return EXPAND_AND_QUOTE(OPNAME(x)); -#define T(x) OP(PARSE_##x) - /* Keep in sync with list in decoder.int.h. */ - switch ((opcode)op) { - T(DOUBLE) T(FLOAT) T(INT64) T(UINT64) T(INT32) T(FIXED64) T(FIXED32) - T(BOOL) T(UINT32) T(SFIXED32) T(SFIXED64) T(SINT32) T(SINT64) - OP(STARTMSG) OP(ENDMSG) OP(STARTSEQ) OP(ENDSEQ) OP(STARTSUBMSG) - OP(ENDSUBMSG) OP(STARTSTR) OP(STRING) OP(ENDSTR) OP(CALL) OP(RET) - OP(PUSHLENDELIM) OP(PUSHTAGDELIM) OP(SETDELIM) OP(CHECKDELIM) - OP(BRANCH) OP(TAG1) OP(TAG2) OP(TAGN) OP(SETDISPATCH) OP(POP) - OP(SETBIGGROUPNUM) OP(DISPATCH) OP(HALT) - } - return ""; -#undef OP -#undef T -} - -#endif - -#ifdef UPB_DUMP_BYTECODE - -static void dumpbc(uint32_t *p, uint32_t *end, FILE *f) { - - uint32_t *begin = p; - - while (p < end) { - fprintf(f, "%p %8tx", p, p - begin); - uint32_t instr = *p++; - uint8_t op = getop(instr); - fprintf(f, " %s", upb_pbdecoder_getopname(op)); - switch ((opcode)op) { - case OP_SETDISPATCH: { - const upb_inttable *dispatch; - memcpy(&dispatch, p, sizeof(void*)); - p += ptr_words; - const upb_pbdecodermethod *method = - (void *)((char *)dispatch - - offsetof(upb_pbdecodermethod, dispatch)); - fprintf(f, " %s", upb_msgdef_fullname( - upb_handlers_msgdef(method->dest_handlers_))); - break; - } - case OP_DISPATCH: - case OP_STARTMSG: - case OP_ENDMSG: - case OP_PUSHLENDELIM: - case OP_POP: - case OP_SETDELIM: - case OP_HALT: - case OP_RET: - break; - case OP_PARSE_DOUBLE: - case OP_PARSE_FLOAT: - case OP_PARSE_INT64: - case OP_PARSE_UINT64: - case OP_PARSE_INT32: - case OP_PARSE_FIXED64: - case OP_PARSE_FIXED32: - case OP_PARSE_BOOL: - case OP_PARSE_UINT32: - case OP_PARSE_SFIXED32: - case OP_PARSE_SFIXED64: - case OP_PARSE_SINT32: - case OP_PARSE_SINT64: - case OP_STARTSEQ: - case OP_ENDSEQ: - case OP_STARTSUBMSG: - case OP_ENDSUBMSG: - case OP_STARTSTR: - case OP_STRING: - case OP_ENDSTR: - case OP_PUSHTAGDELIM: - fprintf(f, " %d", instr >> 8); - break; - case OP_SETBIGGROUPNUM: - fprintf(f, " %d", *p++); - break; - case OP_CHECKDELIM: - case OP_CALL: - case OP_BRANCH: - fprintf(f, " =>0x%tx", p + getofs(instr) - begin); - break; - case OP_TAG1: - case OP_TAG2: { - fprintf(f, " tag:0x%x", instr >> 16); - if (getofs(instr)) { - fprintf(f, " =>0x%tx", p + getofs(instr) - begin); - } - break; - } - case OP_TAGN: { - uint64_t tag = *p++; - tag |= (uint64_t)*p++ << 32; - fprintf(f, " tag:0x%llx", (long long)tag); - fprintf(f, " n:%d", instr >> 16); - if (getofs(instr)) { - fprintf(f, " =>0x%tx", p + getofs(instr) - begin); - } - break; - } - } - fputs("\n", f); - } -} - -#endif - -static uint64_t get_encoded_tag(const upb_fielddef *f, int wire_type) { - uint32_t tag = (upb_fielddef_number(f) << 3) | wire_type; - uint64_t encoded_tag = upb_vencode32(tag); - /* No tag should be greater than 5 bytes. */ - UPB_ASSERT(encoded_tag <= 0xffffffffff); - return encoded_tag; -} - -static void putchecktag(compiler *c, const upb_fielddef *f, - int wire_type, int dest) { - uint64_t tag = get_encoded_tag(f, wire_type); - switch (upb_value_size(tag)) { - case 1: - putop(c, OP_TAG1, dest, tag); - break; - case 2: - putop(c, OP_TAG2, dest, tag); - break; - default: - putop(c, OP_TAGN, dest, tag); - break; - } -} - -static upb_selector_t getsel(const upb_fielddef *f, upb_handlertype_t type) { - upb_selector_t selector; - bool ok = upb_handlers_getselector(f, type, &selector); - UPB_ASSERT(ok); - return selector; -} - -/* Takes an existing, primary dispatch table entry and repacks it with a - * different alternate wire type. Called when we are inserting a secondary - * dispatch table entry for an alternate wire type. */ -static uint64_t repack(uint64_t dispatch, int new_wt2) { - uint64_t ofs; - uint8_t wt1; - uint8_t old_wt2; - upb_pbdecoder_unpackdispatch(dispatch, &ofs, &wt1, &old_wt2); - UPB_ASSERT(old_wt2 == NO_WIRE_TYPE); /* wt2 should not be set yet. */ - return upb_pbdecoder_packdispatch(ofs, wt1, new_wt2); -} - -/* Marks the current bytecode position as the dispatch target for this message, - * field, and wire type. */ -static void dispatchtarget(compiler *c, upb_pbdecodermethod *method, - const upb_fielddef *f, int wire_type) { - /* Offset is relative to msg base. */ - uint64_t ofs = pcofs(c) - method->code_base.ofs; - uint32_t fn = upb_fielddef_number(f); - upb_inttable *d = &method->dispatch; - upb_value v; - if (upb_inttable_remove(d, fn, &v)) { - /* TODO: prioritize based on packed setting in .proto file. */ - uint64_t repacked = repack(upb_value_getuint64(v), wire_type); - upb_inttable_insert(d, fn, upb_value_uint64(repacked)); - upb_inttable_insert(d, fn + UPB_MAX_FIELDNUMBER, upb_value_uint64(ofs)); - } else { - uint64_t val = upb_pbdecoder_packdispatch(ofs, wire_type, NO_WIRE_TYPE); - upb_inttable_insert(d, fn, upb_value_uint64(val)); - } -} - -static void putpush(compiler *c, const upb_fielddef *f) { - if (upb_fielddef_descriptortype(f) == UPB_DESCRIPTOR_TYPE_MESSAGE) { - putop(c, OP_PUSHLENDELIM); - } else { - uint32_t fn = upb_fielddef_number(f); - if (fn >= 1 << 24) { - putop(c, OP_PUSHTAGDELIM, 0); - putop(c, OP_SETBIGGROUPNUM, fn); - } else { - putop(c, OP_PUSHTAGDELIM, fn); - } - } -} - -static upb_pbdecodermethod *find_submethod(const compiler *c, - const upb_pbdecodermethod *method, - const upb_fielddef *f) { - const upb_handlers *sub = - upb_handlers_getsubhandlers(method->dest_handlers_, f); - upb_value v; - return upb_inttable_lookupptr(&c->group->methods, sub, &v) - ? upb_value_getptr(v) - : NULL; -} - -static void putsel(compiler *c, opcode op, upb_selector_t sel, - const upb_handlers *h) { - if (upb_handlers_gethandler(h, sel, NULL)) { - putop(c, op, sel); - } -} - -/* Puts an opcode to call a callback, but only if a callback actually exists for - * this field and handler type. */ -static void maybeput(compiler *c, opcode op, const upb_handlers *h, - const upb_fielddef *f, upb_handlertype_t type) { - putsel(c, op, getsel(f, type), h); -} - -static bool haslazyhandlers(const upb_handlers *h, const upb_fielddef *f) { - if (!upb_fielddef_lazy(f)) - return false; - - return upb_handlers_gethandler(h, getsel(f, UPB_HANDLER_STARTSTR), NULL) || - upb_handlers_gethandler(h, getsel(f, UPB_HANDLER_STRING), NULL) || - upb_handlers_gethandler(h, getsel(f, UPB_HANDLER_ENDSTR), NULL); -} - - -/* bytecode compiler code generation ******************************************/ - -/* Symbolic names for our local labels. */ -#define LABEL_LOOPSTART 1 /* Top of a repeated field loop. */ -#define LABEL_LOOPBREAK 2 /* To jump out of a repeated loop */ -#define LABEL_FIELD 3 /* Jump backward to find the most recent field. */ -#define LABEL_ENDMSG 4 /* To reach the OP_ENDMSG instr for this msg. */ - -/* Generates bytecode to parse a single non-lazy message field. */ -static void generate_msgfield(compiler *c, const upb_fielddef *f, - upb_pbdecodermethod *method) { - const upb_handlers *h = upb_pbdecodermethod_desthandlers(method); - const upb_pbdecodermethod *sub_m = find_submethod(c, method, f); - int wire_type; - - if (!sub_m) { - /* Don't emit any code for this field at all; it will be parsed as an - * unknown field. - * - * TODO(haberman): we should change this to parse it as a string field - * instead. It will probably be faster, but more importantly, once we - * start vending unknown fields, a field shouldn't be treated as unknown - * just because it doesn't have subhandlers registered. */ - return; - } - - label(c, LABEL_FIELD); - - wire_type = - (upb_fielddef_descriptortype(f) == UPB_DESCRIPTOR_TYPE_MESSAGE) - ? UPB_WIRE_TYPE_DELIMITED - : UPB_WIRE_TYPE_START_GROUP; - - if (upb_fielddef_isseq(f)) { - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - putchecktag(c, f, wire_type, LABEL_DISPATCH); - dispatchtarget(c, method, f, wire_type); - putop(c, OP_PUSHTAGDELIM, 0); - putop(c, OP_STARTSEQ, getsel(f, UPB_HANDLER_STARTSEQ)); - label(c, LABEL_LOOPSTART); - putpush(c, f); - putop(c, OP_STARTSUBMSG, getsel(f, UPB_HANDLER_STARTSUBMSG)); - putop(c, OP_CALL, sub_m); - putop(c, OP_POP); - maybeput(c, OP_ENDSUBMSG, h, f, UPB_HANDLER_ENDSUBMSG); - if (wire_type == UPB_WIRE_TYPE_DELIMITED) { - putop(c, OP_SETDELIM); - } - putop(c, OP_CHECKDELIM, LABEL_LOOPBREAK); - putchecktag(c, f, wire_type, LABEL_LOOPBREAK); - putop(c, OP_BRANCH, -LABEL_LOOPSTART); - label(c, LABEL_LOOPBREAK); - putop(c, OP_POP); - maybeput(c, OP_ENDSEQ, h, f, UPB_HANDLER_ENDSEQ); - } else { - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - putchecktag(c, f, wire_type, LABEL_DISPATCH); - dispatchtarget(c, method, f, wire_type); - putpush(c, f); - putop(c, OP_STARTSUBMSG, getsel(f, UPB_HANDLER_STARTSUBMSG)); - putop(c, OP_CALL, sub_m); - putop(c, OP_POP); - maybeput(c, OP_ENDSUBMSG, h, f, UPB_HANDLER_ENDSUBMSG); - if (wire_type == UPB_WIRE_TYPE_DELIMITED) { - putop(c, OP_SETDELIM); - } - } -} - -/* Generates bytecode to parse a single string or lazy submessage field. */ -static void generate_delimfield(compiler *c, const upb_fielddef *f, - upb_pbdecodermethod *method) { - const upb_handlers *h = upb_pbdecodermethod_desthandlers(method); - - label(c, LABEL_FIELD); - if (upb_fielddef_isseq(f)) { - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - putchecktag(c, f, UPB_WIRE_TYPE_DELIMITED, LABEL_DISPATCH); - dispatchtarget(c, method, f, UPB_WIRE_TYPE_DELIMITED); - putop(c, OP_PUSHTAGDELIM, 0); - putop(c, OP_STARTSEQ, getsel(f, UPB_HANDLER_STARTSEQ)); - label(c, LABEL_LOOPSTART); - putop(c, OP_PUSHLENDELIM); - putop(c, OP_STARTSTR, getsel(f, UPB_HANDLER_STARTSTR)); - /* Need to emit even if no handler to skip past the string. */ - putop(c, OP_STRING, getsel(f, UPB_HANDLER_STRING)); - maybeput(c, OP_ENDSTR, h, f, UPB_HANDLER_ENDSTR); - putop(c, OP_POP); - putop(c, OP_SETDELIM); - putop(c, OP_CHECKDELIM, LABEL_LOOPBREAK); - putchecktag(c, f, UPB_WIRE_TYPE_DELIMITED, LABEL_LOOPBREAK); - putop(c, OP_BRANCH, -LABEL_LOOPSTART); - label(c, LABEL_LOOPBREAK); - putop(c, OP_POP); - maybeput(c, OP_ENDSEQ, h, f, UPB_HANDLER_ENDSEQ); - } else { - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - putchecktag(c, f, UPB_WIRE_TYPE_DELIMITED, LABEL_DISPATCH); - dispatchtarget(c, method, f, UPB_WIRE_TYPE_DELIMITED); - putop(c, OP_PUSHLENDELIM); - putop(c, OP_STARTSTR, getsel(f, UPB_HANDLER_STARTSTR)); - putop(c, OP_STRING, getsel(f, UPB_HANDLER_STRING)); - maybeput(c, OP_ENDSTR, h, f, UPB_HANDLER_ENDSTR); - putop(c, OP_POP); - putop(c, OP_SETDELIM); - } -} - -/* Generates bytecode to parse a single primitive field. */ -static void generate_primitivefield(compiler *c, const upb_fielddef *f, - upb_pbdecodermethod *method) { - const upb_handlers *h = upb_pbdecodermethod_desthandlers(method); - upb_descriptortype_t descriptor_type = upb_fielddef_descriptortype(f); - opcode parse_type; - upb_selector_t sel; - int wire_type; - - label(c, LABEL_FIELD); - - /* From a decoding perspective, ENUM is the same as INT32. */ - if (descriptor_type == UPB_DESCRIPTOR_TYPE_ENUM) - descriptor_type = UPB_DESCRIPTOR_TYPE_INT32; - - parse_type = (opcode)descriptor_type; - - /* TODO(haberman): generate packed or non-packed first depending on "packed" - * setting in the fielddef. This will favor (in speed) whichever was - * specified. */ - - UPB_ASSERT((int)parse_type >= 0 && parse_type <= OP_MAX); - sel = getsel(f, upb_handlers_getprimitivehandlertype(f)); - wire_type = upb_pb_native_wire_types[upb_fielddef_descriptortype(f)]; - if (upb_fielddef_isseq(f)) { - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - putchecktag(c, f, UPB_WIRE_TYPE_DELIMITED, LABEL_DISPATCH); - dispatchtarget(c, method, f, UPB_WIRE_TYPE_DELIMITED); - putop(c, OP_PUSHLENDELIM); - putop(c, OP_STARTSEQ, getsel(f, UPB_HANDLER_STARTSEQ)); /* Packed */ - label(c, LABEL_LOOPSTART); - putop(c, parse_type, sel); - putop(c, OP_CHECKDELIM, LABEL_LOOPBREAK); - putop(c, OP_BRANCH, -LABEL_LOOPSTART); - dispatchtarget(c, method, f, wire_type); - putop(c, OP_PUSHTAGDELIM, 0); - putop(c, OP_STARTSEQ, getsel(f, UPB_HANDLER_STARTSEQ)); /* Non-packed */ - label(c, LABEL_LOOPSTART); - putop(c, parse_type, sel); - putop(c, OP_CHECKDELIM, LABEL_LOOPBREAK); - putchecktag(c, f, wire_type, LABEL_LOOPBREAK); - putop(c, OP_BRANCH, -LABEL_LOOPSTART); - label(c, LABEL_LOOPBREAK); - putop(c, OP_POP); /* Packed and non-packed join. */ - maybeput(c, OP_ENDSEQ, h, f, UPB_HANDLER_ENDSEQ); - putop(c, OP_SETDELIM); /* Could remove for non-packed by dup ENDSEQ. */ - } else { - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - putchecktag(c, f, wire_type, LABEL_DISPATCH); - dispatchtarget(c, method, f, wire_type); - putop(c, parse_type, sel); - } -} - -/* Adds bytecode for parsing the given message to the given decoderplan, - * while adding all dispatch targets to this message's dispatch table. */ -static void compile_method(compiler *c, upb_pbdecodermethod *method) { - const upb_handlers *h; - const upb_msgdef *md; - uint32_t* start_pc; - int i, n; - upb_value val; - - UPB_ASSERT(method); - - /* Clear all entries in the dispatch table. */ - upb_inttable_uninit(&method->dispatch); - upb_inttable_init(&method->dispatch, UPB_CTYPE_UINT64); - - h = upb_pbdecodermethod_desthandlers(method); - md = upb_handlers_msgdef(h); - - method->code_base.ofs = pcofs(c); - putop(c, OP_SETDISPATCH, &method->dispatch); - putsel(c, OP_STARTMSG, UPB_STARTMSG_SELECTOR, h); - label(c, LABEL_FIELD); - start_pc = c->pc; - n = upb_msgdef_fieldcount(md); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - upb_fieldtype_t type = upb_fielddef_type(f); - - if (type == UPB_TYPE_MESSAGE && !(haslazyhandlers(h, f) && c->lazy)) { - generate_msgfield(c, f, method); - } else if (type == UPB_TYPE_STRING || type == UPB_TYPE_BYTES || - type == UPB_TYPE_MESSAGE) { - generate_delimfield(c, f, method); - } else { - generate_primitivefield(c, f, method); - } - } - - /* If there were no fields, or if no handlers were defined, we need to - * generate a non-empty loop body so that we can at least dispatch for unknown - * fields and check for the end of the message. */ - if (c->pc == start_pc) { - /* Check for end-of-message. */ - putop(c, OP_CHECKDELIM, LABEL_ENDMSG); - /* Unconditionally dispatch. */ - putop(c, OP_DISPATCH, 0); - } - - /* For now we just loop back to the last field of the message (or if none, - * the DISPATCH opcode for the message). */ - putop(c, OP_BRANCH, -LABEL_FIELD); - - /* Insert both a label and a dispatch table entry for this end-of-msg. */ - label(c, LABEL_ENDMSG); - val = upb_value_uint64(pcofs(c) - method->code_base.ofs); - upb_inttable_insert(&method->dispatch, DISPATCH_ENDMSG, val); - - putsel(c, OP_ENDMSG, UPB_ENDMSG_SELECTOR, h); - putop(c, OP_RET); - - upb_inttable_compact(&method->dispatch); -} - -/* Populate "methods" with new upb_pbdecodermethod objects reachable from "h". - * Returns the method for these handlers. - * - * Generates a new method for every destination handlers reachable from "h". */ -static void find_methods(compiler *c, const upb_handlers *h) { - upb_value v; - int i, n; - const upb_msgdef *md; - upb_pbdecodermethod *method; - - if (upb_inttable_lookupptr(&c->group->methods, h, &v)) - return; - - method = newmethod(h, c->group); - upb_inttable_insertptr(&c->group->methods, h, upb_value_ptr(method)); - - /* Find submethods. */ - md = upb_handlers_msgdef(h); - n = upb_msgdef_fieldcount(md); - for (i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(md, i); - const upb_handlers *sub_h; - if (upb_fielddef_type(f) == UPB_TYPE_MESSAGE && - (sub_h = upb_handlers_getsubhandlers(h, f)) != NULL) { - /* We only generate a decoder method for submessages with handlers. - * Others will be parsed as unknown fields. */ - find_methods(c, sub_h); - } - } -} - -/* (Re-)compile bytecode for all messages in "msgs." - * Overwrites any existing bytecode in "c". */ -static void compile_methods(compiler *c) { - upb_inttable_iter i; - - /* Start over at the beginning of the bytecode. */ - c->pc = c->group->bytecode; - - upb_inttable_begin(&i, &c->group->methods); - for(; !upb_inttable_done(&i); upb_inttable_next(&i)) { - upb_pbdecodermethod *method = upb_value_getptr(upb_inttable_iter_value(&i)); - compile_method(c, method); - } -} - -static void set_bytecode_handlers(mgroup *g) { - upb_inttable_iter i; - upb_inttable_begin(&i, &g->methods); - for(; !upb_inttable_done(&i); upb_inttable_next(&i)) { - upb_pbdecodermethod *m = upb_value_getptr(upb_inttable_iter_value(&i)); - upb_byteshandler *h = &m->input_handler_; - - m->code_base.ptr = g->bytecode + m->code_base.ofs; - - upb_byteshandler_setstartstr(h, upb_pbdecoder_startbc, m->code_base.ptr); - upb_byteshandler_setstring(h, upb_pbdecoder_decode, g); - upb_byteshandler_setendstr(h, upb_pbdecoder_end, m); - } -} - - -/* TODO(haberman): allow this to be constructed for an arbitrary set of dest - * handlers and other mgroups (but verify we have a transitive closure). */ -const mgroup *mgroup_new(const upb_handlers *dest, bool lazy) { - mgroup *g; - compiler *c; - - g = newgroup(); - c = newcompiler(g, lazy); - find_methods(c, dest); - - /* We compile in two passes: - * 1. all messages are assigned relative offsets from the beginning of the - * bytecode (saved in method->code_base). - * 2. forwards OP_CALL instructions can be correctly linked since message - * offsets have been previously assigned. - * - * Could avoid the second pass by linking OP_CALL instructions somehow. */ - compile_methods(c); - compile_methods(c); - g->bytecode_end = c->pc; - freecompiler(c); - -#ifdef UPB_DUMP_BYTECODE - { - FILE *f = fopen("/tmp/upb-bytecode", "w"); - UPB_ASSERT(f); - dumpbc(g->bytecode, g->bytecode_end, stderr); - dumpbc(g->bytecode, g->bytecode_end, f); - fclose(f); - - f = fopen("/tmp/upb-bytecode.bin", "wb"); - UPB_ASSERT(f); - fwrite(g->bytecode, 1, g->bytecode_end - g->bytecode, f); - fclose(f); - } -#endif - - set_bytecode_handlers(g); - return g; -} - - -/* upb_pbcodecache ************************************************************/ - -upb_pbcodecache *upb_pbcodecache_new(upb_handlercache *dest) { - upb_pbcodecache *c = upb_gmalloc(sizeof(*c)); - - if (!c) return NULL; - - c->dest = dest; - c->lazy = false; - - c->arena = upb_arena_new(); - if (!upb_inttable_init(&c->groups, UPB_CTYPE_CONSTPTR)) return NULL; - - return c; -} - -void upb_pbcodecache_free(upb_pbcodecache *c) { - upb_inttable_iter i; - - upb_inttable_begin(&i, &c->groups); - for(; !upb_inttable_done(&i); upb_inttable_next(&i)) { - upb_value val = upb_inttable_iter_value(&i); - freegroup((void*)upb_value_getconstptr(val)); - } - - upb_inttable_uninit(&c->groups); - upb_arena_free(c->arena); - upb_gfree(c); -} - -void upb_pbdecodermethodopts_setlazy(upb_pbcodecache *c, bool lazy) { - UPB_ASSERT(upb_inttable_count(&c->groups) == 0); - c->lazy = lazy; -} - -const upb_pbdecodermethod *upb_pbcodecache_get(upb_pbcodecache *c, - const upb_msgdef *md) { - upb_value v; - bool ok; - const upb_handlers *h; - const mgroup *g; - - h = upb_handlercache_get(c->dest, md); - if (upb_inttable_lookupptr(&c->groups, md, &v)) { - g = upb_value_getconstptr(v); - } else { - g = mgroup_new(h, c->lazy); - ok = upb_inttable_insertptr(&c->groups, md, upb_value_constptr(g)); - UPB_ASSUME(ok); - } - - ok = upb_inttable_lookupptr(&g->methods, h, &v); - UPB_ASSUME(ok); - return upb_value_getptr(v); -} diff --git a/third_party/upb/upb/pb/decoder.c b/third_party/upb/upb/pb/decoder.c deleted file mode 100644 index 4f40eed4bed..00000000000 --- a/third_party/upb/upb/pb/decoder.c +++ /dev/null @@ -1,1047 +0,0 @@ -/* -** upb::Decoder (Bytecode Decoder VM) -** -** Bytecode must previously have been generated using the bytecode compiler in -** compile_decoder.c. This decoder then walks through the bytecode op-by-op to -** parse the input. -** -** Decoding is fully resumable; we just keep a pointer to the current bytecode -** instruction and resume from there. A fair amount of the logic here is to -** handle the fact that values can span buffer seams and we have to be able to -** be capable of suspending/resuming from any byte in the stream. This -** sometimes requires keeping a few trailing bytes from the last buffer around -** in the "residual" buffer. -*/ - -#include -#include -#include "upb/pb/decoder.int.h" -#include "upb/pb/varint.int.h" - -#ifdef UPB_DUMP_BYTECODE -#include -#endif - -#include "upb/port_def.inc" - -#define CHECK_SUSPEND(x) if (!(x)) return upb_pbdecoder_suspend(d); - -/* Error messages that are shared between the bytecode and JIT decoders. */ -const char *kPbDecoderStackOverflow = "Nesting too deep."; -const char *kPbDecoderSubmessageTooLong = - "Submessage end extends past enclosing submessage."; - -/* Error messages shared within this file. */ -static const char *kUnterminatedVarint = "Unterminated varint."; - -/* upb_pbdecoder **************************************************************/ - -static opcode halt = OP_HALT; - -/* A dummy character we can point to when the user passes us a NULL buffer. - * We need this because in C (NULL + 0) and (NULL - NULL) are undefined - * behavior, which would invalidate functions like curbufleft(). */ -static const char dummy_char; - -/* Whether an op consumes any of the input buffer. */ -static bool consumes_input(opcode op) { - switch (op) { - case OP_SETDISPATCH: - case OP_STARTMSG: - case OP_ENDMSG: - case OP_STARTSEQ: - case OP_ENDSEQ: - case OP_STARTSUBMSG: - case OP_ENDSUBMSG: - case OP_STARTSTR: - case OP_ENDSTR: - case OP_PUSHTAGDELIM: - case OP_POP: - case OP_SETDELIM: - case OP_SETBIGGROUPNUM: - case OP_CHECKDELIM: - case OP_CALL: - case OP_RET: - case OP_BRANCH: - return false; - default: - return true; - } -} - -static size_t stacksize(upb_pbdecoder *d, size_t entries) { - UPB_UNUSED(d); - return entries * sizeof(upb_pbdecoder_frame); -} - -static size_t callstacksize(upb_pbdecoder *d, size_t entries) { - UPB_UNUSED(d); - - return entries * sizeof(uint32_t*); -} - - -static bool in_residual_buf(const upb_pbdecoder *d, const char *p); - -/* It's unfortunate that we have to micro-manage the compiler with - * UPB_FORCEINLINE and UPB_NOINLINE, especially since this tuning is necessarily - * specific to one hardware configuration. But empirically on a Core i7, - * performance increases 30-50% with these annotations. Every instance where - * these appear, gcc 4.2.1 made the wrong decision and degraded performance in - * benchmarks. */ - -static void seterr(upb_pbdecoder *d, const char *msg) { - upb_status_seterrmsg(d->status, msg); -} - -void upb_pbdecoder_seterr(upb_pbdecoder *d, const char *msg) { - seterr(d, msg); -} - - -/* Buffering ******************************************************************/ - -/* We operate on one buffer at a time, which is either the user's buffer passed - * to our "decode" callback or some residual bytes from the previous buffer. */ - -/* How many bytes can be safely read from d->ptr without reading past end-of-buf - * or past the current delimited end. */ -static size_t curbufleft(const upb_pbdecoder *d) { - UPB_ASSERT(d->data_end >= d->ptr); - return d->data_end - d->ptr; -} - -/* How many bytes are available before end-of-buffer. */ -static size_t bufleft(const upb_pbdecoder *d) { - return d->end - d->ptr; -} - -/* Overall stream offset of d->ptr. */ -uint64_t offset(const upb_pbdecoder *d) { - return d->bufstart_ofs + (d->ptr - d->buf); -} - -/* How many bytes are available before the end of this delimited region. */ -size_t delim_remaining(const upb_pbdecoder *d) { - return d->top->end_ofs - offset(d); -} - -/* Advances d->ptr. */ -static void advance(upb_pbdecoder *d, size_t len) { - UPB_ASSERT(curbufleft(d) >= len); - d->ptr += len; -} - -static bool in_buf(const char *p, const char *buf, const char *end) { - return p >= buf && p <= end; -} - -static bool in_residual_buf(const upb_pbdecoder *d, const char *p) { - return in_buf(p, d->residual, d->residual_end); -} - -/* Calculates the delim_end value, which is affected by both the current buffer - * and the parsing stack, so must be called whenever either is updated. */ -static void set_delim_end(upb_pbdecoder *d) { - size_t delim_ofs = d->top->end_ofs - d->bufstart_ofs; - if (delim_ofs <= (size_t)(d->end - d->buf)) { - d->delim_end = d->buf + delim_ofs; - d->data_end = d->delim_end; - } else { - d->data_end = d->end; - d->delim_end = NULL; - } -} - -static void switchtobuf(upb_pbdecoder *d, const char *buf, const char *end) { - d->ptr = buf; - d->buf = buf; - d->end = end; - set_delim_end(d); -} - -static void advancetobuf(upb_pbdecoder *d, const char *buf, size_t len) { - UPB_ASSERT(curbufleft(d) == 0); - d->bufstart_ofs += (d->end - d->buf); - switchtobuf(d, buf, buf + len); -} - -static void checkpoint(upb_pbdecoder *d) { - /* The assertion here is in the interests of efficiency, not correctness. - * We are trying to ensure that we don't checkpoint() more often than - * necessary. */ - UPB_ASSERT(d->checkpoint != d->ptr); - d->checkpoint = d->ptr; -} - -/* Skips "bytes" bytes in the stream, which may be more than available. If we - * skip more bytes than are available, we return a long read count to the caller - * indicating how many bytes can be skipped over before passing actual data - * again. Skipped bytes can pass a NULL buffer and the decoder guarantees they - * won't actually be read. - */ -static int32_t skip(upb_pbdecoder *d, size_t bytes) { - UPB_ASSERT(!in_residual_buf(d, d->ptr) || d->size_param == 0); - UPB_ASSERT(d->skip == 0); - if (bytes > delim_remaining(d)) { - seterr(d, "Skipped value extended beyond enclosing submessage."); - return (int32_t)upb_pbdecoder_suspend(d); - } else if (bufleft(d) >= bytes) { - /* Skipped data is all in current buffer, and more is still available. */ - advance(d, bytes); - d->skip = 0; - return DECODE_OK; - } else { - /* Skipped data extends beyond currently available buffers. */ - d->pc = d->last; - d->skip = bytes - curbufleft(d); - d->bufstart_ofs += (d->end - d->buf); - d->residual_end = d->residual; - switchtobuf(d, d->residual, d->residual_end); - return (int32_t)(d->size_param + d->skip); - } -} - - -/* Resumes the decoder from an initial state or from a previous suspend. */ -int32_t upb_pbdecoder_resume(upb_pbdecoder *d, void *p, const char *buf, - size_t size, const upb_bufhandle *handle) { - UPB_UNUSED(p); /* Useless; just for the benefit of the JIT. */ - - /* d->skip and d->residual_end could probably elegantly be represented - * as a single variable, to more easily represent this invariant. */ - UPB_ASSERT(!(d->skip && d->residual_end > d->residual)); - - /* We need to remember the original size_param, so that the value we return - * is relative to it, even if we do some skipping first. */ - d->size_param = size; - d->handle = handle; - - /* Have to handle this case specially (ie. not with skip()) because the user - * is allowed to pass a NULL buffer here, which won't allow us to safely - * calculate a d->end or use our normal functions like curbufleft(). */ - if (d->skip && d->skip >= size) { - d->skip -= size; - d->bufstart_ofs += size; - buf = &dummy_char; - size = 0; - - /* We can't just return now, because we might need to execute some ops - * like CHECKDELIM, which could call some callbacks and pop the stack. */ - } - - /* We need to pretend that this was the actual buffer param, since some of the - * calculations assume that d->ptr/d->buf is relative to this. */ - d->buf_param = buf; - - if (!buf) { - /* NULL buf is ok if its entire span is covered by the "skip" above, but - * by this point we know that "skip" doesn't cover the buffer. */ - seterr(d, "Passed NULL buffer over non-skippable region."); - return (int32_t)upb_pbdecoder_suspend(d); - } - - if (d->residual_end > d->residual) { - /* We have residual bytes from the last buffer. */ - UPB_ASSERT(d->ptr == d->residual); - } else { - switchtobuf(d, buf, buf + size); - } - - d->checkpoint = d->ptr; - - /* Handle skips that don't cover the whole buffer (as above). */ - if (d->skip) { - size_t skip_bytes = d->skip; - d->skip = 0; - CHECK_RETURN(skip(d, skip_bytes)); - checkpoint(d); - } - - /* If we're inside an unknown group, continue to parse unknown values. */ - if (d->top->groupnum < 0) { - CHECK_RETURN(upb_pbdecoder_skipunknown(d, -1, 0)); - checkpoint(d); - } - - return DECODE_OK; -} - -/* Suspends the decoder at the last checkpoint, without saving any residual - * bytes. If there are any unconsumed bytes, returns a short byte count. */ -size_t upb_pbdecoder_suspend(upb_pbdecoder *d) { - d->pc = d->last; - if (d->checkpoint == d->residual) { - /* Checkpoint was in residual buf; no user bytes were consumed. */ - d->ptr = d->residual; - return 0; - } else { - size_t ret = d->size_param - (d->end - d->checkpoint); - UPB_ASSERT(!in_residual_buf(d, d->checkpoint)); - UPB_ASSERT(d->buf == d->buf_param || d->buf == &dummy_char); - - d->bufstart_ofs += (d->checkpoint - d->buf); - d->residual_end = d->residual; - switchtobuf(d, d->residual, d->residual_end); - return ret; - } -} - -/* Suspends the decoder at the last checkpoint, and saves any unconsumed - * bytes in our residual buffer. This is necessary if we need more user - * bytes to form a complete value, which might not be contiguous in the - * user's buffers. Always consumes all user bytes. */ -static size_t suspend_save(upb_pbdecoder *d) { - /* We hit end-of-buffer before we could parse a full value. - * Save any unconsumed bytes (if any) to the residual buffer. */ - d->pc = d->last; - - if (d->checkpoint == d->residual) { - /* Checkpoint was in residual buf; append user byte(s) to residual buf. */ - UPB_ASSERT((d->residual_end - d->residual) + d->size_param <= - sizeof(d->residual)); - if (!in_residual_buf(d, d->ptr)) { - d->bufstart_ofs -= (d->residual_end - d->residual); - } - memcpy(d->residual_end, d->buf_param, d->size_param); - d->residual_end += d->size_param; - } else { - /* Checkpoint was in user buf; old residual bytes not needed. */ - size_t save; - UPB_ASSERT(!in_residual_buf(d, d->checkpoint)); - - d->ptr = d->checkpoint; - save = curbufleft(d); - UPB_ASSERT(save <= sizeof(d->residual)); - memcpy(d->residual, d->ptr, save); - d->residual_end = d->residual + save; - d->bufstart_ofs = offset(d); - } - - switchtobuf(d, d->residual, d->residual_end); - return d->size_param; -} - -/* Copies the next "bytes" bytes into "buf" and advances the stream. - * Requires that this many bytes are available in the current buffer. */ -UPB_FORCEINLINE static void consumebytes(upb_pbdecoder *d, void *buf, - size_t bytes) { - UPB_ASSERT(bytes <= curbufleft(d)); - memcpy(buf, d->ptr, bytes); - advance(d, bytes); -} - -/* Slow path for getting the next "bytes" bytes, regardless of whether they are - * available in the current buffer or not. Returns a status code as described - * in decoder.int.h. */ -UPB_NOINLINE static int32_t getbytes_slow(upb_pbdecoder *d, void *buf, - size_t bytes) { - const size_t avail = curbufleft(d); - consumebytes(d, buf, avail); - bytes -= avail; - UPB_ASSERT(bytes > 0); - if (in_residual_buf(d, d->ptr)) { - advancetobuf(d, d->buf_param, d->size_param); - } - if (curbufleft(d) >= bytes) { - consumebytes(d, (char *)buf + avail, bytes); - return DECODE_OK; - } else if (d->data_end == d->delim_end) { - seterr(d, "Submessage ended in the middle of a value or group"); - return (int32_t)upb_pbdecoder_suspend(d); - } else { - return (int32_t)suspend_save(d); - } -} - -/* Gets the next "bytes" bytes, regardless of whether they are available in the - * current buffer or not. Returns a status code as described in decoder.int.h. - */ -UPB_FORCEINLINE static int32_t getbytes(upb_pbdecoder *d, void *buf, - size_t bytes) { - if (curbufleft(d) >= bytes) { - /* Buffer has enough data to satisfy. */ - consumebytes(d, buf, bytes); - return DECODE_OK; - } else { - return getbytes_slow(d, buf, bytes); - } -} - -UPB_NOINLINE static size_t peekbytes_slow(upb_pbdecoder *d, void *buf, - size_t bytes) { - size_t ret = curbufleft(d); - memcpy(buf, d->ptr, ret); - if (in_residual_buf(d, d->ptr)) { - size_t copy = UPB_MIN(bytes - ret, d->size_param); - memcpy((char *)buf + ret, d->buf_param, copy); - ret += copy; - } - return ret; -} - -UPB_FORCEINLINE static size_t peekbytes(upb_pbdecoder *d, void *buf, - size_t bytes) { - if (curbufleft(d) >= bytes) { - memcpy(buf, d->ptr, bytes); - return bytes; - } else { - return peekbytes_slow(d, buf, bytes); - } -} - - -/* Decoding of wire types *****************************************************/ - -/* Slow path for decoding a varint from the current buffer position. - * Returns a status code as described in decoder.int.h. */ -UPB_NOINLINE int32_t upb_pbdecoder_decode_varint_slow(upb_pbdecoder *d, - uint64_t *u64) { - uint8_t byte = 0x80; - int bitpos; - *u64 = 0; - for(bitpos = 0; bitpos < 70 && (byte & 0x80); bitpos += 7) { - CHECK_RETURN(getbytes(d, &byte, 1)); - *u64 |= (uint64_t)(byte & 0x7F) << bitpos; - } - if(bitpos == 70 && (byte & 0x80)) { - seterr(d, kUnterminatedVarint); - return (int32_t)upb_pbdecoder_suspend(d); - } - return DECODE_OK; -} - -/* Decodes a varint from the current buffer position. - * Returns a status code as described in decoder.int.h. */ -UPB_FORCEINLINE static int32_t decode_varint(upb_pbdecoder *d, uint64_t *u64) { - if (curbufleft(d) > 0 && !(*d->ptr & 0x80)) { - *u64 = *d->ptr; - advance(d, 1); - return DECODE_OK; - } else if (curbufleft(d) >= 10) { - /* Fast case. */ - upb_decoderet r = upb_vdecode_fast(d->ptr); - if (r.p == NULL) { - seterr(d, kUnterminatedVarint); - return (int32_t)upb_pbdecoder_suspend(d); - } - advance(d, r.p - d->ptr); - *u64 = r.val; - return DECODE_OK; - } else { - /* Slow case -- varint spans buffer seam. */ - return upb_pbdecoder_decode_varint_slow(d, u64); - } -} - -/* Decodes a 32-bit varint from the current buffer position. - * Returns a status code as described in decoder.int.h. */ -UPB_FORCEINLINE static int32_t decode_v32(upb_pbdecoder *d, uint32_t *u32) { - uint64_t u64; - int32_t ret = decode_varint(d, &u64); - if (ret >= 0) return ret; - if (u64 > UINT32_MAX) { - seterr(d, "Unterminated 32-bit varint"); - /* TODO(haberman) guarantee that this function return is >= 0 somehow, - * so we know this path will always be treated as error by our caller. - * Right now the size_t -> int32_t can overflow and produce negative values. - */ - *u32 = 0; - return (int32_t)upb_pbdecoder_suspend(d); - } - *u32 = (uint32_t)u64; - return DECODE_OK; -} - -/* Decodes a fixed32 from the current buffer position. - * Returns a status code as described in decoder.int.h. - * TODO: proper byte swapping for big-endian machines. */ -UPB_FORCEINLINE static int32_t decode_fixed32(upb_pbdecoder *d, uint32_t *u32) { - return getbytes(d, u32, 4); -} - -/* Decodes a fixed64 from the current buffer position. - * Returns a status code as described in decoder.int.h. - * TODO: proper byte swapping for big-endian machines. */ -UPB_FORCEINLINE static int32_t decode_fixed64(upb_pbdecoder *d, uint64_t *u64) { - return getbytes(d, u64, 8); -} - -/* Non-static versions of the above functions. - * These are called by the JIT for fallback paths. */ -int32_t upb_pbdecoder_decode_f32(upb_pbdecoder *d, uint32_t *u32) { - return decode_fixed32(d, u32); -} - -int32_t upb_pbdecoder_decode_f64(upb_pbdecoder *d, uint64_t *u64) { - return decode_fixed64(d, u64); -} - -static double as_double(uint64_t n) { double d; memcpy(&d, &n, 8); return d; } -static float as_float(uint32_t n) { float f; memcpy(&f, &n, 4); return f; } - -/* Pushes a frame onto the decoder stack. */ -static bool decoder_push(upb_pbdecoder *d, uint64_t end) { - upb_pbdecoder_frame *fr = d->top; - - if (end > fr->end_ofs) { - seterr(d, kPbDecoderSubmessageTooLong); - return false; - } else if (fr == d->limit) { - seterr(d, kPbDecoderStackOverflow); - return false; - } - - fr++; - fr->end_ofs = end; - fr->dispatch = NULL; - fr->groupnum = 0; - d->top = fr; - return true; -} - -static bool pushtagdelim(upb_pbdecoder *d, uint32_t arg) { - /* While we expect to see an "end" tag (either ENDGROUP or a non-sequence - * field number) prior to hitting any enclosing submessage end, pushing our - * existing delim end prevents us from continuing to parse values from a - * corrupt proto that doesn't give us an END tag in time. */ - if (!decoder_push(d, d->top->end_ofs)) - return false; - d->top->groupnum = arg; - return true; -} - -/* Pops a frame from the decoder stack. */ -static void decoder_pop(upb_pbdecoder *d) { d->top--; } - -UPB_NOINLINE int32_t upb_pbdecoder_checktag_slow(upb_pbdecoder *d, - uint64_t expected) { - uint64_t data = 0; - size_t bytes = upb_value_size(expected); - size_t read = peekbytes(d, &data, bytes); - if (read == bytes && data == expected) { - /* Advance past matched bytes. */ - int32_t ok = getbytes(d, &data, read); - UPB_ASSERT(ok < 0); - return DECODE_OK; - } else if (read < bytes && memcmp(&data, &expected, read) == 0) { - return (int32_t)suspend_save(d); - } else { - return DECODE_MISMATCH; - } -} - -int32_t upb_pbdecoder_skipunknown(upb_pbdecoder *d, int32_t fieldnum, - uint8_t wire_type) { - if (fieldnum >= 0) - goto have_tag; - - while (true) { - uint32_t tag; - CHECK_RETURN(decode_v32(d, &tag)); - wire_type = tag & 0x7; - fieldnum = tag >> 3; - -have_tag: - if (fieldnum == 0) { - seterr(d, "Saw invalid field number (0)"); - return (int32_t)upb_pbdecoder_suspend(d); - } - - switch (wire_type) { - case UPB_WIRE_TYPE_32BIT: - CHECK_RETURN(skip(d, 4)); - break; - case UPB_WIRE_TYPE_64BIT: - CHECK_RETURN(skip(d, 8)); - break; - case UPB_WIRE_TYPE_VARINT: { - uint64_t u64; - CHECK_RETURN(decode_varint(d, &u64)); - break; - } - case UPB_WIRE_TYPE_DELIMITED: { - uint32_t len; - CHECK_RETURN(decode_v32(d, &len)); - CHECK_RETURN(skip(d, len)); - break; - } - case UPB_WIRE_TYPE_START_GROUP: - if (!pushtagdelim(d, -fieldnum)) { - return (int32_t)upb_pbdecoder_suspend(d); - } - break; - case UPB_WIRE_TYPE_END_GROUP: - if (fieldnum == -d->top->groupnum) { - decoder_pop(d); - } else if (fieldnum == d->top->groupnum) { - return DECODE_ENDGROUP; - } else { - seterr(d, "Unmatched ENDGROUP tag."); - return (int32_t)upb_pbdecoder_suspend(d); - } - break; - default: - seterr(d, "Invalid wire type"); - return (int32_t)upb_pbdecoder_suspend(d); - } - - if (d->top->groupnum >= 0) { - /* TODO: More code needed for handling unknown groups. */ - upb_sink_putunknown(d->top->sink, d->checkpoint, d->ptr - d->checkpoint); - return DECODE_OK; - } - - /* Unknown group -- continue looping over unknown fields. */ - checkpoint(d); - } -} - -static void goto_endmsg(upb_pbdecoder *d) { - upb_value v; - bool found = upb_inttable_lookup32(d->top->dispatch, DISPATCH_ENDMSG, &v); - UPB_ASSERT(found); - d->pc = d->top->base + upb_value_getuint64(v); -} - -/* Parses a tag and jumps to the corresponding bytecode instruction for this - * field. - * - * If the tag is unknown (or the wire type doesn't match), parses the field as - * unknown. If the tag is a valid ENDGROUP tag, jumps to the bytecode - * instruction for the end of message. */ -static int32_t dispatch(upb_pbdecoder *d) { - upb_inttable *dispatch = d->top->dispatch; - uint32_t tag; - uint8_t wire_type; - uint32_t fieldnum; - upb_value val; - int32_t retval; - - /* Decode tag. */ - CHECK_RETURN(decode_v32(d, &tag)); - wire_type = tag & 0x7; - fieldnum = tag >> 3; - - /* Lookup tag. Because of packed/non-packed compatibility, we have to - * check the wire type against two possibilities. */ - if (fieldnum != DISPATCH_ENDMSG && - upb_inttable_lookup32(dispatch, fieldnum, &val)) { - uint64_t v = upb_value_getuint64(val); - if (wire_type == (v & 0xff)) { - d->pc = d->top->base + (v >> 16); - return DECODE_OK; - } else if (wire_type == ((v >> 8) & 0xff)) { - bool found = - upb_inttable_lookup(dispatch, fieldnum + UPB_MAX_FIELDNUMBER, &val); - UPB_ASSERT(found); - d->pc = d->top->base + upb_value_getuint64(val); - return DECODE_OK; - } - } - - /* We have some unknown fields (or ENDGROUP) to parse. The DISPATCH or TAG - * bytecode that triggered this is preceded by a CHECKDELIM bytecode which - * we need to back up to, so that when we're done skipping unknown data we - * can re-check the delimited end. */ - d->last--; /* Necessary if we get suspended */ - d->pc = d->last; - UPB_ASSERT(getop(*d->last) == OP_CHECKDELIM); - - /* Unknown field or ENDGROUP. */ - retval = upb_pbdecoder_skipunknown(d, fieldnum, wire_type); - - CHECK_RETURN(retval); - - if (retval == DECODE_ENDGROUP) { - goto_endmsg(d); - return DECODE_OK; - } - - return DECODE_OK; -} - -/* Callers know that the stack is more than one deep because the opcodes that - * call this only occur after PUSH operations. */ -upb_pbdecoder_frame *outer_frame(upb_pbdecoder *d) { - UPB_ASSERT(d->top != d->stack); - return d->top - 1; -} - - -/* The main decoding loop *****************************************************/ - -/* The main decoder VM function. Uses traditional bytecode dispatch loop with a - * switch() statement. */ -size_t run_decoder_vm(upb_pbdecoder *d, const mgroup *group, - const upb_bufhandle* handle) { - -#define VMCASE(op, code) \ - case op: { code; if (consumes_input(op)) checkpoint(d); break; } -#define PRIMITIVE_OP(type, wt, name, convfunc, ctype) \ - VMCASE(OP_PARSE_ ## type, { \ - ctype val; \ - CHECK_RETURN(decode_ ## wt(d, &val)); \ - upb_sink_put ## name(d->top->sink, arg, (convfunc)(val)); \ - }) - - while(1) { - int32_t instruction; - opcode op; - uint32_t arg; - int32_t longofs; - - d->last = d->pc; - instruction = *d->pc++; - op = getop(instruction); - arg = instruction >> 8; - longofs = arg; - UPB_ASSERT(d->ptr != d->residual_end); - UPB_UNUSED(group); -#ifdef UPB_DUMP_BYTECODE - fprintf(stderr, "s_ofs=%d buf_ofs=%d data_rem=%d buf_rem=%d delim_rem=%d " - "%x %s (%d)\n", - (int)offset(d), - (int)(d->ptr - d->buf), - (int)(d->data_end - d->ptr), - (int)(d->end - d->ptr), - (int)((d->top->end_ofs - d->bufstart_ofs) - (d->ptr - d->buf)), - (int)(d->pc - 1 - group->bytecode), - upb_pbdecoder_getopname(op), - arg); -#endif - switch (op) { - /* Technically, we are losing data if we see a 32-bit varint that is not - * properly sign-extended. We could detect this and error about the data - * loss, but proto2 does not do this, so we pass. */ - PRIMITIVE_OP(INT32, varint, int32, int32_t, uint64_t) - PRIMITIVE_OP(INT64, varint, int64, int64_t, uint64_t) - PRIMITIVE_OP(UINT32, varint, uint32, uint32_t, uint64_t) - PRIMITIVE_OP(UINT64, varint, uint64, uint64_t, uint64_t) - PRIMITIVE_OP(FIXED32, fixed32, uint32, uint32_t, uint32_t) - PRIMITIVE_OP(FIXED64, fixed64, uint64, uint64_t, uint64_t) - PRIMITIVE_OP(SFIXED32, fixed32, int32, int32_t, uint32_t) - PRIMITIVE_OP(SFIXED64, fixed64, int64, int64_t, uint64_t) - PRIMITIVE_OP(BOOL, varint, bool, bool, uint64_t) - PRIMITIVE_OP(DOUBLE, fixed64, double, as_double, uint64_t) - PRIMITIVE_OP(FLOAT, fixed32, float, as_float, uint32_t) - PRIMITIVE_OP(SINT32, varint, int32, upb_zzdec_32, uint64_t) - PRIMITIVE_OP(SINT64, varint, int64, upb_zzdec_64, uint64_t) - - VMCASE(OP_SETDISPATCH, - d->top->base = d->pc - 1; - memcpy(&d->top->dispatch, d->pc, sizeof(void*)); - d->pc += sizeof(void*) / sizeof(uint32_t); - ) - VMCASE(OP_STARTMSG, - CHECK_SUSPEND(upb_sink_startmsg(d->top->sink)); - ) - VMCASE(OP_ENDMSG, - CHECK_SUSPEND(upb_sink_endmsg(d->top->sink, d->status)); - ) - VMCASE(OP_STARTSEQ, - upb_pbdecoder_frame *outer = outer_frame(d); - CHECK_SUSPEND(upb_sink_startseq(outer->sink, arg, &d->top->sink)); - ) - VMCASE(OP_ENDSEQ, - CHECK_SUSPEND(upb_sink_endseq(d->top->sink, arg)); - ) - VMCASE(OP_STARTSUBMSG, - upb_pbdecoder_frame *outer = outer_frame(d); - CHECK_SUSPEND(upb_sink_startsubmsg(outer->sink, arg, &d->top->sink)); - ) - VMCASE(OP_ENDSUBMSG, - upb_sink subsink = (d->top + 1)->sink; - CHECK_SUSPEND(upb_sink_endsubmsg(d->top->sink, subsink, arg)); - ) - VMCASE(OP_STARTSTR, - uint32_t len = (uint32_t)delim_remaining(d); - upb_pbdecoder_frame *outer = outer_frame(d); - CHECK_SUSPEND(upb_sink_startstr(outer->sink, arg, len, &d->top->sink)); - if (len == 0) { - d->pc++; /* Skip OP_STRING. */ - } - ) - VMCASE(OP_STRING, - uint32_t len = (uint32_t)curbufleft(d); - size_t n = upb_sink_putstring(d->top->sink, arg, d->ptr, len, handle); - if (n > len) { - if (n > delim_remaining(d)) { - seterr(d, "Tried to skip past end of string."); - return upb_pbdecoder_suspend(d); - } else { - int32_t ret = skip(d, n); - /* This shouldn't return DECODE_OK, because n > len. */ - UPB_ASSERT(ret >= 0); - return ret; - } - } - advance(d, n); - if (n < len || d->delim_end == NULL) { - /* We aren't finished with this string yet. */ - d->pc--; /* Repeat OP_STRING. */ - if (n > 0) checkpoint(d); - return upb_pbdecoder_suspend(d); - } - ) - VMCASE(OP_ENDSTR, - CHECK_SUSPEND(upb_sink_endstr(d->top->sink, arg)); - ) - VMCASE(OP_PUSHTAGDELIM, - CHECK_SUSPEND(pushtagdelim(d, arg)); - ) - VMCASE(OP_SETBIGGROUPNUM, - d->top->groupnum = *d->pc++; - ) - VMCASE(OP_POP, - UPB_ASSERT(d->top > d->stack); - decoder_pop(d); - ) - VMCASE(OP_PUSHLENDELIM, - uint32_t len; - CHECK_RETURN(decode_v32(d, &len)); - CHECK_SUSPEND(decoder_push(d, offset(d) + len)); - set_delim_end(d); - ) - VMCASE(OP_SETDELIM, - set_delim_end(d); - ) - VMCASE(OP_CHECKDELIM, - /* We are guaranteed of this assert because we never allow ourselves to - * consume bytes beyond data_end, which covers delim_end when non-NULL. - */ - UPB_ASSERT(!(d->delim_end && d->ptr > d->delim_end)); - if (d->ptr == d->delim_end) - d->pc += longofs; - ) - VMCASE(OP_CALL, - d->callstack[d->call_len++] = d->pc; - d->pc += longofs; - ) - VMCASE(OP_RET, - UPB_ASSERT(d->call_len > 0); - d->pc = d->callstack[--d->call_len]; - ) - VMCASE(OP_BRANCH, - d->pc += longofs; - ) - VMCASE(OP_TAG1, - uint8_t expected; - CHECK_SUSPEND(curbufleft(d) > 0); - expected = (arg >> 8) & 0xff; - if (*d->ptr == expected) { - advance(d, 1); - } else { - int8_t shortofs; - badtag: - shortofs = arg; - if (shortofs == LABEL_DISPATCH) { - CHECK_RETURN(dispatch(d)); - } else { - d->pc += shortofs; - break; /* Avoid checkpoint(). */ - } - } - ) - VMCASE(OP_TAG2, - uint16_t expected; - CHECK_SUSPEND(curbufleft(d) > 0); - expected = (arg >> 8) & 0xffff; - if (curbufleft(d) >= 2) { - uint16_t actual; - memcpy(&actual, d->ptr, 2); - if (expected == actual) { - advance(d, 2); - } else { - goto badtag; - } - } else { - int32_t result = upb_pbdecoder_checktag_slow(d, expected); - if (result == DECODE_MISMATCH) goto badtag; - if (result >= 0) return result; - } - ) - VMCASE(OP_TAGN, { - uint64_t expected; - int32_t result; - memcpy(&expected, d->pc, 8); - d->pc += 2; - result = upb_pbdecoder_checktag_slow(d, expected); - if (result == DECODE_MISMATCH) goto badtag; - if (result >= 0) return result; - }) - VMCASE(OP_DISPATCH, { - CHECK_RETURN(dispatch(d)); - }) - VMCASE(OP_HALT, { - return d->size_param; - }) - } - } -} - - -/* BytesHandler handlers ******************************************************/ - -void *upb_pbdecoder_startbc(void *closure, const void *pc, size_t size_hint) { - upb_pbdecoder *d = closure; - UPB_UNUSED(size_hint); - d->top->end_ofs = UINT64_MAX; - d->bufstart_ofs = 0; - d->call_len = 1; - d->callstack[0] = &halt; - d->pc = pc; - d->skip = 0; - return d; -} - -bool upb_pbdecoder_end(void *closure, const void *handler_data) { - upb_pbdecoder *d = closure; - const upb_pbdecodermethod *method = handler_data; - uint64_t end; - char dummy; - - if (d->residual_end > d->residual) { - seterr(d, "Unexpected EOF: decoder still has buffered unparsed data"); - return false; - } - - if (d->skip) { - seterr(d, "Unexpected EOF inside skipped data"); - return false; - } - - if (d->top->end_ofs != UINT64_MAX) { - seterr(d, "Unexpected EOF inside delimited string"); - return false; - } - - /* The user's end() call indicates that the message ends here. */ - end = offset(d); - d->top->end_ofs = end; - - { - const uint32_t *p = d->pc; - d->stack->end_ofs = end; - /* Check the previous bytecode, but guard against beginning. */ - if (p != method->code_base.ptr) p--; - if (getop(*p) == OP_CHECKDELIM) { - /* Rewind from OP_TAG* to OP_CHECKDELIM. */ - UPB_ASSERT(getop(*d->pc) == OP_TAG1 || - getop(*d->pc) == OP_TAG2 || - getop(*d->pc) == OP_TAGN || - getop(*d->pc) == OP_DISPATCH); - d->pc = p; - } - upb_pbdecoder_decode(closure, handler_data, &dummy, 0, NULL); - } - - if (d->call_len != 0) { - seterr(d, "Unexpected EOF inside submessage or group"); - return false; - } - - return true; -} - -size_t upb_pbdecoder_decode(void *decoder, const void *group, const char *buf, - size_t size, const upb_bufhandle *handle) { - int32_t result = upb_pbdecoder_resume(decoder, NULL, buf, size, handle); - - if (result == DECODE_ENDGROUP) goto_endmsg(decoder); - CHECK_RETURN(result); - - return run_decoder_vm(decoder, group, handle); -} - - -/* Public API *****************************************************************/ - -void upb_pbdecoder_reset(upb_pbdecoder *d) { - d->top = d->stack; - d->top->groupnum = 0; - d->ptr = d->residual; - d->buf = d->residual; - d->end = d->residual; - d->residual_end = d->residual; -} - -upb_pbdecoder *upb_pbdecoder_create(upb_arena *a, const upb_pbdecodermethod *m, - upb_sink sink, upb_status *status) { - const size_t default_max_nesting = 64; - - upb_pbdecoder *d = upb_arena_malloc(a, sizeof(upb_pbdecoder)); - if (!d) return NULL; - - d->method_ = m; - d->callstack = upb_arena_malloc(a, callstacksize(d, default_max_nesting)); - d->stack = upb_arena_malloc(a, stacksize(d, default_max_nesting)); - if (!d->stack || !d->callstack) { - return NULL; - } - - d->arena = a; - d->limit = d->stack + default_max_nesting - 1; - d->stack_size = default_max_nesting; - d->status = status; - - upb_pbdecoder_reset(d); - upb_bytessink_reset(&d->input_, &m->input_handler_, d); - - if (d->method_->dest_handlers_) { - if (sink.handlers != d->method_->dest_handlers_) - return NULL; - } - d->top->sink = sink; - - return d; -} - -uint64_t upb_pbdecoder_bytesparsed(const upb_pbdecoder *d) { - return offset(d); -} - -const upb_pbdecodermethod *upb_pbdecoder_method(const upb_pbdecoder *d) { - return d->method_; -} - -upb_bytessink upb_pbdecoder_input(upb_pbdecoder *d) { - return d->input_; -} - -size_t upb_pbdecoder_maxnesting(const upb_pbdecoder *d) { - return d->stack_size; -} - -bool upb_pbdecoder_setmaxnesting(upb_pbdecoder *d, size_t max) { - UPB_ASSERT(d->top >= d->stack); - - if (max < (size_t)(d->top - d->stack)) { - /* Can't set a limit smaller than what we are currently at. */ - return false; - } - - if (max > d->stack_size) { - /* Need to reallocate stack and callstack to accommodate. */ - size_t old_size = stacksize(d, d->stack_size); - size_t new_size = stacksize(d, max); - void *p = upb_arena_realloc(d->arena, d->stack, old_size, new_size); - if (!p) { - return false; - } - d->stack = p; - - old_size = callstacksize(d, d->stack_size); - new_size = callstacksize(d, max); - p = upb_arena_realloc(d->arena, d->callstack, old_size, new_size); - if (!p) { - return false; - } - d->callstack = p; - - d->stack_size = max; - } - - d->limit = d->stack + max - 1; - return true; -} diff --git a/third_party/upb/upb/pb/decoder.h b/third_party/upb/upb/pb/decoder.h deleted file mode 100644 index 8c4d8bf5d5c..00000000000 --- a/third_party/upb/upb/pb/decoder.h +++ /dev/null @@ -1,242 +0,0 @@ -/* -** upb::pb::Decoder -** -** A high performance, streaming, resumable decoder for the binary protobuf -** format. -** -** This interface works the same regardless of what decoder backend is being -** used. A client of this class does not need to know whether decoding is using -** a JITted decoder (DynASM, LLVM, etc) or an interpreted decoder. By default, -** it will always use the fastest available decoder. However, you can call -** set_allow_jit(false) to disable any JIT decoder that might be available. -** This is primarily useful for testing purposes. -*/ - -#ifndef UPB_DECODER_H_ -#define UPB_DECODER_H_ - -#include "upb/sink.h" - -#ifdef __cplusplus -namespace upb { -namespace pb { -class CodeCache; -class DecoderPtr; -class DecoderMethodPtr; -class DecoderMethodOptions; -} /* namespace pb */ -} /* namespace upb */ -#endif - -/* The maximum number of bytes we are required to buffer internally between - * calls to the decoder. The value is 14: a 5 byte unknown tag plus ten-byte - * varint, less one because we are buffering an incomplete value. - * - * Should only be used by unit tests. */ -#define UPB_DECODER_MAX_RESIDUAL_BYTES 14 - -/* upb_pbdecodermethod ********************************************************/ - -struct upb_pbdecodermethod; -typedef struct upb_pbdecodermethod upb_pbdecodermethod; - -#ifdef __cplusplus -extern "C" { -#endif - -const upb_handlers *upb_pbdecodermethod_desthandlers( - const upb_pbdecodermethod *m); -const upb_byteshandler *upb_pbdecodermethod_inputhandler( - const upb_pbdecodermethod *m); -bool upb_pbdecodermethod_isnative(const upb_pbdecodermethod *m); - -#ifdef __cplusplus -} /* extern "C" */ - -/* Represents the code to parse a protobuf according to a destination - * Handlers. */ -class upb::pb::DecoderMethodPtr { - public: - DecoderMethodPtr() : ptr_(nullptr) {} - DecoderMethodPtr(const upb_pbdecodermethod* ptr) : ptr_(ptr) {} - - const upb_pbdecodermethod* ptr() { return ptr_; } - - /* The destination handlers that are statically bound to this method. - * This method is only capable of outputting to a sink that uses these - * handlers. */ - const Handlers *dest_handlers() const { - return upb_pbdecodermethod_desthandlers(ptr_); - } - - /* The input handlers for this decoder method. */ - const BytesHandler* input_handler() const { - return upb_pbdecodermethod_inputhandler(ptr_); - } - - /* Whether this method is native. */ - bool is_native() const { - return upb_pbdecodermethod_isnative(ptr_); - } - - private: - const upb_pbdecodermethod* ptr_; -}; - -#endif - -/* upb_pbdecoder **************************************************************/ - -/* Preallocation hint: decoder won't allocate more bytes than this when first - * constructed. This hint may be an overestimate for some build configurations. - * But if the decoder library is upgraded without recompiling the application, - * it may be an underestimate. */ -#define UPB_PB_DECODER_SIZE 4416 - -struct upb_pbdecoder; -typedef struct upb_pbdecoder upb_pbdecoder; - -#ifdef __cplusplus -extern "C" { -#endif - -upb_pbdecoder *upb_pbdecoder_create(upb_arena *arena, - const upb_pbdecodermethod *method, - upb_sink output, upb_status *status); -const upb_pbdecodermethod *upb_pbdecoder_method(const upb_pbdecoder *d); -upb_bytessink upb_pbdecoder_input(upb_pbdecoder *d); -uint64_t upb_pbdecoder_bytesparsed(const upb_pbdecoder *d); -size_t upb_pbdecoder_maxnesting(const upb_pbdecoder *d); -bool upb_pbdecoder_setmaxnesting(upb_pbdecoder *d, size_t max); -void upb_pbdecoder_reset(upb_pbdecoder *d); - -#ifdef __cplusplus -} /* extern "C" */ - -/* A Decoder receives binary protobuf data on its input sink and pushes the - * decoded data to its output sink. */ -class upb::pb::DecoderPtr { - public: - DecoderPtr() : ptr_(nullptr) {} - DecoderPtr(upb_pbdecoder* ptr) : ptr_(ptr) {} - - upb_pbdecoder* ptr() { return ptr_; } - - /* Constructs a decoder instance for the given method, which must outlive this - * decoder. Any errors during parsing will be set on the given status, which - * must also outlive this decoder. - * - * The sink must match the given method. */ - static DecoderPtr Create(Arena *arena, DecoderMethodPtr method, - upb::Sink output, Status *status) { - return DecoderPtr(upb_pbdecoder_create(arena->ptr(), method.ptr(), - output.sink(), status->ptr())); - } - - /* Returns the DecoderMethod this decoder is parsing from. */ - const DecoderMethodPtr method() const { - return DecoderMethodPtr(upb_pbdecoder_method(ptr_)); - } - - /* The sink on which this decoder receives input. */ - BytesSink input() { return BytesSink(upb_pbdecoder_input(ptr())); } - - /* Returns number of bytes successfully parsed. - * - * This can be useful for determining the stream position where an error - * occurred. - * - * This value may not be up-to-date when called from inside a parsing - * callback. */ - uint64_t BytesParsed() { return upb_pbdecoder_bytesparsed(ptr()); } - - /* Gets/sets the parsing nexting limit. If the total number of nested - * submessages and repeated fields hits this limit, parsing will fail. This - * is a resource limit that controls the amount of memory used by the parsing - * stack. - * - * Setting the limit will fail if the parser is currently suspended at a depth - * greater than this, or if memory allocation of the stack fails. */ - size_t max_nesting() { return upb_pbdecoder_maxnesting(ptr()); } - bool set_max_nesting(size_t max) { - return upb_pbdecoder_setmaxnesting(ptr(), max); - } - - void Reset() { upb_pbdecoder_reset(ptr()); } - - static const size_t kSize = UPB_PB_DECODER_SIZE; - - private: - upb_pbdecoder *ptr_; -}; - -#endif /* __cplusplus */ - -/* upb_pbcodecache ************************************************************/ - -/* Lazily builds and caches decoder methods that will push data to the given - * handlers. The destination handlercache must outlive this object. */ - -struct upb_pbcodecache; -typedef struct upb_pbcodecache upb_pbcodecache; - -#ifdef __cplusplus -extern "C" { -#endif - -upb_pbcodecache *upb_pbcodecache_new(upb_handlercache *dest); -void upb_pbcodecache_free(upb_pbcodecache *c); -bool upb_pbcodecache_allowjit(const upb_pbcodecache *c); -void upb_pbcodecache_setallowjit(upb_pbcodecache *c, bool allow); -void upb_pbcodecache_setlazy(upb_pbcodecache *c, bool lazy); -const upb_pbdecodermethod *upb_pbcodecache_get(upb_pbcodecache *c, - const upb_msgdef *md); - -#ifdef __cplusplus -} /* extern "C" */ - -/* A class for caching protobuf processing code, whether bytecode for the - * interpreted decoder or machine code for the JIT. - * - * This class is not thread-safe. */ -class upb::pb::CodeCache { - public: - CodeCache(upb::HandlerCache *dest) - : ptr_(upb_pbcodecache_new(dest->ptr()), upb_pbcodecache_free) {} - CodeCache(CodeCache&&) = default; - CodeCache& operator=(CodeCache&&) = default; - - upb_pbcodecache* ptr() { return ptr_.get(); } - const upb_pbcodecache* ptr() const { return ptr_.get(); } - - /* Whether the cache is allowed to generate machine code. Defaults to true. - * There is no real reason to turn it off except for testing or if you are - * having a specific problem with the JIT. - * - * Note that allow_jit = true does not *guarantee* that the code will be JIT - * compiled. If this platform is not supported or the JIT was not compiled - * in, the code may still be interpreted. */ - bool allow_jit() const { return upb_pbcodecache_allowjit(ptr()); } - - /* This may only be called when the object is first constructed, and prior to - * any code generation. */ - void set_allow_jit(bool allow) { upb_pbcodecache_setallowjit(ptr(), allow); } - - /* Should the decoder push submessages to lazy handlers for fields that have - * them? The caller should set this iff the lazy handlers expect data that is - * in protobuf binary format and the caller wishes to lazy parse it. */ - void set_lazy(bool lazy) { upb_pbcodecache_setlazy(ptr(), lazy); } - - /* Returns a DecoderMethod that can push data to the given handlers. - * If a suitable method already exists, it will be returned from the cache. */ - const DecoderMethodPtr Get(MessageDefPtr md) { - return DecoderMethodPtr(upb_pbcodecache_get(ptr(), md.ptr())); - } - - private: - std::unique_ptr ptr_; -}; - -#endif /* __cplusplus */ - -#endif /* UPB_DECODER_H_ */ diff --git a/third_party/upb/upb/pb/decoder.int.h b/third_party/upb/upb/pb/decoder.int.h deleted file mode 100644 index 9d5f5839bc8..00000000000 --- a/third_party/upb/upb/pb/decoder.int.h +++ /dev/null @@ -1,288 +0,0 @@ -/* -** Internal-only definitions for the decoder. -*/ - -#ifndef UPB_DECODER_INT_H_ -#define UPB_DECODER_INT_H_ - -#include "upb/def.h" -#include "upb/handlers.h" -#include "upb/pb/decoder.h" -#include "upb/sink.h" -#include "upb/table.int.h" - -#include "upb/port_def.inc" - -/* Opcode definitions. The canonical meaning of each opcode is its - * implementation in the interpreter (the JIT is written to match this). - * - * All instructions have the opcode in the low byte. - * Instruction format for most instructions is: - * - * +-------------------+--------+ - * | arg (24) | op (8) | - * +-------------------+--------+ - * - * Exceptions are indicated below. A few opcodes are multi-word. */ -typedef enum { - /* Opcodes 1-8, 13, 15-18 parse their respective descriptor types. - * Arg for all of these is the upb selector for this field. */ -#define T(type) OP_PARSE_ ## type = UPB_DESCRIPTOR_TYPE_ ## type - T(DOUBLE), T(FLOAT), T(INT64), T(UINT64), T(INT32), T(FIXED64), T(FIXED32), - T(BOOL), T(UINT32), T(SFIXED32), T(SFIXED64), T(SINT32), T(SINT64), -#undef T - OP_STARTMSG = 9, /* No arg. */ - OP_ENDMSG = 10, /* No arg. */ - OP_STARTSEQ = 11, - OP_ENDSEQ = 12, - OP_STARTSUBMSG = 14, - OP_ENDSUBMSG = 19, - OP_STARTSTR = 20, - OP_STRING = 21, - OP_ENDSTR = 22, - - OP_PUSHTAGDELIM = 23, /* No arg. */ - OP_PUSHLENDELIM = 24, /* No arg. */ - OP_POP = 25, /* No arg. */ - OP_SETDELIM = 26, /* No arg. */ - OP_SETBIGGROUPNUM = 27, /* two words: - * | unused (24) | opc (8) | - * | groupnum (32) | */ - OP_CHECKDELIM = 28, - OP_CALL = 29, - OP_RET = 30, - OP_BRANCH = 31, - - /* Different opcodes depending on how many bytes expected. */ - OP_TAG1 = 32, /* | match tag (16) | jump target (8) | opc (8) | */ - OP_TAG2 = 33, /* | match tag (16) | jump target (8) | opc (8) | */ - OP_TAGN = 34, /* three words: */ - /* | unused (16) | jump target(8) | opc (8) | */ - /* | match tag 1 (32) | */ - /* | match tag 2 (32) | */ - - OP_SETDISPATCH = 35, /* N words: */ - /* | unused (24) | opc | */ - /* | upb_inttable* (32 or 64) | */ - - OP_DISPATCH = 36, /* No arg. */ - - OP_HALT = 37 /* No arg. */ -} opcode; - -#define OP_MAX OP_HALT - -UPB_INLINE opcode getop(uint32_t instr) { return (opcode)(instr & 0xff); } - -struct upb_pbcodecache { - upb_arena *arena; - upb_handlercache *dest; - bool allow_jit; - bool lazy; - - /* Map of upb_msgdef -> mgroup. */ - upb_inttable groups; -}; - -/* Method group; represents a set of decoder methods that had their code - * emitted together. Immutable once created. */ -typedef struct { - /* Maps upb_msgdef/upb_handlers -> upb_pbdecodermethod. Owned by us. - * - * Ideally this would be on pbcodecache (if we were actually caching code). - * Right now we don't actually cache anything, which is wasteful. */ - upb_inttable methods; - - /* The bytecode for our methods, if any exists. Owned by us. */ - uint32_t *bytecode; - uint32_t *bytecode_end; -} mgroup; - -/* The maximum that any submessages can be nested. Matches proto2's limit. - * This specifies the size of the decoder's statically-sized array and therefore - * setting it high will cause the upb::pb::Decoder object to be larger. - * - * If necessary we can add a runtime-settable property to Decoder that allow - * this to be larger than the compile-time setting, but this would add - * complexity, particularly since we would have to decide how/if to give users - * the ability to set a custom memory allocation function. */ -#define UPB_DECODER_MAX_NESTING 64 - -/* Internal-only struct used by the decoder. */ -typedef struct { - /* Space optimization note: we store two pointers here that the JIT - * doesn't need at all; the upb_handlers* inside the sink and - * the dispatch table pointer. We can optimze so that the JIT uses - * smaller stack frames than the interpreter. The only thing we need - * to guarantee is that the fallback routines can find end_ofs. */ - upb_sink sink; - - /* The absolute stream offset of the end-of-frame delimiter. - * Non-delimited frames (groups and non-packed repeated fields) reuse the - * delimiter of their parent, even though the frame may not end there. - * - * NOTE: the JIT stores a slightly different value here for non-top frames. - * It stores the value relative to the end of the enclosed message. But the - * top frame is still stored the same way, which is important for ensuring - * that calls from the JIT into C work correctly. */ - uint64_t end_ofs; - const uint32_t *base; - - /* 0 indicates a length-delimited field. - * A positive number indicates a known group. - * A negative number indicates an unknown group. */ - int32_t groupnum; - upb_inttable *dispatch; /* Not used by the JIT. */ -} upb_pbdecoder_frame; - -struct upb_pbdecodermethod { - /* While compiling, the base is relative in "ofs", after compiling it is - * absolute in "ptr". */ - union { - uint32_t ofs; /* PC offset of method. */ - void *ptr; /* Pointer to bytecode or machine code for this method. */ - } code_base; - - /* The decoder method group to which this method belongs. */ - const mgroup *group; - - /* Whether this method is native code or bytecode. */ - bool is_native_; - - /* The handler one calls to invoke this method. */ - upb_byteshandler input_handler_; - - /* The destination handlers this method is bound to. We own a ref. */ - const upb_handlers *dest_handlers_; - - /* Dispatch table -- used by both bytecode decoder and JIT when encountering a - * field number that wasn't the one we were expecting to see. See - * decoder.int.h for the layout of this table. */ - upb_inttable dispatch; -}; - -struct upb_pbdecoder { - upb_arena *arena; - - /* Our input sink. */ - upb_bytessink input_; - - /* The decoder method we are parsing with (owned). */ - const upb_pbdecodermethod *method_; - - size_t call_len; - const uint32_t *pc, *last; - - /* Current input buffer and its stream offset. */ - const char *buf, *ptr, *end, *checkpoint; - - /* End of the delimited region, relative to ptr, NULL if not in this buf. */ - const char *delim_end; - - /* End of the delimited region, relative to ptr, end if not in this buf. */ - const char *data_end; - - /* Overall stream offset of "buf." */ - uint64_t bufstart_ofs; - - /* Buffer for residual bytes not parsed from the previous buffer. */ - char residual[UPB_DECODER_MAX_RESIDUAL_BYTES]; - char *residual_end; - - /* Bytes of data that should be discarded from the input beore we start - * parsing again. We set this when we internally determine that we can - * safely skip the next N bytes, but this region extends past the current - * user buffer. */ - size_t skip; - - /* Stores the user buffer passed to our decode function. */ - const char *buf_param; - size_t size_param; - const upb_bufhandle *handle; - - /* Our internal stack. */ - upb_pbdecoder_frame *stack, *top, *limit; - const uint32_t **callstack; - size_t stack_size; - - upb_status *status; -}; - -/* Decoder entry points; used as handlers. */ -void *upb_pbdecoder_startbc(void *closure, const void *pc, size_t size_hint); -size_t upb_pbdecoder_decode(void *closure, const void *hd, const char *buf, - size_t size, const upb_bufhandle *handle); -bool upb_pbdecoder_end(void *closure, const void *handler_data); - -/* Decoder-internal functions that the JIT calls to handle fallback paths. */ -int32_t upb_pbdecoder_resume(upb_pbdecoder *d, void *p, const char *buf, - size_t size, const upb_bufhandle *handle); -size_t upb_pbdecoder_suspend(upb_pbdecoder *d); -int32_t upb_pbdecoder_skipunknown(upb_pbdecoder *d, int32_t fieldnum, - uint8_t wire_type); -int32_t upb_pbdecoder_checktag_slow(upb_pbdecoder *d, uint64_t expected); -int32_t upb_pbdecoder_decode_varint_slow(upb_pbdecoder *d, uint64_t *u64); -int32_t upb_pbdecoder_decode_f32(upb_pbdecoder *d, uint32_t *u32); -int32_t upb_pbdecoder_decode_f64(upb_pbdecoder *d, uint64_t *u64); -void upb_pbdecoder_seterr(upb_pbdecoder *d, const char *msg); - -/* Error messages that are shared between the bytecode and JIT decoders. */ -extern const char *kPbDecoderStackOverflow; -extern const char *kPbDecoderSubmessageTooLong; - -/* Access to decoderplan members needed by the decoder. */ -const char *upb_pbdecoder_getopname(unsigned int op); - -/* A special label that means "do field dispatch for this message and branch to - * wherever that takes you." */ -#define LABEL_DISPATCH 0 - -/* A special slot in the dispatch table that stores the epilogue (ENDMSG and/or - * RET) for branching to when we find an appropriate ENDGROUP tag. */ -#define DISPATCH_ENDMSG 0 - -/* It's important to use this invalid wire type instead of 0 (which is a valid - * wire type). */ -#define NO_WIRE_TYPE 0xff - -/* The dispatch table layout is: - * [field number] -> [ 48-bit offset ][ 8-bit wt2 ][ 8-bit wt1 ] - * - * If wt1 matches, jump to the 48-bit offset. If wt2 matches, lookup - * (UPB_MAX_FIELDNUMBER + fieldnum) and jump there. - * - * We need two wire types because of packed/non-packed compatibility. A - * primitive repeated field can use either wire type and be valid. While we - * could key the table on fieldnum+wiretype, the table would be 8x sparser. - * - * Storing two wire types in the primary value allows us to quickly rule out - * the second wire type without needing to do a separate lookup (this case is - * less common than an unknown field). */ -UPB_INLINE uint64_t upb_pbdecoder_packdispatch(uint64_t ofs, uint8_t wt1, - uint8_t wt2) { - return (ofs << 16) | (wt2 << 8) | wt1; -} - -UPB_INLINE void upb_pbdecoder_unpackdispatch(uint64_t dispatch, uint64_t *ofs, - uint8_t *wt1, uint8_t *wt2) { - *wt1 = (uint8_t)dispatch; - *wt2 = (uint8_t)(dispatch >> 8); - *ofs = dispatch >> 16; -} - -/* All of the functions in decoder.c that return int32_t return values according - * to the following scheme: - * 1. negative values indicate a return code from the following list. - * 2. positive values indicate that error or end of buffer was hit, and - * that the decode function should immediately return the given value - * (the decoder state has already been suspended and is ready to be - * resumed). */ -#define DECODE_OK -1 -#define DECODE_MISMATCH -2 /* Used only from checktag_slow(). */ -#define DECODE_ENDGROUP -3 /* Used only from checkunknown(). */ - -#define CHECK_RETURN(x) { int32_t ret = x; if (ret >= 0) return ret; } - -#include "upb/port_undef.inc" - -#endif /* UPB_DECODER_INT_H_ */ diff --git a/third_party/upb/upb/pb/encoder.c b/third_party/upb/upb/pb/encoder.c deleted file mode 100644 index 0c47b0dea67..00000000000 --- a/third_party/upb/upb/pb/encoder.c +++ /dev/null @@ -1,563 +0,0 @@ -/* -** upb::Encoder -** -** Since we are implementing pure handlers (ie. without any out-of-band access -** to pre-computed lengths), we have to buffer all submessages before we can -** emit even their first byte. -** -** Not knowing the size of submessages also means we can't write a perfect -** zero-copy implementation, even with buffering. Lengths are stored as -** varints, which means that we don't know how many bytes to reserve for the -** length until we know what the length is. -** -** This leaves us with three main choices: -** -** 1. buffer all submessage data in a temporary buffer, then copy it exactly -** once into the output buffer. -** -** 2. attempt to buffer data directly into the output buffer, estimating how -** many bytes each length will take. When our guesses are wrong, use -** memmove() to grow or shrink the allotted space. -** -** 3. buffer directly into the output buffer, allocating a max length -** ahead-of-time for each submessage length. If we overallocated, we waste -** space, but no memcpy() or memmove() is required. This approach requires -** defining a maximum size for submessages and rejecting submessages that -** exceed that size. -** -** (2) and (3) have the potential to have better performance, but they are more -** complicated and subtle to implement: -** -** (3) requires making an arbitrary choice of the maximum message size; it -** wastes space when submessages are shorter than this and fails -** completely when they are longer. This makes it more finicky and -** requires configuration based on the input. It also makes it impossible -** to perfectly match the output of reference encoders that always use the -** optimal amount of space for each length. -** -** (2) requires guessing the the size upfront, and if multiple lengths are -** guessed wrong the minimum required number of memmove() operations may -** be complicated to compute correctly. Implemented properly, it may have -** a useful amortized or average cost, but more investigation is required -** to determine this and what the optimal algorithm is to achieve it. -** -** (1) makes you always pay for exactly one copy, but its implementation is -** the simplest and its performance is predictable. -** -** So for now, we implement (1) only. If we wish to optimize later, we should -** be able to do it without affecting users. -** -** The strategy is to buffer the segments of data that do *not* depend on -** unknown lengths in one buffer, and keep a separate buffer of segment pointers -** and lengths. When the top-level submessage ends, we can go beginning to end, -** alternating the writing of lengths with memcpy() of the rest of the data. -** At the top level though, no buffering is required. -*/ - -#include "upb/pb/encoder.h" -#include "upb/pb/varint.int.h" - -#include "upb/port_def.inc" - -/* The output buffer is divided into segments; a segment is a string of data - * that is "ready to go" -- it does not need any varint lengths inserted into - * the middle. The seams between segments are where varints will be inserted - * once they are known. - * - * We also use the concept of a "run", which is a range of encoded bytes that - * occur at a single submessage level. Every segment contains one or more runs. - * - * A segment can span messages. Consider: - * - * .--Submessage lengths---------. - * | | | - * | V V - * V | |--------------- | |----------------- - * Submessages: | |----------------------------------------------- - * Top-level msg: ------------------------------------------------------------ - * - * Segments: ----- ------------------- ----------------- - * Runs: *---- *--------------*--- *---------------- - * (* marks the start) - * - * Note that the top-level menssage is not in any segment because it does not - * have any length preceding it. - * - * A segment is only interrupted when another length needs to be inserted. So - * observe how the second segment spans both the inner submessage and part of - * the next enclosing message. */ -typedef struct { - uint32_t msglen; /* The length to varint-encode before this segment. */ - uint32_t seglen; /* Length of the segment. */ -} upb_pb_encoder_segment; - -struct upb_pb_encoder { - upb_arena *arena; - - /* Our input and output. */ - upb_sink input_; - upb_bytessink output_; - - /* The "subclosure" -- used as the inner closure as part of the bytessink - * protocol. */ - void *subc; - - /* The output buffer and limit, and our current write position. "buf" - * initially points to "initbuf", but is dynamically allocated if we need to - * grow beyond the initial size. */ - char *buf, *ptr, *limit; - - /* The beginning of the current run, or undefined if we are at the top - * level. */ - char *runbegin; - - /* The list of segments we are accumulating. */ - upb_pb_encoder_segment *segbuf, *segptr, *seglimit; - - /* The stack of enclosing submessages. Each entry in the stack points to the - * segment where this submessage's length is being accumulated. */ - int *stack, *top, *stacklimit; - - /* Depth of startmsg/endmsg calls. */ - int depth; -}; - -/* low-level buffering ********************************************************/ - -/* Low-level functions for interacting with the output buffer. */ - -/* TODO(haberman): handle pushback */ -static void putbuf(upb_pb_encoder *e, const char *buf, size_t len) { - size_t n = upb_bytessink_putbuf(e->output_, e->subc, buf, len, NULL); - UPB_ASSERT(n == len); -} - -static upb_pb_encoder_segment *top(upb_pb_encoder *e) { - return &e->segbuf[*e->top]; -} - -/* Call to ensure that at least "bytes" bytes are available for writing at - * e->ptr. Returns false if the bytes could not be allocated. */ -static bool reserve(upb_pb_encoder *e, size_t bytes) { - if ((size_t)(e->limit - e->ptr) < bytes) { - /* Grow buffer. */ - char *new_buf; - size_t needed = bytes + (e->ptr - e->buf); - size_t old_size = e->limit - e->buf; - - size_t new_size = old_size; - - while (new_size < needed) { - new_size *= 2; - } - - new_buf = upb_arena_realloc(e->arena, e->buf, old_size, new_size); - - if (new_buf == NULL) { - return false; - } - - e->ptr = new_buf + (e->ptr - e->buf); - e->runbegin = new_buf + (e->runbegin - e->buf); - e->limit = new_buf + new_size; - e->buf = new_buf; - } - - return true; -} - -/* Call when "bytes" bytes have been writte at e->ptr. The caller *must* have - * previously called reserve() with at least this many bytes. */ -static void encoder_advance(upb_pb_encoder *e, size_t bytes) { - UPB_ASSERT((size_t)(e->limit - e->ptr) >= bytes); - e->ptr += bytes; -} - -/* Call when all of the bytes for a handler have been written. Flushes the - * bytes if possible and necessary, returning false if this failed. */ -static bool commit(upb_pb_encoder *e) { - if (!e->top) { - /* We aren't inside a delimited region. Flush our accumulated bytes to - * the output. - * - * TODO(haberman): in the future we may want to delay flushing for - * efficiency reasons. */ - putbuf(e, e->buf, e->ptr - e->buf); - e->ptr = e->buf; - } - - return true; -} - -/* Writes the given bytes to the buffer, handling reserve/advance. */ -static bool encode_bytesval(upb_pb_encoder *e, const void *data, size_t len) { - if (!reserve(e, len)) { - return false; - } - - memcpy(e->ptr, data, len); - encoder_advance(e, len); - return true; -} - -/* Finish the current run by adding the run totals to the segment and message - * length. */ -static void accumulate(upb_pb_encoder *e) { - size_t run_len; - UPB_ASSERT(e->ptr >= e->runbegin); - run_len = e->ptr - e->runbegin; - e->segptr->seglen += run_len; - top(e)->msglen += run_len; - e->runbegin = e->ptr; -} - -/* Call to indicate the start of delimited region for which the full length is - * not yet known. All data will be buffered until the length is known. - * Delimited regions may be nested; their lengths will all be tracked properly. */ -static bool start_delim(upb_pb_encoder *e) { - if (e->top) { - /* We are already buffering, advance to the next segment and push it on the - * stack. */ - accumulate(e); - - if (++e->top == e->stacklimit) { - /* TODO(haberman): grow stack? */ - return false; - } - - if (++e->segptr == e->seglimit) { - /* Grow segment buffer. */ - size_t old_size = - (e->seglimit - e->segbuf) * sizeof(upb_pb_encoder_segment); - size_t new_size = old_size * 2; - upb_pb_encoder_segment *new_buf = - upb_arena_realloc(e->arena, e->segbuf, old_size, new_size); - - if (new_buf == NULL) { - return false; - } - - e->segptr = new_buf + (e->segptr - e->segbuf); - e->seglimit = new_buf + (new_size / sizeof(upb_pb_encoder_segment)); - e->segbuf = new_buf; - } - } else { - /* We were previously at the top level, start buffering. */ - e->segptr = e->segbuf; - e->top = e->stack; - e->runbegin = e->ptr; - } - - *e->top = (int)(e->segptr - e->segbuf); - e->segptr->seglen = 0; - e->segptr->msglen = 0; - - return true; -} - -/* Call to indicate the end of a delimited region. We now know the length of - * the delimited region. If we are not nested inside any other delimited - * regions, we can now emit all of the buffered data we accumulated. */ -static bool end_delim(upb_pb_encoder *e) { - size_t msglen; - accumulate(e); - msglen = top(e)->msglen; - - if (e->top == e->stack) { - /* All lengths are now available, emit all buffered data. */ - char buf[UPB_PB_VARINT_MAX_LEN]; - upb_pb_encoder_segment *s; - const char *ptr = e->buf; - for (s = e->segbuf; s <= e->segptr; s++) { - size_t lenbytes = upb_vencode64(s->msglen, buf); - putbuf(e, buf, lenbytes); - putbuf(e, ptr, s->seglen); - ptr += s->seglen; - } - - e->ptr = e->buf; - e->top = NULL; - } else { - /* Need to keep buffering; propagate length info into enclosing - * submessages. */ - --e->top; - top(e)->msglen += msglen + upb_varint_size(msglen); - } - - return true; -} - - -/* tag_t **********************************************************************/ - -/* A precomputed (pre-encoded) tag and length. */ - -typedef struct { - uint8_t bytes; - char tag[7]; -} tag_t; - -/* Allocates a new tag for this field, and sets it in these handlerattr. */ -static void new_tag(upb_handlers *h, const upb_fielddef *f, upb_wiretype_t wt, - upb_handlerattr *attr) { - uint32_t n = upb_fielddef_number(f); - - tag_t *tag = upb_gmalloc(sizeof(tag_t)); - tag->bytes = upb_vencode64((n << 3) | wt, tag->tag); - - attr->handler_data = tag; - upb_handlers_addcleanup(h, tag, upb_gfree); -} - -static bool encode_tagval(upb_pb_encoder *e, const tag_t *tag) { - return encode_bytesval(e, tag->tag, tag->bytes); -} - - -/* encoding of wire types *****************************************************/ - -static bool doencode_fixed64(upb_pb_encoder *e, uint64_t val) { - /* TODO(haberman): byte-swap for big endian. */ - return encode_bytesval(e, &val, sizeof(uint64_t)); -} - -static bool doencode_fixed32(upb_pb_encoder *e, uint32_t val) { - /* TODO(haberman): byte-swap for big endian. */ - return encode_bytesval(e, &val, sizeof(uint32_t)); -} - -static bool doencode_varint(upb_pb_encoder *e, uint64_t val) { - if (!reserve(e, UPB_PB_VARINT_MAX_LEN)) { - return false; - } - - encoder_advance(e, upb_vencode64(val, e->ptr)); - return true; -} - -static uint64_t dbl2uint64(double d) { - uint64_t ret; - memcpy(&ret, &d, sizeof(uint64_t)); - return ret; -} - -static uint32_t flt2uint32(float d) { - uint32_t ret; - memcpy(&ret, &d, sizeof(uint32_t)); - return ret; -} - - -/* encoding of proto types ****************************************************/ - -static bool startmsg(void *c, const void *hd) { - upb_pb_encoder *e = c; - UPB_UNUSED(hd); - if (e->depth++ == 0) { - upb_bytessink_start(e->output_, 0, &e->subc); - } - return true; -} - -static bool endmsg(void *c, const void *hd, upb_status *status) { - upb_pb_encoder *e = c; - UPB_UNUSED(hd); - UPB_UNUSED(status); - if (--e->depth == 0) { - upb_bytessink_end(e->output_); - } - return true; -} - -static void *encode_startdelimfield(void *c, const void *hd) { - bool ok = encode_tagval(c, hd) && commit(c) && start_delim(c); - return ok ? c : UPB_BREAK; -} - -static bool encode_unknown(void *c, const void *hd, const char *buf, - size_t len) { - UPB_UNUSED(hd); - return encode_bytesval(c, buf, len) && commit(c); -} - -static bool encode_enddelimfield(void *c, const void *hd) { - UPB_UNUSED(hd); - return end_delim(c); -} - -static void *encode_startgroup(void *c, const void *hd) { - return (encode_tagval(c, hd) && commit(c)) ? c : UPB_BREAK; -} - -static bool encode_endgroup(void *c, const void *hd) { - return encode_tagval(c, hd) && commit(c); -} - -static void *encode_startstr(void *c, const void *hd, size_t size_hint) { - UPB_UNUSED(size_hint); - return encode_startdelimfield(c, hd); -} - -static size_t encode_strbuf(void *c, const void *hd, const char *buf, - size_t len, const upb_bufhandle *h) { - UPB_UNUSED(hd); - UPB_UNUSED(h); - return encode_bytesval(c, buf, len) ? len : 0; -} - -#define T(type, ctype, convert, encode) \ - static bool encode_scalar_##type(void *e, const void *hd, ctype val) { \ - return encode_tagval(e, hd) && encode(e, (convert)(val)) && commit(e); \ - } \ - static bool encode_packed_##type(void *e, const void *hd, ctype val) { \ - UPB_UNUSED(hd); \ - return encode(e, (convert)(val)); \ - } - -T(double, double, dbl2uint64, doencode_fixed64) -T(float, float, flt2uint32, doencode_fixed32) -T(int64, int64_t, uint64_t, doencode_varint) -T(int32, int32_t, int64_t, doencode_varint) -T(fixed64, uint64_t, uint64_t, doencode_fixed64) -T(fixed32, uint32_t, uint32_t, doencode_fixed32) -T(bool, bool, bool, doencode_varint) -T(uint32, uint32_t, uint32_t, doencode_varint) -T(uint64, uint64_t, uint64_t, doencode_varint) -T(enum, int32_t, uint32_t, doencode_varint) -T(sfixed32, int32_t, uint32_t, doencode_fixed32) -T(sfixed64, int64_t, uint64_t, doencode_fixed64) -T(sint32, int32_t, upb_zzenc_32, doencode_varint) -T(sint64, int64_t, upb_zzenc_64, doencode_varint) - -#undef T - - -/* code to build the handlers *************************************************/ - -#include -static void newhandlers_callback(const void *closure, upb_handlers *h) { - const upb_msgdef *m; - int i, n; - - UPB_UNUSED(closure); - - upb_handlers_setstartmsg(h, startmsg, NULL); - upb_handlers_setendmsg(h, endmsg, NULL); - upb_handlers_setunknown(h, encode_unknown, NULL); - - m = upb_handlers_msgdef(h); - n = upb_msgdef_fieldcount(m); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(m, i); - bool packed = upb_fielddef_isseq(f) && upb_fielddef_isprimitive(f) && - upb_fielddef_packed(f); - upb_handlerattr attr = UPB_HANDLERATTR_INIT; - upb_wiretype_t wt = - packed ? UPB_WIRE_TYPE_DELIMITED - : upb_pb_native_wire_types[upb_fielddef_descriptortype(f)]; - - /* Pre-encode the tag for this field. */ - new_tag(h, f, wt, &attr); - - if (packed) { - upb_handlers_setstartseq(h, f, encode_startdelimfield, &attr); - upb_handlers_setendseq(h, f, encode_enddelimfield, &attr); - } - -#define T(upper, lower, upbtype) \ - case UPB_DESCRIPTOR_TYPE_##upper: \ - if (packed) { \ - upb_handlers_set##upbtype(h, f, encode_packed_##lower, &attr); \ - } else { \ - upb_handlers_set##upbtype(h, f, encode_scalar_##lower, &attr); \ - } \ - break; - - switch (upb_fielddef_descriptortype(f)) { - T(DOUBLE, double, double); - T(FLOAT, float, float); - T(INT64, int64, int64); - T(INT32, int32, int32); - T(FIXED64, fixed64, uint64); - T(FIXED32, fixed32, uint32); - T(BOOL, bool, bool); - T(UINT32, uint32, uint32); - T(UINT64, uint64, uint64); - T(ENUM, enum, int32); - T(SFIXED32, sfixed32, int32); - T(SFIXED64, sfixed64, int64); - T(SINT32, sint32, int32); - T(SINT64, sint64, int64); - case UPB_DESCRIPTOR_TYPE_STRING: - case UPB_DESCRIPTOR_TYPE_BYTES: - upb_handlers_setstartstr(h, f, encode_startstr, &attr); - upb_handlers_setendstr(h, f, encode_enddelimfield, &attr); - upb_handlers_setstring(h, f, encode_strbuf, &attr); - break; - case UPB_DESCRIPTOR_TYPE_MESSAGE: - upb_handlers_setstartsubmsg(h, f, encode_startdelimfield, &attr); - upb_handlers_setendsubmsg(h, f, encode_enddelimfield, &attr); - break; - case UPB_DESCRIPTOR_TYPE_GROUP: { - /* Endgroup takes a different tag (wire_type = END_GROUP). */ - upb_handlerattr attr2 = UPB_HANDLERATTR_INIT; - new_tag(h, f, UPB_WIRE_TYPE_END_GROUP, &attr2); - - upb_handlers_setstartsubmsg(h, f, encode_startgroup, &attr); - upb_handlers_setendsubmsg(h, f, encode_endgroup, &attr2); - - break; - } - } - -#undef T - } -} - -void upb_pb_encoder_reset(upb_pb_encoder *e) { - e->segptr = NULL; - e->top = NULL; - e->depth = 0; -} - - -/* public API *****************************************************************/ - -upb_handlercache *upb_pb_encoder_newcache(void) { - return upb_handlercache_new(newhandlers_callback, NULL); -} - -upb_pb_encoder *upb_pb_encoder_create(upb_arena *arena, const upb_handlers *h, - upb_bytessink output) { - const size_t initial_bufsize = 256; - const size_t initial_segbufsize = 16; - /* TODO(haberman): make this configurable. */ - const size_t stack_size = 64; - - upb_pb_encoder *e = upb_arena_malloc(arena, sizeof(upb_pb_encoder)); - if (!e) return NULL; - - e->buf = upb_arena_malloc(arena, initial_bufsize); - e->segbuf = upb_arena_malloc(arena, initial_segbufsize * sizeof(*e->segbuf)); - e->stack = upb_arena_malloc(arena, stack_size * sizeof(*e->stack)); - - if (!e->buf || !e->segbuf || !e->stack) { - return NULL; - } - - e->limit = e->buf + initial_bufsize; - e->seglimit = e->segbuf + initial_segbufsize; - e->stacklimit = e->stack + stack_size; - - upb_pb_encoder_reset(e); - upb_sink_reset(&e->input_, h, e); - - e->arena = arena; - e->output_ = output; - e->subc = output.closure; - e->ptr = e->buf; - - return e; -} - -upb_sink upb_pb_encoder_input(upb_pb_encoder *e) { return e->input_; } diff --git a/third_party/upb/upb/pb/encoder.h b/third_party/upb/upb/pb/encoder.h deleted file mode 100644 index f125b372188..00000000000 --- a/third_party/upb/upb/pb/encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -** upb::pb::Encoder (upb_pb_encoder) -** -** Implements a set of upb_handlers that write protobuf data to the binary wire -** format. -** -** This encoder implementation does not have any access to any out-of-band or -** precomputed lengths for submessages, so it must buffer submessages internally -** before it can emit the first byte. -*/ - -#ifndef UPB_ENCODER_H_ -#define UPB_ENCODER_H_ - -#include "upb/sink.h" - -#ifdef __cplusplus -namespace upb { -namespace pb { -class EncoderPtr; -} /* namespace pb */ -} /* namespace upb */ -#endif - -#define UPB_PBENCODER_MAX_NESTING 100 - -/* upb_pb_encoder *************************************************************/ - -/* Preallocation hint: decoder won't allocate more bytes than this when first - * constructed. This hint may be an overestimate for some build configurations. - * But if the decoder library is upgraded without recompiling the application, - * it may be an underestimate. */ -#define UPB_PB_ENCODER_SIZE 784 - -struct upb_pb_encoder; -typedef struct upb_pb_encoder upb_pb_encoder; - -#ifdef __cplusplus -extern "C" { -#endif - -upb_sink upb_pb_encoder_input(upb_pb_encoder *p); -upb_pb_encoder* upb_pb_encoder_create(upb_arena* a, const upb_handlers* h, - upb_bytessink output); - -/* Lazily builds and caches handlers that will push encoded data to a bytessink. - * Any msgdef objects used with this object must outlive it. */ -upb_handlercache *upb_pb_encoder_newcache(void); - -#ifdef __cplusplus -} /* extern "C" { */ - -class upb::pb::EncoderPtr { - public: - EncoderPtr(upb_pb_encoder* ptr) : ptr_(ptr) {} - - upb_pb_encoder* ptr() { return ptr_; } - - /* Creates a new encoder in the given environment. The Handlers must have - * come from NewHandlers() below. */ - static EncoderPtr Create(Arena* arena, const Handlers* handlers, - BytesSink output) { - return EncoderPtr( - upb_pb_encoder_create(arena->ptr(), handlers, output.sink())); - } - - /* The input to the encoder. */ - upb::Sink input() { return upb_pb_encoder_input(ptr()); } - - /* Creates a new set of handlers for this MessageDef. */ - static HandlerCache NewCache() { - return HandlerCache(upb_pb_encoder_newcache()); - } - - static const size_t kSize = UPB_PB_ENCODER_SIZE; - - private: - upb_pb_encoder* ptr_; -}; - -#endif /* __cplusplus */ - -#endif /* UPB_ENCODER_H_ */ diff --git a/third_party/upb/upb/pb/make-gdb-script.rb b/third_party/upb/upb/pb/make-gdb-script.rb deleted file mode 100755 index 3895597887d..00000000000 --- a/third_party/upb/upb/pb/make-gdb-script.rb +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/ruby - -puts "set width 0 -set height 0 -set verbose off\n\n" - -IO.popen("nm -S /tmp/upb-jit-code.so").each_line { |line| - # Input lines look like this: - # 000000000000575a T X.0x10.OP_CHECKDELIM - # - # For each one we want to emit a command that looks like: - # b X.0x10.OP_CHECKDELIM - # commands - # silent - # printf "buf_ofs=%d data_rem=%d delim_rem=%d X.0x10.OP_CHECKDELIM\n", $rbx - (long)((upb_pbdecoder*)($r15))->buf, $r12 - $rbx, $rbp - $rbx - # continue - # end - - parts = line.split - next if parts[1] != "T" - sym = parts[2] - next if sym !~ /X\./; - if sym =~ /OP_/ then - printcmd = "printf \"buf_ofs=%d data_rem=%d delim_rem=%d #{sym}\\n\", $rbx - (long)((upb_pbdecoder*)($r15))->buf, $r12 - $rbx, $rbp - $rbx" - elsif sym =~ /enterjit/ then - printcmd = "printf \"#{sym} bytes=%d\\n\", $rcx" - else - printcmd = "printf \"#{sym}\\n\"" - end - puts "b #{sym} -commands - silent - #{printcmd} - continue -end\n\n" -} diff --git a/third_party/upb/upb/pb/textprinter.c b/third_party/upb/upb/pb/textprinter.c deleted file mode 100644 index 1331268a06f..00000000000 --- a/third_party/upb/upb/pb/textprinter.c +++ /dev/null @@ -1,339 +0,0 @@ -/* - * upb::pb::TextPrinter - * - * OPT: This is not optimized at all. It uses printf() which parses the format - * string every time, and it allocates memory for every put. - */ - -#include "upb/pb/textprinter.h" - -#include -#include -#include -#include -#include -#include - -#include "upb/sink.h" - -#include "upb/port_def.inc" - -struct upb_textprinter { - upb_sink input_; - upb_bytessink output_; - int indent_depth_; - bool single_line_; - void *subc; -}; - -#define CHECK(x) if ((x) < 0) goto err; - -static const char *shortname(const char *longname) { - const char *last = strrchr(longname, '.'); - return last ? last + 1 : longname; -} - -static int indent(upb_textprinter *p) { - int i; - if (!p->single_line_) - for (i = 0; i < p->indent_depth_; i++) - upb_bytessink_putbuf(p->output_, p->subc, " ", 2, NULL); - return 0; -} - -static int endfield(upb_textprinter *p) { - const char ch = (p->single_line_ ? ' ' : '\n'); - upb_bytessink_putbuf(p->output_, p->subc, &ch, 1, NULL); - return 0; -} - -static int putescaped(upb_textprinter *p, const char *buf, size_t len, - bool preserve_utf8) { - /* Based on CEscapeInternal() from Google's protobuf release. */ - char dstbuf[4096], *dst = dstbuf, *dstend = dstbuf + sizeof(dstbuf); - const char *end = buf + len; - - /* I think hex is prettier and more useful, but proto2 uses octal; should - * investigate whether it can parse hex also. */ - const bool use_hex = false; - bool last_hex_escape = false; /* true if last output char was \xNN */ - - for (; buf < end; buf++) { - bool is_hex_escape; - - if (dstend - dst < 4) { - upb_bytessink_putbuf(p->output_, p->subc, dstbuf, dst - dstbuf, NULL); - dst = dstbuf; - } - - is_hex_escape = false; - switch (*buf) { - case '\n': *(dst++) = '\\'; *(dst++) = 'n'; break; - case '\r': *(dst++) = '\\'; *(dst++) = 'r'; break; - case '\t': *(dst++) = '\\'; *(dst++) = 't'; break; - case '\"': *(dst++) = '\\'; *(dst++) = '\"'; break; - case '\'': *(dst++) = '\\'; *(dst++) = '\''; break; - case '\\': *(dst++) = '\\'; *(dst++) = '\\'; break; - default: - /* Note that if we emit \xNN and the buf character after that is a hex - * digit then that digit must be escaped too to prevent it being - * interpreted as part of the character code by C. */ - if ((!preserve_utf8 || (uint8_t)*buf < 0x80) && - (!isprint(*buf) || (last_hex_escape && isxdigit(*buf)))) { - sprintf(dst, (use_hex ? "\\x%02x" : "\\%03o"), (uint8_t)*buf); - is_hex_escape = use_hex; - dst += 4; - } else { - *(dst++) = *buf; break; - } - } - last_hex_escape = is_hex_escape; - } - /* Flush remaining data. */ - upb_bytessink_putbuf(p->output_, p->subc, dstbuf, dst - dstbuf, NULL); - return 0; -} - -bool putf(upb_textprinter *p, const char *fmt, ...) { - va_list args; - va_list args_copy; - char *str; - int written; - int len; - bool ok; - - va_start(args, fmt); - - /* Run once to get the length of the string. */ - va_copy(args_copy, args); - len = vsnprintf(NULL, 0, fmt, args_copy); - va_end(args_copy); - - /* + 1 for NULL terminator (vsprintf() requires it even if we don't). */ - str = upb_gmalloc(len + 1); - if (!str) return false; - written = vsprintf(str, fmt, args); - va_end(args); - UPB_ASSERT(written == len); - - ok = upb_bytessink_putbuf(p->output_, p->subc, str, len, NULL); - upb_gfree(str); - return ok; -} - - -/* handlers *******************************************************************/ - -static bool textprinter_startmsg(void *c, const void *hd) { - upb_textprinter *p = c; - UPB_UNUSED(hd); - if (p->indent_depth_ == 0) { - upb_bytessink_start(p->output_, 0, &p->subc); - } - return true; -} - -static bool textprinter_endmsg(void *c, const void *hd, upb_status *s) { - upb_textprinter *p = c; - UPB_UNUSED(hd); - UPB_UNUSED(s); - if (p->indent_depth_ == 0) { - upb_bytessink_end(p->output_); - } - return true; -} - -#define TYPE(name, ctype, fmt) \ - static bool textprinter_put ## name(void *closure, const void *handler_data, \ - ctype val) { \ - upb_textprinter *p = closure; \ - const upb_fielddef *f = handler_data; \ - CHECK(indent(p)); \ - putf(p, "%s: " fmt, upb_fielddef_name(f), val); \ - CHECK(endfield(p)); \ - return true; \ - err: \ - return false; \ -} - -static bool textprinter_putbool(void *closure, const void *handler_data, - bool val) { - upb_textprinter *p = closure; - const upb_fielddef *f = handler_data; - CHECK(indent(p)); - putf(p, "%s: %s", upb_fielddef_name(f), val ? "true" : "false"); - CHECK(endfield(p)); - return true; -err: - return false; -} - -#define STRINGIFY_HELPER(x) #x -#define STRINGIFY_MACROVAL(x) STRINGIFY_HELPER(x) - -TYPE(int32, int32_t, "%" PRId32) -TYPE(int64, int64_t, "%" PRId64) -TYPE(uint32, uint32_t, "%" PRIu32) -TYPE(uint64, uint64_t, "%" PRIu64) -TYPE(float, float, "%." STRINGIFY_MACROVAL(FLT_DIG) "g") -TYPE(double, double, "%." STRINGIFY_MACROVAL(DBL_DIG) "g") - -#undef TYPE - -/* Output a symbolic value from the enum if found, else just print as int32. */ -static bool textprinter_putenum(void *closure, const void *handler_data, - int32_t val) { - upb_textprinter *p = closure; - const upb_fielddef *f = handler_data; - const upb_enumdef *enum_def = upb_fielddef_enumsubdef(f); - const char *label = upb_enumdef_iton(enum_def, val); - if (label) { - indent(p); - putf(p, "%s: %s", upb_fielddef_name(f), label); - endfield(p); - } else { - if (!textprinter_putint32(closure, handler_data, val)) - return false; - } - return true; -} - -static void *textprinter_startstr(void *closure, const void *handler_data, - size_t size_hint) { - upb_textprinter *p = closure; - const upb_fielddef *f = handler_data; - UPB_UNUSED(size_hint); - indent(p); - putf(p, "%s: \"", upb_fielddef_name(f)); - return p; -} - -static bool textprinter_endstr(void *closure, const void *handler_data) { - upb_textprinter *p = closure; - UPB_UNUSED(handler_data); - putf(p, "\""); - endfield(p); - return true; -} - -static size_t textprinter_putstr(void *closure, const void *hd, const char *buf, - size_t len, const upb_bufhandle *handle) { - upb_textprinter *p = closure; - const upb_fielddef *f = hd; - UPB_UNUSED(handle); - CHECK(putescaped(p, buf, len, upb_fielddef_type(f) == UPB_TYPE_STRING)); - return len; -err: - return 0; -} - -static void *textprinter_startsubmsg(void *closure, const void *handler_data) { - upb_textprinter *p = closure; - const char *name = handler_data; - CHECK(indent(p)); - putf(p, "%s {%c", name, p->single_line_ ? ' ' : '\n'); - p->indent_depth_++; - return p; -err: - return UPB_BREAK; -} - -static bool textprinter_endsubmsg(void *closure, const void *handler_data) { - upb_textprinter *p = closure; - UPB_UNUSED(handler_data); - p->indent_depth_--; - CHECK(indent(p)); - upb_bytessink_putbuf(p->output_, p->subc, "}", 1, NULL); - CHECK(endfield(p)); - return true; -err: - return false; -} - -static void onmreg(const void *c, upb_handlers *h) { - const upb_msgdef *m = upb_handlers_msgdef(h); - int i, n; - UPB_UNUSED(c); - - upb_handlers_setstartmsg(h, textprinter_startmsg, NULL); - upb_handlers_setendmsg(h, textprinter_endmsg, NULL); - - n = upb_msgdef_fieldcount(m); - for(i = 0; i < n; i++) { - const upb_fielddef *f = upb_msgdef_field(m, i); - upb_handlerattr attr = UPB_HANDLERATTR_INIT; - attr.handler_data = f; - switch (upb_fielddef_type(f)) { - case UPB_TYPE_INT32: - upb_handlers_setint32(h, f, textprinter_putint32, &attr); - break; - case UPB_TYPE_INT64: - upb_handlers_setint64(h, f, textprinter_putint64, &attr); - break; - case UPB_TYPE_UINT32: - upb_handlers_setuint32(h, f, textprinter_putuint32, &attr); - break; - case UPB_TYPE_UINT64: - upb_handlers_setuint64(h, f, textprinter_putuint64, &attr); - break; - case UPB_TYPE_FLOAT: - upb_handlers_setfloat(h, f, textprinter_putfloat, &attr); - break; - case UPB_TYPE_DOUBLE: - upb_handlers_setdouble(h, f, textprinter_putdouble, &attr); - break; - case UPB_TYPE_BOOL: - upb_handlers_setbool(h, f, textprinter_putbool, &attr); - break; - case UPB_TYPE_STRING: - case UPB_TYPE_BYTES: - upb_handlers_setstartstr(h, f, textprinter_startstr, &attr); - upb_handlers_setstring(h, f, textprinter_putstr, &attr); - upb_handlers_setendstr(h, f, textprinter_endstr, &attr); - break; - case UPB_TYPE_MESSAGE: { - const char *name = - upb_fielddef_descriptortype(f) == UPB_DESCRIPTOR_TYPE_GROUP - ? shortname(upb_msgdef_fullname(upb_fielddef_msgsubdef(f))) - : upb_fielddef_name(f); - attr.handler_data = name; - upb_handlers_setstartsubmsg(h, f, textprinter_startsubmsg, &attr); - upb_handlers_setendsubmsg(h, f, textprinter_endsubmsg, &attr); - break; - } - case UPB_TYPE_ENUM: - upb_handlers_setint32(h, f, textprinter_putenum, &attr); - break; - } - } -} - -static void textprinter_reset(upb_textprinter *p, bool single_line) { - p->single_line_ = single_line; - p->indent_depth_ = 0; -} - - -/* Public API *****************************************************************/ - -upb_textprinter *upb_textprinter_create(upb_arena *arena, const upb_handlers *h, - upb_bytessink output) { - upb_textprinter *p = upb_arena_malloc(arena, sizeof(upb_textprinter)); - if (!p) return NULL; - - p->output_ = output; - upb_sink_reset(&p->input_, h, p); - textprinter_reset(p, false); - - return p; -} - -upb_handlercache *upb_textprinter_newcache(void) { - return upb_handlercache_new(&onmreg, NULL); -} - -upb_sink upb_textprinter_input(upb_textprinter *p) { return p->input_; } - -void upb_textprinter_setsingleline(upb_textprinter *p, bool single_line) { - p->single_line_ = single_line; -} diff --git a/third_party/upb/upb/pb/textprinter.h b/third_party/upb/upb/pb/textprinter.h deleted file mode 100644 index 7e20d7521bf..00000000000 --- a/third_party/upb/upb/pb/textprinter.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -** upb::pb::TextPrinter (upb_textprinter) -** -** Handlers for writing to protobuf text format. -*/ - -#ifndef UPB_TEXT_H_ -#define UPB_TEXT_H_ - -#include "upb/sink.h" - -#ifdef __cplusplus -namespace upb { -namespace pb { -class TextPrinterPtr; -} /* namespace pb */ -} /* namespace upb */ -#endif - -/* upb_textprinter ************************************************************/ - -struct upb_textprinter; -typedef struct upb_textprinter upb_textprinter; - -#ifdef __cplusplus -extern "C" { -#endif - -/* C API. */ -upb_textprinter *upb_textprinter_create(upb_arena *arena, const upb_handlers *h, - upb_bytessink output); -void upb_textprinter_setsingleline(upb_textprinter *p, bool single_line); -upb_sink upb_textprinter_input(upb_textprinter *p); -upb_handlercache *upb_textprinter_newcache(void); - -#ifdef __cplusplus -} /* extern "C" */ - -class upb::pb::TextPrinterPtr { - public: - TextPrinterPtr(upb_textprinter* ptr) : ptr_(ptr) {} - - /* The given handlers must have come from NewHandlers(). It must outlive the - * TextPrinter. */ - static TextPrinterPtr Create(Arena *arena, upb::HandlersPtr *handlers, - BytesSink output) { - return TextPrinterPtr( - upb_textprinter_create(arena->ptr(), handlers->ptr(), output.sink())); - } - - void SetSingleLineMode(bool single_line) { - upb_textprinter_setsingleline(ptr_, single_line); - } - - Sink input() { return upb_textprinter_input(ptr_); } - - /* If handler caching becomes a requirement we can add a code cache as in - * decoder.h */ - static HandlerCache NewCache() { - return HandlerCache(upb_textprinter_newcache()); - } - - private: - upb_textprinter* ptr_; -}; - -#endif - -#endif /* UPB_TEXT_H_ */ diff --git a/third_party/upb/upb/pb/varint.c b/third_party/upb/upb/pb/varint.c deleted file mode 100644 index 90f58a138fc..00000000000 --- a/third_party/upb/upb/pb/varint.c +++ /dev/null @@ -1,74 +0,0 @@ - -#include "upb/pb/varint.int.h" - -/* Index is descriptor type. */ -const uint8_t upb_pb_native_wire_types[] = { - UPB_WIRE_TYPE_END_GROUP, /* ENDGROUP */ - UPB_WIRE_TYPE_64BIT, /* DOUBLE */ - UPB_WIRE_TYPE_32BIT, /* FLOAT */ - UPB_WIRE_TYPE_VARINT, /* INT64 */ - UPB_WIRE_TYPE_VARINT, /* UINT64 */ - UPB_WIRE_TYPE_VARINT, /* INT32 */ - UPB_WIRE_TYPE_64BIT, /* FIXED64 */ - UPB_WIRE_TYPE_32BIT, /* FIXED32 */ - UPB_WIRE_TYPE_VARINT, /* BOOL */ - UPB_WIRE_TYPE_DELIMITED, /* STRING */ - UPB_WIRE_TYPE_START_GROUP, /* GROUP */ - UPB_WIRE_TYPE_DELIMITED, /* MESSAGE */ - UPB_WIRE_TYPE_DELIMITED, /* BYTES */ - UPB_WIRE_TYPE_VARINT, /* UINT32 */ - UPB_WIRE_TYPE_VARINT, /* ENUM */ - UPB_WIRE_TYPE_32BIT, /* SFIXED32 */ - UPB_WIRE_TYPE_64BIT, /* SFIXED64 */ - UPB_WIRE_TYPE_VARINT, /* SINT32 */ - UPB_WIRE_TYPE_VARINT, /* SINT64 */ -}; - -/* A basic branch-based decoder, uses 32-bit values to get good performance - * on 32-bit architectures (but performs well on 64-bits also). - * This scheme comes from the original Google Protobuf implementation - * (proto2). */ -upb_decoderet upb_vdecode_max8_branch32(upb_decoderet r) { - upb_decoderet err = {NULL, 0}; - const char *p = r.p; - uint32_t low = (uint32_t)r.val; - uint32_t high = 0; - uint32_t b; - b = *(p++); low |= (b & 0x7fU) << 14; if (!(b & 0x80)) goto done; - b = *(p++); low |= (b & 0x7fU) << 21; if (!(b & 0x80)) goto done; - b = *(p++); low |= (b & 0x7fU) << 28; - high = (b & 0x7fU) >> 4; if (!(b & 0x80)) goto done; - b = *(p++); high |= (b & 0x7fU) << 3; if (!(b & 0x80)) goto done; - b = *(p++); high |= (b & 0x7fU) << 10; if (!(b & 0x80)) goto done; - b = *(p++); high |= (b & 0x7fU) << 17; if (!(b & 0x80)) goto done; - b = *(p++); high |= (b & 0x7fU) << 24; if (!(b & 0x80)) goto done; - b = *(p++); high |= (b & 0x7fU) << 31; if (!(b & 0x80)) goto done; - return err; - -done: - r.val = ((uint64_t)high << 32) | low; - r.p = p; - return r; -} - -/* Like the previous, but uses 64-bit values. */ -upb_decoderet upb_vdecode_max8_branch64(upb_decoderet r) { - const char *p = r.p; - uint64_t val = r.val; - uint64_t b; - upb_decoderet err = {NULL, 0}; - b = *(p++); val |= (b & 0x7fU) << 14; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 21; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 28; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 35; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 42; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 49; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 56; if (!(b & 0x80)) goto done; - b = *(p++); val |= (b & 0x7fU) << 63; if (!(b & 0x80)) goto done; - return err; - -done: - r.val = val; - r.p = p; - return r; -} diff --git a/third_party/upb/upb/pb/varint.int.h b/third_party/upb/upb/pb/varint.int.h deleted file mode 100644 index 9b98a81c765..00000000000 --- a/third_party/upb/upb/pb/varint.int.h +++ /dev/null @@ -1,164 +0,0 @@ -/* -** A number of routines for varint manipulation (we keep them all around to -** have multiple approaches available for benchmarking). -*/ - -#ifndef UPB_VARINT_DECODER_H_ -#define UPB_VARINT_DECODER_H_ - -#include -#include -#include -#include "upb/upb.h" - -#include "upb/port_def.inc" - -#ifdef __cplusplus -extern "C" { -#endif - -#define UPB_MAX_WIRE_TYPE 5 - -/* The maximum number of bytes that it takes to encode a 64-bit varint. */ -#define UPB_PB_VARINT_MAX_LEN 10 - -/* Array of the "native" (ie. non-packed-repeated) wire type for the given a - * descriptor type (upb_descriptortype_t). */ -extern const uint8_t upb_pb_native_wire_types[]; - -UPB_INLINE uint64_t byteswap64(uint64_t val) { - uint64_t byte = 0xff; - return (val & (byte << 56) >> 56) - | (val & (byte << 48) >> 40) - | (val & (byte << 40) >> 24) - | (val & (byte << 32) >> 8) - | (val & (byte << 24) << 8) - | (val & (byte << 16) << 24) - | (val & (byte << 8) << 40) - | (val & (byte << 0) << 56); -} - -/* Zig-zag encoding/decoding **************************************************/ - -UPB_INLINE int32_t upb_zzdec_32(uint64_t _n) { - uint32_t n = (uint32_t)_n; - return (n >> 1) ^ -(int32_t)(n & 1); -} -UPB_INLINE int64_t upb_zzdec_64(uint64_t n) { - return (n >> 1) ^ -(int64_t)(n & 1); -} -UPB_INLINE uint32_t upb_zzenc_32(int32_t n) { - return ((uint32_t)n << 1) ^ (n >> 31); -} -UPB_INLINE uint64_t upb_zzenc_64(int64_t n) { - return ((uint64_t)n << 1) ^ (n >> 63); -} - -/* Decoding *******************************************************************/ - -/* All decoding functions return this struct by value. */ -typedef struct { - const char *p; /* NULL if the varint was unterminated. */ - uint64_t val; -} upb_decoderet; - -UPB_INLINE upb_decoderet upb_decoderet_make(const char *p, uint64_t val) { - upb_decoderet ret; - ret.p = p; - ret.val = val; - return ret; -} - -upb_decoderet upb_vdecode_max8_branch32(upb_decoderet r); -upb_decoderet upb_vdecode_max8_branch64(upb_decoderet r); - -/* Template for a function that checks the first two bytes with branching - * and dispatches 2-10 bytes with a separate function. Note that this may read - * up to 10 bytes, so it must not be used unless there are at least ten bytes - * left in the buffer! */ -#define UPB_VARINT_DECODER_CHECK2(name, decode_max8_function) \ -UPB_INLINE upb_decoderet upb_vdecode_check2_ ## name(const char *_p) { \ - uint8_t *p = (uint8_t*)_p; \ - upb_decoderet r; \ - if ((*p & 0x80) == 0) { \ - /* Common case: one-byte varint. */ \ - return upb_decoderet_make(_p + 1, *p & 0x7fU); \ - } \ - r = upb_decoderet_make(_p + 2, (*p & 0x7fU) | ((*(p + 1) & 0x7fU) << 7)); \ - if ((*(p + 1) & 0x80) == 0) { \ - /* Two-byte varint. */ \ - return r; \ - } \ - /* Longer varint, fallback to out-of-line function. */ \ - return decode_max8_function(r); \ -} - -UPB_VARINT_DECODER_CHECK2(branch32, upb_vdecode_max8_branch32) -UPB_VARINT_DECODER_CHECK2(branch64, upb_vdecode_max8_branch64) -#undef UPB_VARINT_DECODER_CHECK2 - -/* Our canonical functions for decoding varints, based on the currently - * favored best-performing implementations. */ -UPB_INLINE upb_decoderet upb_vdecode_fast(const char *p) { - if (sizeof(long) == 8) - return upb_vdecode_check2_branch64(p); - else - return upb_vdecode_check2_branch32(p); -} - - -/* Encoding *******************************************************************/ - -UPB_INLINE int upb_value_size(uint64_t val) { -#ifdef __GNUC__ - /* 0-based, undef if val == 0. */ - int high_bit = val ? 63 - __builtin_clzll(val) : 0; -#else - int high_bit = 0; - uint64_t tmp = val; - while(tmp >>= 1) high_bit++; -#endif - return val == 0 ? 1 : high_bit / 8 + 1; -} - -/* Encodes a 64-bit varint into buf (which must be >=UPB_PB_VARINT_MAX_LEN - * bytes long), returning how many bytes were used. - * - * TODO: benchmark and optimize if necessary. */ -UPB_INLINE size_t upb_vencode64(uint64_t val, char *buf) { - size_t i; - if (val == 0) { buf[0] = 0; return 1; } - i = 0; - while (val) { - uint8_t byte = val & 0x7fU; - val >>= 7; - if (val) byte |= 0x80U; - buf[i++] = byte; - } - return i; -} - -UPB_INLINE size_t upb_varint_size(uint64_t val) { - char buf[UPB_PB_VARINT_MAX_LEN]; - return upb_vencode64(val, buf); -} - -/* Encodes a 32-bit varint, *not* sign-extended. */ -UPB_INLINE uint64_t upb_vencode32(uint32_t val) { - char buf[UPB_PB_VARINT_MAX_LEN]; - size_t bytes = upb_vencode64(val, buf); - uint64_t ret = 0; - UPB_ASSERT(bytes <= 5); - memcpy(&ret, buf, bytes); - ret = _upb_be_swap64(ret); - UPB_ASSERT(ret <= 0xffffffffffU); - return ret; -} - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#include "upb/port_undef.inc" - -#endif /* UPB_VARINT_DECODER_H_ */ diff --git a/third_party/upb/upb/port_def.inc b/third_party/upb/upb/port_def.inc index 2cd1bb6985d..75d416d1cec 100644 --- a/third_party/upb/upb/port_def.inc +++ b/third_party/upb/upb/port_def.inc @@ -1,25 +1,52 @@ /* -* This is where we define macros used across upb. -* -* All of these macros are undef'd in port_undef.inc to avoid leaking them to -* users. -* -* The correct usage is: -* -* #include "upb/foobar.h" -* #include "upb/baz.h" -* -* // MUST be last included header. -* #include "upb/port_def.inc" -* -* // Code for this file. -* // <...> -* -* // Can be omitted for .c files, required for .h. -* #include "upb/port_undef.inc" -* -* This file is private and must not be included by users! -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This is where we define macros used across upb. + * + * All of these macros are undef'd in port_undef.inc to avoid leaking them to + * users. + * + * The correct usage is: + * + * #include "upb/foobar.h" + * #include "upb/baz.h" + * + * // MUST be last included header. + * #include "upb/port_def.inc" + * + * // Code for this file. + * // <...> + * + * // Can be omitted for .c files, required for .h. + * #include "upb/port_undef.inc" + * + * This file is private and must not be included by users! + */ #if !((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ @@ -80,14 +107,17 @@ #define UPB_FORCEINLINE __inline__ __attribute__((always_inline)) #define UPB_NOINLINE __attribute__((noinline)) #define UPB_NORETURN __attribute__((__noreturn__)) +#define UPB_PRINTF(str, first_vararg) __attribute__((format (printf, str, first_vararg))) #elif defined(_MSC_VER) #define UPB_NOINLINE #define UPB_FORCEINLINE #define UPB_NORETURN __declspec(noreturn) +#define UPB_PRINTF(str, first_vararg) #else /* !defined(__GNUC__) */ #define UPB_FORCEINLINE #define UPB_NOINLINE #define UPB_NORETURN +#define UPB_PRINTF(str, first_vararg) #endif #define UPB_MAX(x, y) ((x) > (y) ? (x) : (y)) @@ -132,9 +162,40 @@ #define UPB_LONGJMP(buf, val) longjmp(buf, val) #endif +/* UPB_PTRADD(ptr, ofs): add pointer while avoiding "NULL + 0" UB */ +#define UPB_PTRADD(ptr, ofs) ((ofs) ? (ptr) + (ofs) : (ptr)) + /* Configure whether fasttable is switched on or not. *************************/ -#if defined(__x86_64__) && defined(__GNUC__) +#ifdef __has_attribute +#define UPB_HAS_ATTRIBUTE(x) __has_attribute(x) +#else +#define UPB_HAS_ATTRIBUTE(x) 0 +#endif + +#if UPB_HAS_ATTRIBUTE(musttail) +#define UPB_MUSTTAIL __attribute__((musttail)) +#else +#define UPB_MUSTTAIL +#endif + +#undef UPB_HAS_ATTRIBUTE + +/* This check is not fully robust: it does not require that we have "musttail" + * support available. We need tail calls to avoid consuming arbitrary amounts + * of stack space. + * + * GCC/Clang can mostly be trusted to generate tail calls as long as + * optimization is enabled, but, debug builds will not generate tail calls + * unless "musttail" is available. + * + * We should probably either: + * 1. require that the compiler supports musttail. + * 2. add some fallback code for when musttail isn't available (ie. return + * instead of tail calling). This is safe and portable, but this comes at + * a CPU cost. + */ +#if (defined(__x86_64__) || defined(__aarch64__)) && defined(__GNUC__) #define UPB_FASTTABLE_SUPPORTED 1 #else #define UPB_FASTTABLE_SUPPORTED 0 @@ -145,7 +206,7 @@ * for example for testing or benchmarking. */ #if defined(UPB_ENABLE_FASTTABLE) #if !UPB_FASTTABLE_SUPPORTED -#error fasttable is x86-64 + Clang/GCC only +#error fasttable is x86-64/ARM64 only and requires GCC or Clang. #endif #define UPB_FASTTABLE 1 /* Define UPB_TRY_ENABLE_FASTTABLE to use fasttable if possible. @@ -189,4 +250,4 @@ void __asan_unpoison_memory_region(void const volatile *addr, size_t size); ((void)(addr), (void)(size)) #define UPB_UNPOISON_MEMORY_REGION(addr, size) \ ((void)(addr), (void)(size)) -#endif +#endif diff --git a/third_party/upb/upb/port_undef.inc b/third_party/upb/upb/port_undef.inc index b7be52cc985..70956df25df 100644 --- a/third_party/upb/upb/port_undef.inc +++ b/third_party/upb/upb/port_undef.inc @@ -1,24 +1,61 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + /* See port_def.inc. This should #undef all macros #defined there. */ -#undef UPB_MAPTYPE_STRING #undef UPB_SIZE #undef UPB_PTR_AT #undef UPB_READ_ONEOF #undef UPB_WRITE_ONEOF +#undef UPB_MAPTYPE_STRING #undef UPB_INLINE #undef UPB_ALIGN_UP #undef UPB_ALIGN_DOWN #undef UPB_ALIGN_MALLOC #undef UPB_ALIGN_OF +#undef UPB_LIKELY +#undef UPB_UNLIKELY #undef UPB_FORCEINLINE #undef UPB_NOINLINE #undef UPB_NORETURN +#undef UPB_PRINTF #undef UPB_MAX #undef UPB_MIN #undef UPB_UNUSED #undef UPB_ASSUME #undef UPB_ASSERT #undef UPB_UNREACHABLE +#undef UPB_SETJMP +#undef UPB_LONGJMP +#undef UPB_PTRADD +#undef UPB_MUSTTAIL +#undef UPB_FASTTABLE_SUPPORTED +#undef UPB_FASTTABLE +#undef UPB_FASTTABLE_INIT #undef UPB_POISON_MEMORY_REGION #undef UPB_UNPOISON_MEMORY_REGION #undef UPB_ASAN diff --git a/third_party/upb/upb/reflection.c b/third_party/upb/upb/reflection.c index a233d964e92..b562190e30a 100644 --- a/third_party/upb/upb/reflection.c +++ b/third_party/upb/upb/reflection.c @@ -1,8 +1,34 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/reflection.h" #include -#include "upb/table.int.h" +#include "upb/table_internal.h" #include "upb/msg.h" #include "upb/port_def.inc" @@ -113,40 +139,7 @@ upb_msgval upb_msg_get(const upb_msg *msg, const upb_fielddef *f) { if (!upb_fielddef_haspresence(f) || upb_msg_has(msg, f)) { return _upb_msg_getraw(msg, f); } else { - /* TODO(haberman): change upb_fielddef to not require this switch(). */ - upb_msgval val = {0}; - switch (upb_fielddef_type(f)) { - case UPB_TYPE_INT32: - case UPB_TYPE_ENUM: - val.int32_val = upb_fielddef_defaultint32(f); - break; - case UPB_TYPE_INT64: - val.int64_val = upb_fielddef_defaultint64(f); - break; - case UPB_TYPE_UINT32: - val.uint32_val = upb_fielddef_defaultuint32(f); - break; - case UPB_TYPE_UINT64: - val.uint64_val = upb_fielddef_defaultuint64(f); - break; - case UPB_TYPE_FLOAT: - val.float_val = upb_fielddef_defaultfloat(f); - break; - case UPB_TYPE_DOUBLE: - val.double_val = upb_fielddef_defaultdouble(f); - break; - case UPB_TYPE_BOOL: - val.bool_val = upb_fielddef_defaultbool(f); - break; - case UPB_TYPE_STRING: - case UPB_TYPE_BYTES: - val.str_val.data = upb_fielddef_defaultstr(f, &val.str_val.size); - break; - case UPB_TYPE_MESSAGE: - val.msg_val = NULL; - break; - } - return val; + return upb_fielddef_default(f); } } @@ -333,10 +326,9 @@ void upb_array_set(upb_array *arr, size_t i, upb_msgval val) { } bool upb_array_append(upb_array *arr, upb_msgval val, upb_arena *arena) { - if (!_upb_array_realloc(arr, arr->len + 1, arena)) { + if (!upb_array_resize(arr, arr->len + 1, arena)) { return false; } - arr->len++; upb_array_set(arr, arr->len - 1, val); return true; } diff --git a/third_party/upb/upb/reflection.h b/third_party/upb/upb/reflection.h index 0133630c58d..f0eb0d4fb9e 100644 --- a/third_party/upb/upb/reflection.h +++ b/third_party/upb/upb/reflection.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPB_REFLECTION_H_ #define UPB_REFLECTION_H_ @@ -8,6 +34,10 @@ #include "upb/port_def.inc" +#ifdef __cplusplus +extern "C" { +#endif + typedef union { bool bool_val; float float_val; @@ -28,6 +58,8 @@ typedef union { upb_array* array; } upb_mutmsgval; +upb_msgval upb_fielddef_default(const upb_fielddef *f); + /** upb_msg *******************************************************************/ /* Creates a new message of the given type in the given arena. */ @@ -78,17 +110,9 @@ bool upb_msg_next(const upb_msg *msg, const upb_msgdef *m, const upb_symtab *ext_pool, const upb_fielddef **f, upb_msgval *val, size_t *iter); -/* Adds unknown data (serialized protobuf data) to the given message. The data - * is copied into the message instance. */ -void upb_msg_addunknown(upb_msg *msg, const char *data, size_t len, - upb_arena *arena); - /* Clears all unknown field data from this message and all submessages. */ bool upb_msg_discardunknown(upb_msg *msg, const upb_msgdef *m, int maxdepth); -/* Returns a reference to the message's unknown data. */ -const char *upb_msg_getunknown(const upb_msg *msg, size_t *len); - /** upb_array *****************************************************************/ /* Creates a new array on the given arena that holds elements of this type. */ @@ -163,6 +187,10 @@ upb_msgval upb_mapiter_value(const upb_map *map, size_t iter); * iterator must not have been initialized const. */ void upb_mapiter_setvalue(upb_map *map, size_t iter, upb_msgval value); +#ifdef __cplusplus +} /* extern "C" */ +#endif + #include "upb/port_undef.inc" #endif /* UPB_REFLECTION_H_ */ diff --git a/third_party/upb/upb/reflection.hpp b/third_party/upb/upb/reflection.hpp new file mode 100644 index 00000000000..e144ee3525f --- /dev/null +++ b/third_party/upb/upb/reflection.hpp @@ -0,0 +1,37 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef UPB_REFLECTION_HPP_ +#define UPB_REFLECTION_HPP_ + +#include "upb/reflection.h" + +namespace upb { + +typedef upb_msgval MessageValue; + +} // namespace upb + +#endif // UPB_REFLECTION_HPP_ diff --git a/third_party/upb/upb/sink.c b/third_party/upb/upb/sink.c deleted file mode 100644 index d55d258b235..00000000000 --- a/third_party/upb/upb/sink.c +++ /dev/null @@ -1,17 +0,0 @@ - -#include "upb/sink.h" - -bool upb_bufsrc_putbuf(const char *buf, size_t len, upb_bytessink sink) { - void *subc; - bool ret; - upb_bufhandle handle = UPB_BUFHANDLE_INIT; - handle.buf = buf; - ret = upb_bytessink_start(sink, len, &subc); - if (ret && len != 0) { - ret = (upb_bytessink_putbuf(sink, subc, buf, len, &handle) >= len); - } - if (ret) { - ret = upb_bytessink_end(sink); - } - return ret; -} diff --git a/third_party/upb/upb/sink.h b/third_party/upb/upb/sink.h deleted file mode 100644 index 871a8f57a70..00000000000 --- a/third_party/upb/upb/sink.h +++ /dev/null @@ -1,517 +0,0 @@ -/* -** upb::Sink (upb_sink) -** upb::BytesSink (upb_bytessink) -** -** A upb_sink is an object that binds a upb_handlers object to some runtime -** state. It is the object that can actually receive data via the upb_handlers -** interface. -** -** Unlike upb_def and upb_handlers, upb_sink is never frozen, immutable, or -** thread-safe. You can create as many of them as you want, but each one may -** only be used in a single thread at a time. -** -** If we compare with class-based OOP, a you can think of a upb_def as an -** abstract base class, a upb_handlers as a concrete derived class, and a -** upb_sink as an object (class instance). -*/ - -#ifndef UPB_SINK_H -#define UPB_SINK_H - -#include "upb/handlers.h" - -#include "upb/port_def.inc" - -#ifdef __cplusplus -namespace upb { -class BytesSink; -class Sink; -} -#endif - -/* upb_sink *******************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - const upb_handlers *handlers; - void *closure; -} upb_sink; - -#define PUTVAL(type, ctype) \ - UPB_INLINE bool upb_sink_put##type(upb_sink s, upb_selector_t sel, \ - ctype val) { \ - typedef upb_##type##_handlerfunc functype; \ - functype *func; \ - const void *hd; \ - if (!s.handlers) return true; \ - func = (functype *)upb_handlers_gethandler(s.handlers, sel, &hd); \ - if (!func) return true; \ - return func(s.closure, hd, val); \ - } - -PUTVAL(int32, int32_t) -PUTVAL(int64, int64_t) -PUTVAL(uint32, uint32_t) -PUTVAL(uint64, uint64_t) -PUTVAL(float, float) -PUTVAL(double, double) -PUTVAL(bool, bool) -#undef PUTVAL - -UPB_INLINE void upb_sink_reset(upb_sink *s, const upb_handlers *h, void *c) { - s->handlers = h; - s->closure = c; -} - -UPB_INLINE size_t upb_sink_putstring(upb_sink s, upb_selector_t sel, - const char *buf, size_t n, - const upb_bufhandle *handle) { - typedef upb_string_handlerfunc func; - func *handler; - const void *hd; - if (!s.handlers) return n; - handler = (func *)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!handler) return n; - return handler(s.closure, hd, buf, n, handle); -} - -UPB_INLINE bool upb_sink_putunknown(upb_sink s, const char *buf, size_t n) { - typedef upb_unknown_handlerfunc func; - func *handler; - const void *hd; - if (!s.handlers) return true; - handler = - (func *)upb_handlers_gethandler(s.handlers, UPB_UNKNOWN_SELECTOR, &hd); - - if (!handler) return n; - return handler(s.closure, hd, buf, n); -} - -UPB_INLINE bool upb_sink_startmsg(upb_sink s) { - typedef upb_startmsg_handlerfunc func; - func *startmsg; - const void *hd; - if (!s.handlers) return true; - startmsg = - (func *)upb_handlers_gethandler(s.handlers, UPB_STARTMSG_SELECTOR, &hd); - - if (!startmsg) return true; - return startmsg(s.closure, hd); -} - -UPB_INLINE bool upb_sink_endmsg(upb_sink s, upb_status *status) { - typedef upb_endmsg_handlerfunc func; - func *endmsg; - const void *hd; - if (!s.handlers) return true; - endmsg = - (func *)upb_handlers_gethandler(s.handlers, UPB_ENDMSG_SELECTOR, &hd); - - if (!endmsg) return true; - return endmsg(s.closure, hd, status); -} - -UPB_INLINE bool upb_sink_startseq(upb_sink s, upb_selector_t sel, - upb_sink *sub) { - typedef upb_startfield_handlerfunc func; - func *startseq; - const void *hd; - sub->closure = s.closure; - sub->handlers = s.handlers; - if (!s.handlers) return true; - startseq = (func*)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!startseq) return true; - sub->closure = startseq(s.closure, hd); - return sub->closure ? true : false; -} - -UPB_INLINE bool upb_sink_endseq(upb_sink s, upb_selector_t sel) { - typedef upb_endfield_handlerfunc func; - func *endseq; - const void *hd; - if (!s.handlers) return true; - endseq = (func*)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!endseq) return true; - return endseq(s.closure, hd); -} - -UPB_INLINE bool upb_sink_startstr(upb_sink s, upb_selector_t sel, - size_t size_hint, upb_sink *sub) { - typedef upb_startstr_handlerfunc func; - func *startstr; - const void *hd; - sub->closure = s.closure; - sub->handlers = s.handlers; - if (!s.handlers) return true; - startstr = (func*)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!startstr) return true; - sub->closure = startstr(s.closure, hd, size_hint); - return sub->closure ? true : false; -} - -UPB_INLINE bool upb_sink_endstr(upb_sink s, upb_selector_t sel) { - typedef upb_endfield_handlerfunc func; - func *endstr; - const void *hd; - if (!s.handlers) return true; - endstr = (func*)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!endstr) return true; - return endstr(s.closure, hd); -} - -UPB_INLINE bool upb_sink_startsubmsg(upb_sink s, upb_selector_t sel, - upb_sink *sub) { - typedef upb_startfield_handlerfunc func; - func *startsubmsg; - const void *hd; - sub->closure = s.closure; - if (!s.handlers) { - sub->handlers = NULL; - return true; - } - sub->handlers = upb_handlers_getsubhandlers_sel(s.handlers, sel); - startsubmsg = (func*)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!startsubmsg) return true; - sub->closure = startsubmsg(s.closure, hd); - return sub->closure ? true : false; -} - -UPB_INLINE bool upb_sink_endsubmsg(upb_sink s, upb_sink sub, - upb_selector_t sel) { - typedef upb_endfield_handlerfunc func; - func *endsubmsg; - const void *hd; - if (!s.handlers) return true; - endsubmsg = (func*)upb_handlers_gethandler(s.handlers, sel, &hd); - - if (!endsubmsg) return true; - return endsubmsg(sub.closure, hd); -} - -#ifdef __cplusplus -} /* extern "C" */ - -/* A upb::Sink is an object that binds a upb::Handlers object to some runtime - * state. It represents an endpoint to which data can be sent. - * - * TODO(haberman): right now all of these functions take selectors. Should they - * take selectorbase instead? - * - * ie. instead of calling: - * sink->StartString(FOO_FIELD_START_STRING, ...) - * a selector base would let you say: - * sink->StartString(FOO_FIELD, ...) - * - * This would make call sites a little nicer and require emitting fewer selector - * definitions in .h files. - * - * But the current scheme has the benefit that you can retrieve a function - * pointer for any handler with handlers->GetHandler(selector), without having - * to have a separate GetHandler() function for each handler type. The JIT - * compiler uses this. To accommodate we'd have to expose a separate - * GetHandler() for every handler type. - * - * Also to ponder: selectors right now are independent of a specific Handlers - * instance. In other words, they allocate a number to every possible handler - * that *could* be registered, without knowing anything about what handlers - * *are* registered. That means that using selectors as table offsets prohibits - * us from compacting the handler table at Freeze() time. If the table is very - * sparse, this could be wasteful. - * - * Having another selector-like thing that is specific to a Handlers instance - * would allow this compacting, but then it would be impossible to write code - * ahead-of-time that can be bound to any Handlers instance at runtime. For - * example, a .proto file parser written as straight C will not know what - * Handlers it will be bound to, so when it calls sink->StartString() what - * selector will it pass? It needs a selector like we have today, that is - * independent of any particular upb::Handlers. - * - * Is there a way then to allow Handlers table compaction? */ -class upb::Sink { - public: - /* Constructor with no initialization; must be Reset() before use. */ - Sink() {} - - Sink(const Sink&) = default; - Sink& operator=(const Sink&) = default; - - Sink(const upb_sink& sink) : sink_(sink) {} - Sink &operator=(const upb_sink &sink) { - sink_ = sink; - return *this; - } - - upb_sink sink() { return sink_; } - - /* Constructs a new sink for the given frozen handlers and closure. - * - * TODO: once the Handlers know the expected closure type, verify that T - * matches it. */ - template Sink(const upb_handlers* handlers, T* closure) { - Reset(handlers, closure); - } - - upb_sink* ptr() { return &sink_; } - - /* Resets the value of the sink. */ - template void Reset(const upb_handlers* handlers, T* closure) { - upb_sink_reset(&sink_, handlers, closure); - } - - /* Returns the top-level object that is bound to this sink. - * - * TODO: once the Handlers know the expected closure type, verify that T - * matches it. */ - template T* GetObject() const { - return static_cast(sink_.closure); - } - - /* Functions for pushing data into the sink. - * - * These return false if processing should stop (either due to error or just - * to suspend). - * - * These may not be called from within one of the same sink's handlers (in - * other words, handlers are not re-entrant). */ - - /* Should be called at the start and end of every message; both the top-level - * message and submessages. This means that submessages should use the - * following sequence: - * sink->StartSubMessage(startsubmsg_selector); - * sink->StartMessage(); - * // ... - * sink->EndMessage(&status); - * sink->EndSubMessage(endsubmsg_selector); */ - bool StartMessage() { return upb_sink_startmsg(sink_); } - bool EndMessage(upb_status *status) { - return upb_sink_endmsg(sink_, status); - } - - /* Putting of individual values. These work for both repeated and - * non-repeated fields, but for repeated fields you must wrap them in - * calls to StartSequence()/EndSequence(). */ - bool PutInt32(HandlersPtr::Selector s, int32_t val) { - return upb_sink_putint32(sink_, s, val); - } - - bool PutInt64(HandlersPtr::Selector s, int64_t val) { - return upb_sink_putint64(sink_, s, val); - } - - bool PutUInt32(HandlersPtr::Selector s, uint32_t val) { - return upb_sink_putuint32(sink_, s, val); - } - - bool PutUInt64(HandlersPtr::Selector s, uint64_t val) { - return upb_sink_putuint64(sink_, s, val); - } - - bool PutFloat(HandlersPtr::Selector s, float val) { - return upb_sink_putfloat(sink_, s, val); - } - - bool PutDouble(HandlersPtr::Selector s, double val) { - return upb_sink_putdouble(sink_, s, val); - } - - bool PutBool(HandlersPtr::Selector s, bool val) { - return upb_sink_putbool(sink_, s, val); - } - - /* Putting of string/bytes values. Each string can consist of zero or more - * non-contiguous buffers of data. - * - * For StartString(), the function will write a sink for the string to "sub." - * The sub-sink must be used for any/all PutStringBuffer() calls. */ - bool StartString(HandlersPtr::Selector s, size_t size_hint, Sink* sub) { - upb_sink sub_c; - bool ret = upb_sink_startstr(sink_, s, size_hint, &sub_c); - *sub = sub_c; - return ret; - } - - size_t PutStringBuffer(HandlersPtr::Selector s, const char *buf, size_t len, - const upb_bufhandle *handle) { - return upb_sink_putstring(sink_, s, buf, len, handle); - } - - bool EndString(HandlersPtr::Selector s) { - return upb_sink_endstr(sink_, s); - } - - /* For submessage fields. - * - * For StartSubMessage(), the function will write a sink for the string to - * "sub." The sub-sink must be used for any/all handlers called within the - * submessage. */ - bool StartSubMessage(HandlersPtr::Selector s, Sink* sub) { - upb_sink sub_c; - bool ret = upb_sink_startsubmsg(sink_, s, &sub_c); - *sub = sub_c; - return ret; - } - - bool EndSubMessage(HandlersPtr::Selector s, Sink sub) { - return upb_sink_endsubmsg(sink_, sub.sink_, s); - } - - /* For repeated fields of any type, the sequence of values must be wrapped in - * these calls. - * - * For StartSequence(), the function will write a sink for the string to - * "sub." The sub-sink must be used for any/all handlers called within the - * sequence. */ - bool StartSequence(HandlersPtr::Selector s, Sink* sub) { - upb_sink sub_c; - bool ret = upb_sink_startseq(sink_, s, &sub_c); - *sub = sub_c; - return ret; - } - - bool EndSequence(HandlersPtr::Selector s) { - return upb_sink_endseq(sink_, s); - } - - /* Copy and assign specifically allowed. - * We don't even bother making these members private because so many - * functions need them and this is mainly just a dumb data container anyway. - */ - - private: - upb_sink sink_; -}; - -#endif /* __cplusplus */ - -/* upb_bytessink **************************************************************/ - -typedef struct { - const upb_byteshandler *handler; - void *closure; -} upb_bytessink ; - -UPB_INLINE void upb_bytessink_reset(upb_bytessink* s, const upb_byteshandler *h, - void *closure) { - s->handler = h; - s->closure = closure; -} - -UPB_INLINE bool upb_bytessink_start(upb_bytessink s, size_t size_hint, - void **subc) { - typedef upb_startstr_handlerfunc func; - func *start; - *subc = s.closure; - if (!s.handler) return true; - start = (func *)s.handler->table[UPB_STARTSTR_SELECTOR].func; - - if (!start) return true; - *subc = start(s.closure, - s.handler->table[UPB_STARTSTR_SELECTOR].attr.handler_data, - size_hint); - return *subc != NULL; -} - -UPB_INLINE size_t upb_bytessink_putbuf(upb_bytessink s, void *subc, - const char *buf, size_t size, - const upb_bufhandle* handle) { - typedef upb_string_handlerfunc func; - func *putbuf; - if (!s.handler) return true; - putbuf = (func *)s.handler->table[UPB_STRING_SELECTOR].func; - - if (!putbuf) return true; - return putbuf(subc, s.handler->table[UPB_STRING_SELECTOR].attr.handler_data, - buf, size, handle); -} - -UPB_INLINE bool upb_bytessink_end(upb_bytessink s) { - typedef upb_endfield_handlerfunc func; - func *end; - if (!s.handler) return true; - end = (func *)s.handler->table[UPB_ENDSTR_SELECTOR].func; - - if (!end) return true; - return end(s.closure, - s.handler->table[UPB_ENDSTR_SELECTOR].attr.handler_data); -} - -#ifdef __cplusplus - -class upb::BytesSink { - public: - BytesSink() {} - - BytesSink(const BytesSink&) = default; - BytesSink& operator=(const BytesSink&) = default; - - BytesSink(const upb_bytessink& sink) : sink_(sink) {} - BytesSink &operator=(const upb_bytessink &sink) { - sink_ = sink; - return *this; - } - - upb_bytessink sink() { return sink_; } - - /* Constructs a new sink for the given frozen handlers and closure. - * - * TODO(haberman): once the Handlers know the expected closure type, verify - * that T matches it. */ - template BytesSink(const upb_byteshandler* handler, T* closure) { - upb_bytessink_reset(sink_, handler, closure); - } - - /* Resets the value of the sink. */ - template void Reset(const upb_byteshandler* handler, T* closure) { - upb_bytessink_reset(&sink_, handler, closure); - } - - bool Start(size_t size_hint, void **subc) { - return upb_bytessink_start(sink_, size_hint, subc); - } - - size_t PutBuffer(void *subc, const char *buf, size_t len, - const upb_bufhandle *handle) { - return upb_bytessink_putbuf(sink_, subc, buf, len, handle); - } - - bool End() { - return upb_bytessink_end(sink_); - } - - private: - upb_bytessink sink_; -}; - -#endif /* __cplusplus */ - -/* upb_bufsrc *****************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -bool upb_bufsrc_putbuf(const char *buf, size_t len, upb_bytessink sink); - -#ifdef __cplusplus -} /* extern "C" */ - -namespace upb { -template bool PutBuffer(const T& str, BytesSink sink) { - return upb_bufsrc_putbuf(str.data(), str.size(), sink.sink()); -} -} - -#endif /* __cplusplus */ - -#include "upb/port_undef.inc" - -#endif diff --git a/third_party/upb/upb/table.c b/third_party/upb/upb/table.c index 88370476599..21e42ac816d 100644 --- a/third_party/upb/upb/table.c +++ b/third_party/upb/upb/table.c @@ -1,13 +1,39 @@ /* -** upb_table Implementation -** -** Implementation is heavily inspired by Lua's ltable.c. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * upb_table Implementation + * + * Implementation is heavily inspired by Lua's ltable.c. + */ #include -#include "third_party/wyhash/wyhash.h" -#include "upb/table.int.h" +#include "upb/table_internal.h" /* Must be last. */ #include "upb/port_def.inc" @@ -25,9 +51,15 @@ static const double MAX_LOAD = 0.85; * cache effects). The lower this is, the more memory we'll use. */ static const double MIN_DENSITY = 0.1; -bool is_pow2(uint64_t v) { return v == 0 || (v & (v - 1)) == 0; } +static bool is_pow2(uint64_t v) { return v == 0 || (v & (v - 1)) == 0; } + +static upb_value _upb_value_val(uint64_t val) { + upb_value ret; + _upb_value_setval(&ret, val); + return ret; +} -int log2ceil(uint64_t v) { +static int log2ceil(uint64_t v) { int ret = 0; bool pow2 = is_pow2(v); while (v >>= 1) ret++; @@ -35,11 +67,7 @@ int log2ceil(uint64_t v) { return UPB_MIN(UPB_MAXARRSIZE, ret); } -char *upb_strdup(const char *s, upb_alloc *a) { - return upb_strdup2(s, strlen(s), a); -} - -char *upb_strdup2(const char *s, size_t len, upb_alloc *a) { +char *upb_strdup2(const char *s, size_t len, upb_arena *a) { size_t n; char *p; @@ -48,7 +76,7 @@ char *upb_strdup2(const char *s, size_t len, upb_alloc *a) { /* Always null-terminate, even if binary data; but don't rely on the input to * have a null-terminating byte since it may be a raw binary buffer. */ n = len + 1; - p = upb_malloc(a, n); + p = upb_arena_malloc(a, n); if (p) { memcpy(p, s, len); p[len] = 0; @@ -83,16 +111,24 @@ typedef bool eqlfunc_t(upb_tabkey k1, lookupkey_t k2); /* Base table (shared code) ***************************************************/ -/* For when we need to cast away const. */ -static upb_tabent *mutable_entries(upb_table *t) { - return (upb_tabent*)t->entries; +static uint32_t upb_inthash(uintptr_t key) { + return (uint32_t)key; +} + +static const upb_tabent *upb_getentry(const upb_table *t, uint32_t hash) { + return t->entries + (hash & t->mask); } +static bool upb_arrhas(upb_tabval key) { + return key.val != (uint64_t)-1; +} + + static bool isfull(upb_table *t) { return t->count == t->max_count; } -static bool init(upb_table *t, uint8_t size_lg2, upb_alloc *a) { +static bool init(upb_table *t, uint8_t size_lg2, upb_arena *a) { size_t bytes; t->count = 0; @@ -101,21 +137,17 @@ static bool init(upb_table *t, uint8_t size_lg2, upb_alloc *a) { t->max_count = upb_table_size(t) * MAX_LOAD; bytes = upb_table_size(t) * sizeof(upb_tabent); if (bytes > 0) { - t->entries = upb_malloc(a, bytes); + t->entries = upb_arena_malloc(a, bytes); if (!t->entries) return false; - memset(mutable_entries(t), 0, bytes); + memset(t->entries, 0, bytes); } else { t->entries = NULL; } return true; } -static void uninit(upb_table *t, upb_alloc *a) { - upb_free(a, mutable_entries(t)); -} - static upb_tabent *emptyent(upb_table *t, upb_tabent *e) { - upb_tabent *begin = mutable_entries(t); + upb_tabent *begin = t->entries; upb_tabent *end = begin + upb_table_size(t); for (e = e + 1; e < end; e++) { if (upb_tabent_isempty(e)) return e; @@ -265,9 +297,9 @@ static size_t begin(const upb_table *t) { /* A simple "subclass" of upb_table that only adds a hash function for strings. */ -static upb_tabkey strcopy(lookupkey_t k2, upb_alloc *a) { +static upb_tabkey strcopy(lookupkey_t k2, upb_arena *a) { uint32_t len = (uint32_t) k2.str.len; - char *str = upb_malloc(a, k2.str.len + sizeof(uint32_t) + 1); + char *str = upb_arena_malloc(a, k2.str.len + sizeof(uint32_t) + 1); if (str == NULL) return 0; memcpy(str, &len, sizeof(uint32_t)); if (k2.str.len) memcpy(str + sizeof(uint32_t), k2.str.str, k2.str.len); @@ -275,8 +307,143 @@ static upb_tabkey strcopy(lookupkey_t k2, upb_alloc *a) { return (uintptr_t)str; } +/* Adapted from ABSL's wyhash. */ + +static uint64_t UnalignedLoad64(const void *p) { + uint64_t val; + memcpy(&val, p, 8); + return val; +} + +static uint32_t UnalignedLoad32(const void *p) { + uint32_t val; + memcpy(&val, p, 4); + return val; +} + +#if defined(_MSC_VER) && defined(_M_X64) +#include +#endif + +/* Computes a * b, returning the low 64 bits of the result and storing the high + * 64 bits in |*high|. */ +static uint64_t upb_umul128(uint64_t v0, uint64_t v1, uint64_t* out_high) { +#ifdef __SIZEOF_INT128__ + __uint128_t p = v0; + p *= v1; + *out_high = (uint64_t)(p >> 64); + return (uint64_t)p; +#elif defined(_MSC_VER) && defined(_M_X64) + return _umul128(v0, v1, out_high); +#else + uint64_t a32 = v0 >> 32; + uint64_t a00 = v0 & 0xffffffff; + uint64_t b32 = v1 >> 32; + uint64_t b00 = v1 & 0xffffffff; + uint64_t high = a32 * b32; + uint64_t low = a00 * b00; + uint64_t mid1 = a32 * b00; + uint64_t mid2 = a00 * b32; + low += (mid1 << 32) + (mid2 << 32); + // Omit carry bit, for mixing we do not care about exact numerical precision. + high += (mid1 >> 32) + (mid2 >> 32); + *out_high = high; + return low; +#endif +} + +static uint64_t WyhashMix(uint64_t v0, uint64_t v1) { + uint64_t high; + uint64_t low = upb_umul128(v0, v1, &high); + return low ^ high; +} + +static uint64_t Wyhash(const void *data, size_t len, uint64_t seed, + const uint64_t salt[]) { + const uint8_t* ptr = (const uint8_t*)data; + uint64_t starting_length = (uint64_t)len; + uint64_t current_state = seed ^ salt[0]; + + if (len > 64) { + // If we have more than 64 bytes, we're going to handle chunks of 64 + // bytes at a time. We're going to build up two separate hash states + // which we will then hash together. + uint64_t duplicated_state = current_state; + + do { + uint64_t a = UnalignedLoad64(ptr); + uint64_t b = UnalignedLoad64(ptr + 8); + uint64_t c = UnalignedLoad64(ptr + 16); + uint64_t d = UnalignedLoad64(ptr + 24); + uint64_t e = UnalignedLoad64(ptr + 32); + uint64_t f = UnalignedLoad64(ptr + 40); + uint64_t g = UnalignedLoad64(ptr + 48); + uint64_t h = UnalignedLoad64(ptr + 56); + + uint64_t cs0 = WyhashMix(a ^ salt[1], b ^ current_state); + uint64_t cs1 = WyhashMix(c ^ salt[2], d ^ current_state); + current_state = (cs0 ^ cs1); + + uint64_t ds0 = WyhashMix(e ^ salt[3], f ^ duplicated_state); + uint64_t ds1 = WyhashMix(g ^ salt[4], h ^ duplicated_state); + duplicated_state = (ds0 ^ ds1); + + ptr += 64; + len -= 64; + } while (len > 64); + + current_state = current_state ^ duplicated_state; + } + + // We now have a data `ptr` with at most 64 bytes and the current state + // of the hashing state machine stored in current_state. + while (len > 16) { + uint64_t a = UnalignedLoad64(ptr); + uint64_t b = UnalignedLoad64(ptr + 8); + + current_state = WyhashMix(a ^ salt[1], b ^ current_state); + + ptr += 16; + len -= 16; + } + + // We now have a data `ptr` with at most 16 bytes. + uint64_t a = 0; + uint64_t b = 0; + if (len > 8) { + // When we have at least 9 and at most 16 bytes, set A to the first 64 + // bits of the input and B to the last 64 bits of the input. Yes, they will + // overlap in the middle if we are working with less than the full 16 + // bytes. + a = UnalignedLoad64(ptr); + b = UnalignedLoad64(ptr + len - 8); + } else if (len > 3) { + // If we have at least 4 and at most 8 bytes, set A to the first 32 + // bits and B to the last 32 bits. + a = UnalignedLoad32(ptr); + b = UnalignedLoad32(ptr + len - 4); + } else if (len > 0) { + // If we have at least 1 and at most 3 bytes, read all of the provided + // bits into A, with some adjustments. + a = ((ptr[0] << 16) | (ptr[len >> 1] << 8) | ptr[len - 1]); + b = 0; + } else { + a = 0; + b = 0; + } + + uint64_t w = WyhashMix(a ^ salt[1], b ^ current_state); + uint64_t z = salt[1] ^ starting_length; + return WyhashMix(w, z); +} + +const uint64_t kWyhashSalt[5] = { + 0x243F6A8885A308D3ULL, 0x13198A2E03707344ULL, 0xA4093822299F31D0ULL, + 0x082EFA98EC4E6C89ULL, 0x452821E638D01377ULL, +}; + static uint32_t table_hash(const char *p, size_t n) { - return wyhash(p, n, 0, _wyp); + return Wyhash(p, n, 0, kWyhashSalt); } static uint32_t strhash(upb_tabkey key) { @@ -291,9 +458,7 @@ static bool streql(upb_tabkey k1, lookupkey_t k2) { return len == k2.str.len && (len == 0 || memcmp(str, k2.str.str, len) == 0); } -bool upb_strtable_init2(upb_strtable *t, upb_ctype_t ctype, - size_t expected_size, upb_alloc *a) { - UPB_UNUSED(ctype); /* TODO(haberman): rm */ +bool upb_strtable_init(upb_strtable *t, size_t expected_size, upb_arena *a) { // Multiply by approximate reciprocal of MAX_LOAD (0.85), with pow2 denominator. size_t need_entries = (expected_size + 1) * 1204 / 1024; UPB_ASSERT(need_entries >= expected_size * 0.85); @@ -307,14 +472,7 @@ void upb_strtable_clear(upb_strtable *t) { memset((char*)t->t.entries, 0, bytes); } -void upb_strtable_uninit2(upb_strtable *t, upb_alloc *a) { - size_t i; - for (i = 0; i < upb_table_size(&t->t); i++) - upb_free(a, (void*)t->t.entries[i].key); - uninit(&t->t, a); -} - -bool upb_strtable_resize(upb_strtable *t, size_t size_lg2, upb_alloc *a) { +bool upb_strtable_resize(upb_strtable *t, size_t size_lg2, upb_arena *a) { upb_strtable new_table; upb_strtable_iter i; @@ -323,17 +481,15 @@ bool upb_strtable_resize(upb_strtable *t, size_t size_lg2, upb_alloc *a) { upb_strtable_begin(&i, t); for ( ; !upb_strtable_done(&i); upb_strtable_next(&i)) { upb_strview key = upb_strtable_iter_key(&i); - upb_strtable_insert3( - &new_table, key.data, key.size, - upb_strtable_iter_value(&i), a); + upb_strtable_insert(&new_table, key.data, key.size, + upb_strtable_iter_value(&i), a); } - upb_strtable_uninit2(t, a); *t = new_table; return true; } -bool upb_strtable_insert3(upb_strtable *t, const char *k, size_t len, - upb_value v, upb_alloc *a) { +bool upb_strtable_insert(upb_strtable *t, const char *k, size_t len, + upb_value v, upb_arena *a) { lookupkey_t key; upb_tabkey tabkey; uint32_t hash; @@ -360,19 +516,11 @@ bool upb_strtable_lookup2(const upb_strtable *t, const char *key, size_t len, return lookup(&t->t, strkey2(key, len), v, hash, &streql); } -bool upb_strtable_remove3(upb_strtable *t, const char *key, size_t len, - upb_value *val, upb_alloc *alloc) { +bool upb_strtable_remove(upb_strtable *t, const char *key, size_t len, + upb_value *val) { uint32_t hash = table_hash(key, len); upb_tabkey tabkey; - if (rm(&t->t, strkey2(key, len), val, &tabkey, hash, &streql)) { - if (alloc) { - /* Arena-based allocs don't need to free and won't pass this. */ - upb_free(alloc, (void*)tabkey); - } - return true; - } else { - return false; - } + return rm(&t->t, strkey2(key, len), val, &tabkey, hash, &streql); } /* Iteration */ @@ -470,7 +618,7 @@ static void check(upb_inttable *t) { } bool upb_inttable_sizedinit(upb_inttable *t, size_t asize, int hsize_lg2, - upb_alloc *a) { + upb_arena *a) { size_t array_bytes; if (!init(&t->t, hsize_lg2, a)) return false; @@ -479,9 +627,8 @@ bool upb_inttable_sizedinit(upb_inttable *t, size_t asize, int hsize_lg2, t->array_size = UPB_MAX(1, asize); t->array_count = 0; array_bytes = t->array_size * sizeof(upb_value); - t->array = upb_malloc(a, array_bytes); + t->array = upb_arena_malloc(a, array_bytes); if (!t->array) { - uninit(&t->t, a); return false; } memset(mutable_array(t), 0xff, array_bytes); @@ -489,18 +636,12 @@ bool upb_inttable_sizedinit(upb_inttable *t, size_t asize, int hsize_lg2, return true; } -bool upb_inttable_init2(upb_inttable *t, upb_ctype_t ctype, upb_alloc *a) { - UPB_UNUSED(ctype); /* TODO(haberman): rm */ +bool upb_inttable_init(upb_inttable *t, upb_arena *a) { return upb_inttable_sizedinit(t, 0, 4, a); } -void upb_inttable_uninit2(upb_inttable *t, upb_alloc *a) { - uninit(&t->t, a); - upb_free(a, mutable_array(t)); -} - -bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val, - upb_alloc *a) { +bool upb_inttable_insert(upb_inttable *t, uintptr_t key, upb_value val, + upb_arena *a) { upb_tabval tabval; tabval.val = val.val; UPB_ASSERT(upb_arrhas(tabval)); /* This will reject (uint64_t)-1. Fix this. */ @@ -531,7 +672,6 @@ bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val, UPB_ASSERT(t->t.count == new_table.count); - uninit(&t->t, a); t->t = new_table; } insert(&t->t, intkey(key), key, val, upb_inthash(key), &inthash, &inteql); @@ -575,21 +715,7 @@ bool upb_inttable_remove(upb_inttable *t, uintptr_t key, upb_value *val) { return success; } -bool upb_inttable_insertptr2(upb_inttable *t, const void *key, upb_value val, - upb_alloc *a) { - return upb_inttable_insert2(t, (uintptr_t)key, val, a); -} - -bool upb_inttable_lookupptr(const upb_inttable *t, const void *key, - upb_value *v) { - return upb_inttable_lookup(t, (uintptr_t)key, v); -} - -bool upb_inttable_removeptr(upb_inttable *t, const void *key, upb_value *val) { - return upb_inttable_remove(t, (uintptr_t)key, val); -} - -void upb_inttable_compact2(upb_inttable *t, upb_alloc *a) { +void upb_inttable_compact(upb_inttable *t, upb_arena *a) { /* A power-of-two histogram of the table keys. */ size_t counts[UPB_MAXARRSIZE + 1] = {0}; @@ -637,12 +763,11 @@ void upb_inttable_compact2(upb_inttable *t, upb_alloc *a) { upb_inttable_begin(&i, t); for (; !upb_inttable_done(&i); upb_inttable_next(&i)) { uintptr_t k = upb_inttable_iter_key(&i); - upb_inttable_insert2(&new_t, k, upb_inttable_iter_value(&i), a); + upb_inttable_insert(&new_t, k, upb_inttable_iter_value(&i), a); } UPB_ASSERT(new_t.array_size == arr_size); UPB_ASSERT(new_t.t.size_lg2 == hashsize_lg2); } - upb_inttable_uninit2(t, a); *t = new_t; } diff --git a/third_party/upb/upb/table.int.h b/third_party/upb/upb/table_internal.h similarity index 60% rename from third_party/upb/upb/table.int.h rename to third_party/upb/upb/table_internal.h index 49caac463ee..13136868484 100644 --- a/third_party/upb/upb/table.int.h +++ b/third_party/upb/upb/table_internal.h @@ -1,21 +1,48 @@ /* -** upb_table -** -** This header is INTERNAL-ONLY! Its interfaces are not public or stable! -** This file defines very fast int->upb_value (inttable) and string->upb_value -** (strtable) hash tables. -** -** The table uses chained scatter with Brent's variation (inspired by the Lua -** implementation of hash tables). The hash function for strings is Austin -** Appleby's "MurmurHash." -** -** The inttable uses uintptr_t as its key, which guarantees it can be used to -** store pointers or integers of at least 32 bits (upb isn't really useful on -** systems where sizeof(void*) < 4). -** -** The table must be homogeneous (all values of the same type). In debug -** mode, we check this on insert and lookup. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * upb_table + * + * This header is INTERNAL-ONLY! Its interfaces are not public or stable! + * This file defines very fast int->upb_value (inttable) and string->upb_value + * (strtable) hash tables. + * + * The table uses chained scatter with Brent's variation (inspired by the Lua + * implementation of hash tables). The hash function for strings is Austin + * Appleby's "MurmurHash." + * + * The inttable uses uintptr_t as its key, which guarantees it can be used to + * store pointers or integers of at least 32 bits (upb isn't really useful on + * systems where sizeof(void*) < 4). + * + * The table must be homogeneous (all values of the same type). In debug + * mode, we check this on insert and lookup. + */ #ifndef UPB_TABLE_H_ #define UPB_TABLE_H_ @@ -33,47 +60,18 @@ extern "C" { /* upb_value ******************************************************************/ -/* A tagged union (stored untagged inside the table) so that we can check that - * clients calling table accessors are correctly typed without having to have - * an explosion of accessors. */ -typedef enum { - UPB_CTYPE_INT32 = 1, - UPB_CTYPE_INT64 = 2, - UPB_CTYPE_UINT32 = 3, - UPB_CTYPE_UINT64 = 4, - UPB_CTYPE_BOOL = 5, - UPB_CTYPE_CSTR = 6, - UPB_CTYPE_PTR = 7, - UPB_CTYPE_CONSTPTR = 8, - UPB_CTYPE_FPTR = 9, - UPB_CTYPE_FLOAT = 10, - UPB_CTYPE_DOUBLE = 11 -} upb_ctype_t; - typedef struct { uint64_t val; } upb_value; -/* Like strdup(), which isn't always available since it's not ANSI C. */ -char *upb_strdup(const char *s, upb_alloc *a); /* Variant that works with a length-delimited rather than NULL-delimited string, * as supported by strtable. */ -char *upb_strdup2(const char *s, size_t len, upb_alloc *a); - -UPB_INLINE char *upb_gstrdup(const char *s) { - return upb_strdup(s, &upb_alloc_global); -} +char *upb_strdup2(const char *s, size_t len, upb_arena *a); UPB_INLINE void _upb_value_setval(upb_value *v, uint64_t val) { v->val = val; } -UPB_INLINE upb_value _upb_value_val(uint64_t val) { - upb_value ret; - _upb_value_setval(&ret, val); - return ret; -} - /* For each value ctype, define the following set of functions: * * // Get/set an int32 from a upb_value. @@ -181,14 +179,7 @@ typedef struct { uint32_t mask; /* Mask to turn hash value -> bucket. */ uint32_t max_count; /* Max count before we hit our load limit. */ uint8_t size_lg2; /* Size of the hashtable part is 2^size_lg2 entries. */ - - /* Hash table entries. - * Making this const isn't entirely accurate; what we really want is for it to - * have the same const-ness as the table it's inside. But there's no way to - * declare that in C. So we have to make it const so that we can statically - * initialize const hash tables. Then we cast away const when we have to. - */ - const upb_tabent *entries; + upb_tabent *entries; } upb_table; typedef struct { @@ -202,8 +193,6 @@ typedef struct { size_t array_count; /* Array part number of elements. */ } upb_inttable; -#define UPB_ARRAY_EMPTYENT -1 - UPB_INLINE size_t upb_table_size(const upb_table *t) { if (t->size_lg2 == 0) return 0; @@ -216,48 +205,10 @@ UPB_INLINE bool upb_tabent_isempty(const upb_tabent *e) { return e->key == 0; } -/* Used by some of the unit tests for generic hashing functionality. */ -uint32_t upb_murmur_hash2(const void * key, size_t len, uint32_t seed); - -UPB_INLINE uintptr_t upb_intkey(uintptr_t key) { - return key; -} - -UPB_INLINE uint32_t upb_inthash(uintptr_t key) { - return (uint32_t)key; -} - -static const upb_tabent *upb_getentry(const upb_table *t, uint32_t hash) { - return t->entries + (hash & t->mask); -} - -UPB_INLINE bool upb_arrhas(upb_tabval key) { - return key.val != (uint64_t)-1; -} - /* Initialize and uninitialize a table, respectively. If memory allocation * failed, false is returned that the table is uninitialized. */ -bool upb_inttable_init2(upb_inttable *table, upb_ctype_t ctype, upb_alloc *a); -bool upb_strtable_init2(upb_strtable *table, upb_ctype_t ctype, - size_t expected_size, upb_alloc *a); -void upb_inttable_uninit2(upb_inttable *table, upb_alloc *a); -void upb_strtable_uninit2(upb_strtable *table, upb_alloc *a); - -UPB_INLINE bool upb_inttable_init(upb_inttable *table, upb_ctype_t ctype) { - return upb_inttable_init2(table, ctype, &upb_alloc_global); -} - -UPB_INLINE bool upb_strtable_init(upb_strtable *table, upb_ctype_t ctype) { - return upb_strtable_init2(table, ctype, 4, &upb_alloc_global); -} - -UPB_INLINE void upb_inttable_uninit(upb_inttable *table) { - upb_inttable_uninit2(table, &upb_alloc_global); -} - -UPB_INLINE void upb_strtable_uninit(upb_strtable *table) { - upb_strtable_uninit2(table, &upb_alloc_global); -} +bool upb_inttable_init(upb_inttable *table, upb_arena *a); +bool upb_strtable_init(upb_strtable *table, size_t expected_size, upb_arena *a); /* Returns the number of values in the table. */ size_t upb_inttable_count(const upb_inttable *t); @@ -265,12 +216,6 @@ UPB_INLINE size_t upb_strtable_count(const upb_strtable *t) { return t->t.count; } -void upb_inttable_packedsize(const upb_inttable *t, size_t *size); -void upb_strtable_packedsize(const upb_strtable *t, size_t *size); -upb_inttable *upb_inttable_pack(const upb_inttable *t, void *p, size_t *ofs, - size_t size); -upb_strtable *upb_strtable_pack(const upb_strtable *t, void *p, size_t *ofs, - size_t size); void upb_strtable_clear(upb_strtable *t); /* Inserts the given key into the hashtable with the given value. The key must @@ -280,26 +225,10 @@ void upb_strtable_clear(upb_strtable *t); * * If a table resize was required but memory allocation failed, false is * returned and the table is unchanged. */ -bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val, - upb_alloc *a); -bool upb_strtable_insert3(upb_strtable *t, const char *key, size_t len, - upb_value val, upb_alloc *a); - -UPB_INLINE bool upb_inttable_insert(upb_inttable *t, uintptr_t key, - upb_value val) { - return upb_inttable_insert2(t, key, val, &upb_alloc_global); -} - -UPB_INLINE bool upb_strtable_insert2(upb_strtable *t, const char *key, - size_t len, upb_value val) { - return upb_strtable_insert3(t, key, len, val, &upb_alloc_global); -} - -/* For NULL-terminated strings. */ -UPB_INLINE bool upb_strtable_insert(upb_strtable *t, const char *key, - upb_value val) { - return upb_strtable_insert2(t, key, strlen(key), val); -} +bool upb_inttable_insert(upb_inttable *t, uintptr_t key, upb_value val, + upb_arena *a); +bool upb_strtable_insert(upb_strtable *t, const char *key, size_t len, + upb_value val, upb_arena *a); /* Looks up key in this table, returning "true" if the key was found. * If v is non-NULL, copies the value for this key into *v. */ @@ -316,74 +245,21 @@ UPB_INLINE bool upb_strtable_lookup(const upb_strtable *t, const char *key, /* Removes an item from the table. Returns true if the remove was successful, * and stores the removed item in *val if non-NULL. */ bool upb_inttable_remove(upb_inttable *t, uintptr_t key, upb_value *val); -bool upb_strtable_remove3(upb_strtable *t, const char *key, size_t len, - upb_value *val, upb_alloc *alloc); - -UPB_INLINE bool upb_strtable_remove2(upb_strtable *t, const char *key, - size_t len, upb_value *val) { - return upb_strtable_remove3(t, key, len, val, &upb_alloc_global); -} - -/* For NULL-terminated strings. */ -UPB_INLINE bool upb_strtable_remove(upb_strtable *t, const char *key, - upb_value *v) { - return upb_strtable_remove2(t, key, strlen(key), v); -} +bool upb_strtable_remove(upb_strtable *t, const char *key, size_t len, + upb_value *val); /* Updates an existing entry in an inttable. If the entry does not exist, * returns false and does nothing. Unlike insert/remove, this does not * invalidate iterators. */ bool upb_inttable_replace(upb_inttable *t, uintptr_t key, upb_value val); -/* Convenience routines for inttables with pointer keys. */ -bool upb_inttable_insertptr2(upb_inttable *t, const void *key, upb_value val, - upb_alloc *a); -bool upb_inttable_removeptr(upb_inttable *t, const void *key, upb_value *val); -bool upb_inttable_lookupptr( - const upb_inttable *t, const void *key, upb_value *val); - -UPB_INLINE bool upb_inttable_insertptr(upb_inttable *t, const void *key, - upb_value val) { - return upb_inttable_insertptr2(t, key, val, &upb_alloc_global); -} - /* Optimizes the table for the current set of entries, for both memory use and * lookup time. Client should call this after all entries have been inserted; * inserting more entries is legal, but will likely require a table resize. */ -void upb_inttable_compact2(upb_inttable *t, upb_alloc *a); - -UPB_INLINE void upb_inttable_compact(upb_inttable *t) { - upb_inttable_compact2(t, &upb_alloc_global); -} - -/* A special-case inlinable version of the lookup routine for 32-bit - * integers. */ -UPB_INLINE bool upb_inttable_lookup32(const upb_inttable *t, uint32_t key, - upb_value *v) { - *v = upb_value_int32(0); /* Silence compiler warnings. */ - if (key < t->array_size) { - upb_tabval arrval = t->array[key]; - if (upb_arrhas(arrval)) { - _upb_value_setval(v, arrval.val); - return true; - } else { - return false; - } - } else { - const upb_tabent *e; - if (t->t.entries == NULL) return false; - for (e = upb_getentry(&t->t, upb_inthash(key)); true; e = e->next) { - if ((uint32_t)e->key == key) { - _upb_value_setval(v, e->val.val); - return true; - } - if (e->next == NULL) return false; - } - } -} +void upb_inttable_compact(upb_inttable *t, upb_arena *a); /* Exposed for testing only. */ -bool upb_strtable_resize(upb_strtable *t, size_t size_lg2, upb_alloc *a); +bool upb_strtable_resize(upb_strtable *t, size_t size_lg2, upb_arena *a); /* Iterators ******************************************************************/ diff --git a/third_party/upb/upb/text_encode.c b/third_party/upb/upb/text_encode.c index 028cc29e090..6ea2527b5d9 100644 --- a/third_party/upb/upb/text_encode.c +++ b/third_party/upb/upb/text_encode.c @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "upb/text_encode.h" @@ -28,8 +54,10 @@ static void txtenc_putbytes(txtenc *e, const void *data, size_t len) { memcpy(e->ptr, data, len); e->ptr += len; } else { - if (have) memcpy(e->ptr, data, have); - e->ptr += have; + if (have) { + memcpy(e->ptr, data, have); + e->ptr += have; + } e->overflow += (len - have); } } @@ -50,7 +78,7 @@ static void txtenc_printf(txtenc *e, const char *fmt, ...) { if (UPB_LIKELY(have > n)) { e->ptr += n; } else { - e->ptr += have; + e->ptr = UPB_PTRADD(e->ptr, have); e->overflow += (n - have); } } @@ -408,7 +436,7 @@ size_t upb_text_encode(const upb_msg *msg, const upb_msgdef *m, e.buf = buf; e.ptr = buf; - e.end = buf + size; + e.end = UPB_PTRADD(buf, size); e.overflow = 0; e.indent_depth = 0; e.options = options; diff --git a/third_party/upb/upb/text_encode.h b/third_party/upb/upb/text_encode.h index 4ad3d1c4d74..9456082a381 100644 --- a/third_party/upb/upb/text_encode.h +++ b/third_party/upb/upb/text_encode.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPB_TEXTENCODE_H_ #define UPB_TEXTENCODE_H_ diff --git a/third_party/upb/upb/upb.c b/third_party/upb/upb/upb.c index a12656973d6..fd0290b3b18 100644 --- a/third_party/upb/upb/upb.c +++ b/third_party/upb/upb/upb.c @@ -1,5 +1,31 @@ - -#include "upb/upb.int.h" +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "upb/upb_internal.h" #include #include @@ -67,6 +93,19 @@ static void *upb_global_allocfunc(upb_alloc *alloc, void *ptr, size_t oldsize, } } +static uint32_t *upb_cleanup_pointer(uintptr_t cleanup_metadata) { + return (uint32_t *)(cleanup_metadata & ~0x1); +} + +static bool upb_cleanup_has_initial_block(uintptr_t cleanup_metadata) { + return cleanup_metadata & 0x1; +} + +static uintptr_t upb_cleanup_metadata(uint32_t *cleanup, + bool has_initial_block) { + return (uintptr_t)cleanup | has_initial_block; +} + upb_alloc upb_alloc_global = {&upb_global_allocfunc}; /* upb_arena ******************************************************************/ @@ -112,7 +151,8 @@ static void upb_arena_addblock(upb_arena *a, upb_arena *root, void *ptr, a->head.ptr = UPB_PTR_AT(block, memblock_reserve, char); a->head.end = UPB_PTR_AT(block, size, char); - a->cleanups = &block->cleanups; + a->cleanup_metadata = upb_cleanup_metadata( + &block->cleanups, upb_cleanup_has_initial_block(a->cleanup_metadata)); UPB_POISON_MEMORY_REGION(a->head.ptr, a->head.end - a->head.ptr); } @@ -160,6 +200,7 @@ upb_arena *arena_initslow(void *mem, size_t n, upb_alloc *alloc) { a->refcount = 1; a->freelist = NULL; a->freelist_tail = NULL; + a->cleanup_metadata = upb_cleanup_metadata(NULL, false); upb_arena_addblock(a, a, mem, n); @@ -187,7 +228,7 @@ upb_arena *upb_arena_init(void *mem, size_t n, upb_alloc *alloc) { a->head.ptr = mem; a->head.end = UPB_PTR_AT(mem, n - sizeof(*a), char); a->freelist = NULL; - a->cleanups = NULL; + a->cleanup_metadata = upb_cleanup_metadata(NULL, true); return a; } @@ -222,15 +263,17 @@ void upb_arena_free(upb_arena *a) { bool upb_arena_addcleanup(upb_arena *a, void *ud, upb_cleanup_func *func) { cleanup_ent *ent; + uint32_t* cleanups = upb_cleanup_pointer(a->cleanup_metadata); - if (!a->cleanups || _upb_arenahas(a) < sizeof(cleanup_ent)) { + if (!cleanups || _upb_arenahas(a) < sizeof(cleanup_ent)) { if (!upb_arena_allocblock(a, 128)) return false; /* Out of memory. */ UPB_ASSERT(_upb_arenahas(a) >= sizeof(cleanup_ent)); + cleanups = upb_cleanup_pointer(a->cleanup_metadata); } a->head.end -= sizeof(cleanup_ent); ent = (cleanup_ent*)a->head.end; - (*a->cleanups)++; + (*cleanups)++; UPB_UNPOISON_MEMORY_REGION(ent, sizeof(cleanup_ent)); ent->cleanup = func; @@ -239,11 +282,18 @@ bool upb_arena_addcleanup(upb_arena *a, void *ud, upb_cleanup_func *func) { return true; } -void upb_arena_fuse(upb_arena *a1, upb_arena *a2) { +bool upb_arena_fuse(upb_arena *a1, upb_arena *a2) { upb_arena *r1 = arena_findroot(a1); upb_arena *r2 = arena_findroot(a2); - if (r1 == r2) return; /* Already fused. */ + if (r1 == r2) return true; /* Already fused. */ + + /* Do not fuse initial blocks since we cannot lifetime extend them. */ + if (upb_cleanup_has_initial_block(r1->cleanup_metadata)) return false; + if (upb_cleanup_has_initial_block(r2->cleanup_metadata)) return false; + + /* Only allow fuse with a common allocator */ + if (r1->block_alloc != r2->block_alloc) return false; /* We want to join the smaller tree to the larger tree. * So swap first if they are backwards. */ @@ -261,4 +311,5 @@ void upb_arena_fuse(upb_arena *a1, upb_arena *a2) { r1->freelist = r2->freelist; } r2->parent = r1; + return true; } diff --git a/third_party/upb/upb/upb.h b/third_party/upb/upb/upb.h index 11c0e4dc99a..bc0edf9dc10 100644 --- a/third_party/upb/upb/upb.h +++ b/third_party/upb/upb/upb.h @@ -1,6 +1,33 @@ /* -** This file contains shared definitions that are widely used across upb. -*/ + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file contains shared definitions that are widely used across upb. + */ #ifndef UPB_H_ #define UPB_H_ @@ -33,9 +60,12 @@ bool upb_ok(const upb_status *status); /* These are no-op if |status| is NULL. */ void upb_status_clear(upb_status *status); void upb_status_seterrmsg(upb_status *status, const char *msg); -void upb_status_seterrf(upb_status *status, const char *fmt, ...); -void upb_status_vseterrf(upb_status *status, const char *fmt, va_list args); -void upb_status_vappenderrf(upb_status *status, const char *fmt, va_list args); +void upb_status_seterrf(upb_status *status, const char *fmt, ...) + UPB_PRINTF(2, 3); +void upb_status_vseterrf(upb_status *status, const char *fmt, va_list args) + UPB_PRINTF(2, 0); +void upb_status_vappenderrf(upb_status *status, const char *fmt, va_list args) + UPB_PRINTF(2, 0); /** upb_strview ************************************************************/ @@ -156,7 +186,7 @@ typedef struct { upb_arena *upb_arena_init(void *mem, size_t n, upb_alloc *alloc); void upb_arena_free(upb_arena *a); bool upb_arena_addcleanup(upb_arena *a, void *ud, upb_cleanup_func *func); -void upb_arena_fuse(upb_arena *a, upb_arena *b); +bool upb_arena_fuse(upb_arena *a, upb_arena *b); void *_upb_arena_slowmalloc(upb_arena *a, size_t size); UPB_INLINE upb_alloc *upb_arena_alloc(upb_arena *a) { return (upb_alloc*)a; } diff --git a/third_party/upb/upb/upb.hpp b/third_party/upb/upb/upb.hpp index b7b99761fb2..361053745ac 100644 --- a/third_party/upb/upb/upb.hpp +++ b/third_party/upb/upb/upb.hpp @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef UPB_HPP_ #define UPB_HPP_ diff --git a/third_party/upb/upb/upb.int.h b/third_party/upb/upb/upb.int.h deleted file mode 100644 index b857560e4e8..00000000000 --- a/third_party/upb/upb/upb.int.h +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef UPB_INT_H_ -#define UPB_INT_H_ - -#include "upb/upb.h" - -struct mem_block; -typedef struct mem_block mem_block; - -struct upb_arena { - _upb_arena_head head; - uint32_t *cleanups; - - /* Allocator to allocate arena blocks. We are responsible for freeing these - * when we are destroyed. */ - upb_alloc *block_alloc; - uint32_t last_size; - - /* When multiple arenas are fused together, each arena points to a parent - * arena (root points to itself). The root tracks how many live arenas - * reference it. */ - uint32_t refcount; /* Only used when a->parent == a */ - struct upb_arena *parent; - - /* Linked list of blocks to free/cleanup. */ - mem_block *freelist, *freelist_tail; -}; - -#endif /* UPB_INT_H_ */ diff --git a/third_party/upb/upb/upb_internal.h b/third_party/upb/upb/upb_internal.h new file mode 100644 index 00000000000..ae50678b5fa --- /dev/null +++ b/third_party/upb/upb/upb_internal.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef UPB_INT_H_ +#define UPB_INT_H_ + +#include "upb/upb.h" + +struct mem_block; +typedef struct mem_block mem_block; + +struct upb_arena { + _upb_arena_head head; + /* Stores cleanup metadata for this arena. + * - a pointer to the current cleanup counter. + * - a boolean indicating if there is an unowned initial block. */ + uintptr_t cleanup_metadata; + + /* Allocator to allocate arena blocks. We are responsible for freeing these + * when we are destroyed. */ + upb_alloc *block_alloc; + uint32_t last_size; + + /* When multiple arenas are fused together, each arena points to a parent + * arena (root points to itself). The root tracks how many live arenas + * reference it. */ + uint32_t refcount; /* Only used when a->parent == a */ + struct upb_arena *parent; + + /* Linked list of blocks to free/cleanup. */ + mem_block *freelist, *freelist_tail; +}; + +#endif /* UPB_INT_H_ */ diff --git a/third_party/upb/upbc/BUILD b/third_party/upb/upbc/BUILD index 3b7d69bd78e..29bb3983c2a 100644 --- a/third_party/upb/upbc/BUILD +++ b/third_party/upb/upbc/BUILD @@ -1,3 +1,28 @@ +# Copyright (c) 2009-2021, Google LLC +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google LLC nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + load( "//bazel:build_defs.bzl", "UPB_DEFAULT_CPPOPTS", diff --git a/third_party/upb/upbc/common.cc b/third_party/upb/upbc/common.cc index c1b30a3401a..d2df929c9d7 100644 --- a/third_party/upb/upbc/common.cc +++ b/third_party/upb/upbc/common.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "absl/strings/str_replace.h" #include "upbc/common.h" @@ -18,7 +42,7 @@ void AddMessages(const protobuf::Descriptor* message, } // namespace std::string StripExtension(absl::string_view fname) { - size_t lastdot = fname.find_last_of("."); + size_t lastdot = fname.find_last_of('.'); if (lastdot == std::string::npos) { return std::string(fname); } diff --git a/third_party/upb/upbc/common.h b/third_party/upb/upbc/common.h index 5825786fb2f..1867ae0331a 100644 --- a/third_party/upb/upbc/common.h +++ b/third_party/upb/upbc/common.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPBC_COMMON_H #define UPBC_COMMON_H diff --git a/third_party/upb/upbc/message_layout.cc b/third_party/upb/upbc/message_layout.cc index 3d35448bc83..1c5cd0b167f 100644 --- a/third_party/upb/upbc/message_layout.cc +++ b/third_party/upb/upbc/message_layout.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "upbc/message_layout.h" #include "google/protobuf/descriptor.pb.h" diff --git a/third_party/upb/upbc/message_layout.h b/third_party/upb/upbc/message_layout.h index f257a963dad..e4e5d74e641 100644 --- a/third_party/upb/upbc/message_layout.h +++ b/third_party/upb/upbc/message_layout.h @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2009-2021, Google LLC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Google LLC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UPBC_MESSAGE_LAYOUT_H #define UPBC_MESSAGE_LAYOUT_H diff --git a/third_party/upb/upbc/protoc-gen-upb.cc b/third_party/upb/upbc/protoc-gen-upb.cc index e099ad4649a..a68a691bd8b 100644 --- a/third_party/upb/upbc/protoc-gen-upb.cc +++ b/third_party/upb/upbc/protoc-gen-upb.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include @@ -219,7 +243,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output MessageLayout layout(message); output("/* $0 */\n\n", message->full_name()); - std::string msgname = ToCIdent(message->full_name()); + std::string msg_name = ToCIdent(message->full_name()); if (!message->options().map_entry()) { output( @@ -229,13 +253,19 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output "UPB_INLINE $0 *$0_parse(const char *buf, size_t size,\n" " upb_arena *arena) {\n" " $0 *ret = $0_new(arena);\n" - " return (ret && upb_decode(buf, size, ret, &$1, arena)) ? ret : NULL;\n" + " if (!ret) return NULL;\n" + " if (!upb_decode(buf, size, ret, &$1, arena)) return NULL;\n" + " return ret;\n" "}\n" "UPB_INLINE $0 *$0_parse_ex(const char *buf, size_t size,\n" - " upb_arena *arena, int options) {\n" + " const upb_extreg *extreg, int options,\n" + " upb_arena *arena) {\n" " $0 *ret = $0_new(arena);\n" - " return (ret && _upb_decode(buf, size, ret, &$1, arena, options))\n" - " ? ret : NULL;\n" + " if (!ret) return NULL;\n" + " if (!_upb_decode(buf, size, ret, &$1, extreg, options, arena)) {\n" + " return NULL;\n" + " }\n" + " return ret;\n" "}\n" "UPB_INLINE char *$0_serialize(const $0 *msg, upb_arena *arena, size_t " "*len) {\n" @@ -261,7 +291,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output "UPB_INLINE $0_oneofcases $1_$2_case(const $1* msg) { " "return ($0_oneofcases)*UPB_PTR_AT(msg, $3, int32_t); }\n" "\n", - fullname, msgname, oneof->name(), + fullname, msg_name, oneof->name(), GetSizeInit(layout.GetOneofCaseOffset(oneof))); } @@ -273,12 +303,12 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE bool $0_has_$1(const $0 *msg) { " "return _upb_hasbit(msg, $2); }\n", - msgname, field->name(), layout.GetHasbitIndex(field)); + msg_name, field->name(), layout.GetHasbitIndex(field)); } else if (field->real_containing_oneof()) { output( "UPB_INLINE bool $0_has_$1(const $0 *msg) { " "return _upb_getoneofcase(msg, $2) == $3; }\n", - msgname, field->name(), + msg_name, field->name(), GetSizeInit( layout.GetOneofCaseOffset(field->real_containing_oneof())), field->number()); @@ -286,7 +316,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE bool $0_has_$1(const $0 *msg) { " "return _upb_has_submsg_nohasbit(msg, $2); }\n", - msgname, field->name(), GetSizeInit(layout.GetFieldOffset(field))); + msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); } // Generate getter. @@ -297,11 +327,11 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE size_t $0_$1_size(const $0 *msg) {" "return _upb_msg_map_size(msg, $2); }\n", - msgname, field->name(), GetSizeInit(layout.GetFieldOffset(field))); + msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); output( "UPB_INLINE bool $0_$1_get(const $0 *msg, $2 key, $3 *val) { " "return _upb_msg_map_get(msg, $4, &key, $5, val, $6); }\n", - msgname, field->name(), CType(key), CType(val), + msg_name, field->name(), CType(key), CType(val), GetSizeInit(layout.GetFieldOffset(field)), key->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_STRING ? "0" @@ -312,7 +342,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE $0 $1_$2_next(const $1 *msg, size_t* iter) { " "return ($0)_upb_msg_map_next(msg, $3, iter); }\n", - CTypeConst(field), msgname, field->name(), + CTypeConst(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); } else if (message->options().map_entry()) { output( @@ -321,7 +351,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output " _upb_msg_map_$2(msg, &ret, $4);\n" " return ret;\n" "}\n", - CTypeConst(field), msgname, field->name(), CType(field), + CTypeConst(field), msg_name, field->name(), CType(field), field->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_STRING ? "0" : "sizeof(ret)"); @@ -329,13 +359,13 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE $0 const* $1_$2(const $1 *msg, size_t *len) { " "return ($0 const*)_upb_array_accessor(msg, $3, len); }\n", - CTypeConst(field), msgname, field->name(), + CTypeConst(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); } else if (field->real_containing_oneof()) { output( "UPB_INLINE $0 $1_$2(const $1 *msg) { " "return UPB_READ_ONEOF(msg, $0, $3, $4, $5, $6); }\n", - CTypeConst(field), msgname, field->name(), + CTypeConst(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field)), GetSizeInit(layout.GetOneofCaseOffset(field->real_containing_oneof())), field->number(), FieldDefault(field)); @@ -343,7 +373,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE $0 $1_$2(const $1 *msg) { " "return *UPB_PTR_AT(msg, $3, $0); }\n", - CTypeConst(field), msgname, field->name(), + CTypeConst(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); } } @@ -360,12 +390,12 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output const protobuf::FieldDescriptor* val = entry->FindFieldByNumber(2); output( "UPB_INLINE void $0_$1_clear($0 *msg) { _upb_msg_map_clear(msg, $2); }\n", - msgname, field->name(), + msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); output( "UPB_INLINE bool $0_$1_set($0 *msg, $2 key, $3 val, upb_arena *a) { " "return _upb_msg_map_set(msg, $4, &key, $5, &val, $6, a); }\n", - msgname, field->name(), CType(key), CType(val), + msg_name, field->name(), CType(key), CType(val), GetSizeInit(layout.GetFieldOffset(field)), key->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_STRING ? "0" @@ -376,7 +406,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE bool $0_$1_delete($0 *msg, $2 key) { " "return _upb_msg_map_delete(msg, $3, &key, $4); }\n", - msgname, field->name(), CType(key), + msg_name, field->name(), CType(key), GetSizeInit(layout.GetFieldOffset(field)), key->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_STRING ? "0" @@ -384,21 +414,21 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output output( "UPB_INLINE $0 $1_$2_nextmutable($1 *msg, size_t* iter) { " "return ($0)_upb_msg_map_next(msg, $3, iter); }\n", - CType(field), msgname, field->name(), + CType(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); } else if (field->is_repeated()) { output( "UPB_INLINE $0* $1_mutable_$2($1 *msg, size_t *len) {\n" " return ($0*)_upb_array_mutable_accessor(msg, $3, len);\n" "}\n", - CType(field), msgname, field->name(), + CType(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field))); output( "UPB_INLINE $0* $1_resize_$2($1 *msg, size_t len, " "upb_arena *arena) {\n" " return ($0*)_upb_array_resize_accessor2(msg, $3, len, $4, arena);\n" "}\n", - CType(field), msgname, field->name(), + CType(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field)), SizeLg2(field)); if (field->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_MESSAGE) { @@ -410,7 +440,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output " if (!ok) return NULL;\n" " return sub;\n" "}\n", - MessageName(field->message_type()), msgname, field->name(), + MessageName(field->message_type()), msg_name, field->name(), MessageInit(field->message_type()), GetSizeInit(layout.GetFieldOffset(field)), SizeLg2(field)); @@ -420,7 +450,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output " return _upb_array_append_accessor2(msg, $3, $4, &val,\n" " arena);\n" "}\n", - CType(field), msgname, field->name(), + CType(field), msg_name, field->name(), GetSizeInit(layout.GetFieldOffset(field)), SizeLg2(field)); } @@ -433,7 +463,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output // The common function signature for all setters. Varying implementations // follow. - output("UPB_INLINE void $0_set_$1($0 *msg, $2 value) {\n", msgname, + output("UPB_INLINE void $0_set_$1($0 *msg, $2 value) {\n", msg_name, field->name(), CType(field)); if (message->options().map_entry()) { @@ -473,7 +503,7 @@ void GenerateMessageInHeader(const protobuf::Descriptor* message, Output& output " }\n" " return sub;\n" "}\n", - MessageName(field->message_type()), msgname, field->name(), + MessageName(field->message_type()), msg_name, field->name(), MessageInit(field->message_type())); } } @@ -487,7 +517,7 @@ void WriteHeader(const protobuf::FileDescriptor* file, Output& output) { output( "#ifndef $0_UPB_H_\n" "#define $0_UPB_H_\n\n" - "#include \"upb/msg.h\"\n" + "#include \"upb/msg_internal.h\"\n" "#include \"upb/decode.h\"\n" "#include \"upb/decode_fast.h\"\n" "#include \"upb/encode.h\"\n\n", @@ -512,7 +542,7 @@ void WriteHeader(const protobuf::FileDescriptor* file, Output& output) { "#endif\n" "\n"); - std::vector this_file_messages = + const std::vector this_file_messages = SortedMessages(file); // Forward-declare types defined in this file. @@ -530,7 +560,7 @@ void WriteHeader(const protobuf::FileDescriptor* file, Output& output) { // Order by full name for consistent ordering. std::map forward_messages; - for (auto message : SortedMessages(file)) { + for (auto* message : this_file_messages) { for (int i = 0; i < message->field_count(); i++) { const protobuf::FieldDescriptor* field = message->field(i); if (field->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_MESSAGE && @@ -819,130 +849,166 @@ std::vector FastDecodeTable(const protobuf::Descriptor* message, return table; } -void WriteSource(const protobuf::FileDescriptor* file, Output& output, - bool fasttable_enabled) { - EmitFileWarning(file, output); +void WriteField(const protobuf::FieldDescriptor* field, + absl::string_view offset, absl::string_view presence, + int submsg_index, Output& output) { + std::string mode; + if (field->is_map()) { + mode = "_UPB_MODE_MAP"; + } else if (field->is_repeated()) { + mode = "_UPB_MODE_ARRAY"; + } else { + mode = "_UPB_MODE_SCALAR"; + } - output( - "#include \n" - "#include \"upb/msg.h\"\n" - "#include \"$0\"\n", - HeaderFilename(file->name())); + if (field->is_packed()) { + absl::StrAppend(&mode, " | _UPB_MODE_IS_PACKED"); + } - for (int i = 0; i < file->dependency_count(); i++) { - output("#include \"$0\"\n", HeaderFilename(file->dependency(i)->name())); + output("{$0, $1, $2, $3, $4, $5}", field->number(), offset, presence, + submsg_index, TableDescriptorType(field), mode); +} + +// Writes a single field into a .upb.c source file. +void WriteMessageField(const protobuf::FieldDescriptor* field, + const MessageLayout& layout, int submsg_index, + Output& output) { + std::string presence = "0"; + + if (MessageLayout::HasHasbit(field)) { + int index = layout.GetHasbitIndex(field); + assert(index != 0); + presence = absl::StrCat(index); + } else if (field->real_containing_oneof()) { + MessageLayout::Size case_offset = + layout.GetOneofCaseOffset(field->real_containing_oneof()); + + // We encode as negative to distinguish from hasbits. + case_offset.size32 = ~case_offset.size32; + case_offset.size64 = ~case_offset.size64; + assert(case_offset.size32 < 0); + assert(case_offset.size64 < 0); + presence = GetSizeInit(case_offset); } - output( - "\n" - "#include \"upb/port_def.inc\"\n" - "\n"); + output(" "); + WriteField(field, GetSizeInit(layout.GetFieldOffset(field)), presence, + submsg_index, output); + output(",\n"); +} +// Writes a single message into a .upb.c source file. +void WriteMessage(const protobuf::Descriptor* message, Output& output, + bool fasttable_enabled) { + std::string msg_name = ToCIdent(message->full_name()); + std::string fields_array_ref = "NULL"; + std::string submsgs_array_ref = "NULL"; + uint8_t dense_below = 0; + const int dense_below_max = std::numeric_limits::max(); + MessageLayout layout(message); + SubmsgArray submsg_array(message); + + if (!submsg_array.submsgs().empty()) { + // TODO(haberman): could save a little bit of space by only generating a + // "submsgs" array for every strongly-connected component. + std::string submsgs_array_name = msg_name + "_submsgs"; + submsgs_array_ref = "&" + submsgs_array_name + "[0]"; + output("static const upb_msglayout *const $0[$1] = {\n", + submsgs_array_name, submsg_array.submsgs().size()); + + for (auto submsg : submsg_array.submsgs()) { + output(" &$0,\n", MessageInit(submsg)); + } - for (auto message : SortedMessages(file)) { - std::string msgname = ToCIdent(message->full_name()); - std::string fields_array_ref = "NULL"; - std::string submsgs_array_ref = "NULL"; - MessageLayout layout(message); - SubmsgArray submsg_array(message); + output("};\n\n"); + } - if (!submsg_array.submsgs().empty()) { - // TODO(haberman): could save a little bit of space by only generating a - // "submsgs" array for every strongly-connected component. - std::string submsgs_array_name = msgname + "_submsgs"; - submsgs_array_ref = "&" + submsgs_array_name + "[0]"; - output("static const upb_msglayout *const $0[$1] = {\n", - submsgs_array_name, submsg_array.submsgs().size()); + std::vector field_number_order = + FieldNumberOrder(message); + if (!field_number_order.empty()) { + std::string fields_array_name = msg_name + "__fields"; + fields_array_ref = "&" + fields_array_name + "[0]"; + output("static const upb_msglayout_field $0[$1] = {\n", + fields_array_name, field_number_order.size()); + for (int i = 0; i < static_cast(field_number_order.size()); i++) { + auto field = field_number_order[i]; + int submsg_index = 0; + + if (i < dense_below_max && field->number() == i + 1 && + (i == 0 || field_number_order[i - 1]->number() == i)) { + dense_below = i + 1; + } - for (auto submsg : submsg_array.submsgs()) { - output(" &$0,\n", MessageInit(submsg)); + if (field->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_MESSAGE) { + submsg_index = submsg_array.GetIndex(field); } - output("};\n\n"); + WriteMessageField(field, layout, submsg_index, output); } + output("};\n\n"); + } - std::vector field_number_order = - FieldNumberOrder(message); - if (!field_number_order.empty()) { - std::string fields_array_name = msgname + "__fields"; - fields_array_ref = "&" + fields_array_name + "[0]"; - output("static const upb_msglayout_field $0[$1] = {\n", - fields_array_name, field_number_order.size()); - for (auto field : field_number_order) { - int submsg_index = 0; - std::string presence = "0"; - - if (field->cpp_type() == protobuf::FieldDescriptor::CPPTYPE_MESSAGE) { - submsg_index = submsg_array.GetIndex(field); - } + std::vector table; + uint8_t table_mask = -1; - if (MessageLayout::HasHasbit(field)) { - int index = layout.GetHasbitIndex(field); - assert(index != 0); - presence = absl::StrCat(index); - } else if (field->real_containing_oneof()) { - MessageLayout::Size case_offset = - layout.GetOneofCaseOffset(field->real_containing_oneof()); - - // We encode as negative to distinguish from hasbits. - case_offset.size32 = ~case_offset.size32; - case_offset.size64 = ~case_offset.size64; - assert(case_offset.size32 < 0); - assert(case_offset.size64 < 0); - presence = GetSizeInit(case_offset); - } + if (fasttable_enabled) { + table = FastDecodeTable(message, layout); + } - std::string label; - if (field->is_map()) { - label = "_UPB_LABEL_MAP"; - } else if (field->is_packed()) { - label = "_UPB_LABEL_PACKED"; - } else { - label = absl::StrCat(field->label()); - } + if (table.size() > 1) { + assert((table.size() & (table.size() - 1)) == 0); + table_mask = (table.size() - 1) << 3; + } - output(" {$0, $1, $2, $3, $4, $5},\n", - field->number(), - GetSizeInit(layout.GetFieldOffset(field)), - presence, - submsg_index, - TableDescriptorType(field), - label); - } - output("};\n\n"); + output("const upb_msglayout $0 = {\n", MessageInit(message)); + output(" $0,\n", submsgs_array_ref); + output(" $0,\n", fields_array_ref); + output(" $0, $1, $2, $3, $4,\n", GetSizeInit(layout.message_size()), + field_number_order.size(), + "false", // TODO: extendable + dense_below, + table_mask + ); + if (!table.empty()) { + output(" UPB_FASTTABLE_INIT({\n"); + for (const auto& ent : table) { + output(" {0x$1, &$0},\n", ent.first, + absl::StrCat(absl::Hex(ent.second, absl::kZeroPad16))); } + output(" }),\n"); + } + output("};\n\n"); +} - std::vector table; - uint8_t table_mask = -1; +void WriteMessages(const protobuf::FileDescriptor* file, Output& output, + bool fasttable_enabled) { + for (auto* message : SortedMessages(file)) { + WriteMessage(message, output, fasttable_enabled); + } +} - if (fasttable_enabled) { - table = FastDecodeTable(message, layout); - } +// Writes a .upb.c source file. +void WriteSource(const protobuf::FileDescriptor* file, Output& output, + bool fasttable_enabled) { + EmitFileWarning(file, output); - if (table.size() > 1) { - assert((table.size() & (table.size() - 1)) == 0); - table_mask = (table.size() - 1) << 3; - } + output( + "#include \n" + "#include \"upb/msg_internal.h\"\n" + "#include \"$0\"\n", + HeaderFilename(file->name())); - output("const upb_msglayout $0 = {\n", MessageInit(message)); - output(" $0,\n", submsgs_array_ref); - output(" $0,\n", fields_array_ref); - output(" $0, $1, $2, $3,\n", GetSizeInit(layout.message_size()), - field_number_order.size(), - "false", // TODO: extendable - table_mask - ); - if (!table.empty()) { - output(" UPB_FASTTABLE_INIT({\n"); - for (const auto& ent : table) { - output(" {0x$1, &$0},\n", ent.first, - absl::StrCat(absl::Hex(ent.second, absl::kZeroPad16))); - } - output(" }),\n"); - } - output("};\n\n"); + for (int i = 0; i < file->dependency_count(); i++) { + output("#include \"$0\"\n", HeaderFilename(file->dependency(i)->name())); } + output( + "\n" + "#include \"upb/port_def.inc\"\n" + "\n"); + + WriteMessages(file, output, fasttable_enabled); + output("#include \"upb/port_undef.inc\"\n"); output("\n"); } diff --git a/third_party/upb/upbc/protoc-gen-upbdefs.cc b/third_party/upb/upbc/protoc-gen-upbdefs.cc index f51ae0792f9..4ec4163f607 100644 --- a/third_party/upb/upbc/protoc-gen-upbdefs.cc +++ b/third_party/upb/upbc/protoc-gen-upbdefs.cc @@ -1,3 +1,27 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include