grpc 1.80.0 → 1.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +301 -292
- data/include/grpc/context_types.h +28 -0
- data/include/grpc/credentials.h +11 -0
- data/include/grpc/grpc_security_constants.h +12 -0
- data/include/grpc/module.modulemap +1 -0
- data/src/core/call/call_spine.h +29 -6
- data/src/core/call/client_call.cc +2 -2
- data/src/core/call/client_call.h +6 -0
- data/src/core/call/interception_chain.h +12 -1
- data/src/core/call/metadata_batch.h +37 -2
- data/src/core/call/server_call.h +4 -0
- data/src/core/client_channel/client_channel.cc +2 -1
- data/src/core/client_channel/client_channel_filter.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +9 -2
- data/src/core/credentials/transport/tls/ssl_utils.cc +4 -0
- data/src/core/credentials/transport/tls/ssl_utils.h +3 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +3 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -0
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -8
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +112 -155
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +38 -37
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +11 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +30 -37
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +74 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/security_frame.h +1 -1
- data/src/core/ext/transport/chttp2/transport/stream.h +29 -11
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +2 -77
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +11 -93
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +15 -129
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +4 -30
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +4 -54
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +4 -28
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +15 -133
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +2 -46
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +10 -80
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -162
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +16 -148
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +1 -35
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +13 -101
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +6 -48
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +29 -207
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +5 -59
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +11 -111
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +9 -97
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +10 -130
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +4 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +4 -28
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +6 -64
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -53
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +4 -52
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +6 -68
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -19
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +8 -52
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +11 -59
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +11 -93
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +2 -40
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +48 -550
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +10 -80
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +1 -19
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +16 -182
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +240 -0
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +78 -0
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +73 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +42 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +431 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +111 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +2 -30
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +19 -187
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +3 -25
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +7 -71
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +6 -70
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +2 -26
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +13 -123
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +5 -53
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +5 -25
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +5 -37
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +2 -8
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +4 -16
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +11 -91
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +16 -140
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +3 -33
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +1 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +27 -410
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +5 -17
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +9 -37
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +34 -310
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +11 -83
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +8 -46
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +7 -45
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +12 -108
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +3 -17
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +7 -61
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -25
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +8 -72
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +3 -19
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +54 -234
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +3 -19
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +4 -22
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +12 -12
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -58
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +6 -30
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +4 -16
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +1 -5
- data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.c +110 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.h +42 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.c +138 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.h +52 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +734 -731
- data/src/core/filter/composite/composite_filter.cc +227 -0
- data/src/core/filter/composite/composite_filter.h +154 -0
- data/src/core/filter/filter_args.h +4 -0
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +163 -41
- data/src/core/handshaker/security/pipelining_heuristic_selector.h +151 -0
- data/src/core/handshaker/security/secure_endpoint.cc +24 -8
- data/src/core/lib/channel/connected_channel.cc +13 -0
- data/src/core/lib/channel/promise_based_filter.h +267 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +3 -2
- data/src/core/lib/event_engine/extensions/blocking_dns.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +4 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +11 -3
- data/src/core/lib/experiments/experiments.cc +120 -117
- data/src/core/lib/experiments/experiments.h +71 -58
- data/src/core/lib/promise/detail/promise_factory.h +16 -5
- data/src/core/lib/promise/detail/promise_like.h +19 -1
- data/src/core/lib/promise/inter_activity_latch.h +5 -8
- data/src/core/lib/promise/inter_activity_pipe.h +193 -0
- data/src/core/lib/promise/sleep.cc +5 -9
- data/src/core/lib/resource_quota/arena.h +1 -1
- data/src/core/lib/surface/call.cc +43 -6
- data/src/core/lib/surface/call.h +6 -0
- data/src/core/lib/surface/call_utils.cc +42 -3
- data/src/core/lib/surface/call_utils.h +30 -11
- data/src/core/lib/surface/channel_stack_type.cc +8 -0
- data/src/core/lib/surface/channel_stack_type.h +4 -0
- data/src/core/lib/surface/completion_queue.cc +15 -12
- data/src/core/lib/surface/filter_stack_call.h +5 -0
- data/src/core/lib/surface/legacy_channel.cc +1 -22
- data/src/core/lib/surface/legacy_channel.h +1 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +6 -3
- data/src/core/lib/transport/promise_endpoint.h +13 -17
- data/src/core/load_balancing/endpoint_list.cc +0 -8
- data/src/core/load_balancing/pick_first/pick_first.cc +5 -14
- data/src/core/load_balancing/xds/cds.cc +100 -122
- data/src/core/load_balancing/xds/cds.h +58 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +1 -1
- data/src/core/server/server.cc +19 -35
- data/src/core/server/server.h +9 -17
- data/src/core/server/xds_server_config_fetcher.cc +0 -24
- data/src/core/telemetry/metrics.cc +26 -0
- data/src/core/transport/session_endpoint.cc +314 -0
- data/src/core/transport/session_endpoint.h +85 -0
- data/src/core/tsi/ssl_transport_security.cc +137 -100
- data/src/core/tsi/ssl_transport_security.h +8 -0
- data/src/core/tsi/ssl_transport_security_utils.cc +25 -1
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/util/sorted_pack.h +69 -44
- data/src/core/util/string.cc +8 -0
- data/src/core/util/string.h +11 -0
- data/src/core/util/table.h +38 -102
- data/src/core/util/time_precise.cc +42 -1
- data/src/core/util/useful.h +0 -91
- data/src/core/util/windows/string_util.cc +4 -2
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +27 -15
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +148 -69
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +12 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +1 -1
- data/src/core/xds/grpc/xds_cluster.cc +54 -37
- data/src/core/xds/grpc/xds_cluster.h +0 -1
- data/src/core/xds/grpc/xds_common_types.cc +59 -34
- data/src/core/xds/grpc/xds_common_types_parser.cc +33 -3
- data/src/core/xds/grpc/xds_common_types_parser.h +5 -1
- data/src/core/xds/grpc/xds_endpoint.cc +44 -24
- data/src/core/xds/grpc/xds_health_status.cc +10 -6
- data/src/core/xds/grpc/xds_http_composite_filter.cc +302 -0
- data/src/core/xds/grpc/xds_http_composite_filter.h +84 -0
- data/src/core/xds/grpc/xds_http_filter_registry.cc +34 -2
- data/src/core/xds/grpc/xds_http_filter_registry.h +4 -0
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +21 -10
- data/src/core/xds/grpc/xds_listener.cc +98 -59
- data/src/core/xds/grpc/xds_listener_parser.cc +64 -26
- data/src/core/xds/grpc/xds_matcher.cc +92 -49
- data/src/core/xds/grpc/xds_metadata.cc +40 -7
- data/src/core/xds/grpc/xds_metadata.h +3 -10
- data/src/core/xds/grpc/xds_route_config.cc +171 -100
- data/src/core/xds/grpc/xds_server_grpc.cc +27 -18
- data/src/ruby/bin/math_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -15
- data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +40 -0
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/convert.cc +47 -31
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/exponentiation.cc +35 -17
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbb.cc +8 -14
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/derive_key.cc +15 -13
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.cc +5 -28
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.h +9 -11
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/dh_asn1.cc +14 -13
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa.cc +34 -30
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa_asn1.cc +35 -23
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_asn1.cc +63 -47
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/hash_to_curve.cc +68 -60
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdsa/ecdsa_asn1.cc +17 -11
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_asn1.cc +11 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_ctx.cc +11 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/sign.cc +42 -23
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div.cc.inc +79 -0
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/exponentiation.cc.inc +6 -5
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd.cc.inc +80 -58
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd_extra.cc.inc +45 -29
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/jacobi.cc.inc +16 -7
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery.cc.inc +24 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/mul.cc.inc +34 -24
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/prime.cc.inc +154 -102
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/shift.cc.inc +8 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/sqrt.cc.inc +78 -1
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/check.cc.inc +53 -35
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/dh.cc.inc +76 -57
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digest.cc.inc +10 -4
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/padding.cc.inc +26 -19
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa.cc.inc +7 -7
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa_impl.cc.inc +138 -117
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/self_check.cc.inc +30 -22
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj.cc +8 -2
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_lib.cc +13 -8
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7.cc +6 -5
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7_x509.cc +3 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/p5_pbev2.cc +14 -9
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8.cc +29 -19
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8_x509.cc +39 -34
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_crypt.cc +22 -14
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_sign.cc +5 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/asn1_gen.cc +12 -8
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_conf.cc +24 -16
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_info.cc +21 -18
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509.cc +57 -52
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509a.cc +32 -16
- data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bytestring.h +0 -6
- data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handoff.cc +12 -12
- data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_asn1.cc +3 -2
- data/third_party/upb/upb/base/string_view.h +7 -3
- data/third_party/upb/upb/generated_code_support.h +17 -1
- data/third_party/upb/upb/hash/common.c +2 -1
- data/third_party/upb/upb/mem/alloc.c +2 -1
- data/third_party/upb/upb/mem/alloc.h +25 -6
- data/third_party/upb/upb/mem/arena.c +225 -73
- data/third_party/upb/upb/mem/arena.h +56 -0
- data/third_party/upb/upb/mem/arena.hpp +6 -0
- data/third_party/upb/upb/mem/internal/arena.h +69 -56
- data/third_party/upb/upb/message/accessors.h +4 -0
- data/third_party/upb/upb/message/array.h +3 -0
- data/third_party/upb/upb/message/copy.c +1 -1
- data/third_party/upb/upb/message/internal/accessors.h +10 -0
- data/third_party/upb/upb/message/internal/array.h +34 -3
- data/third_party/upb/upb/message/internal/message.h +23 -9
- data/third_party/upb/upb/mini_descriptor/decode.c +127 -66
- data/third_party/upb/upb/mini_descriptor/decode.h +6 -2
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +2 -0
- data/third_party/upb/upb/mini_descriptor/link.c +11 -0
- data/third_party/upb/upb/mini_table/extension.h +7 -0
- data/third_party/upb/upb/mini_table/extension_registry.c +10 -1
- data/third_party/upb/upb/mini_table/extension_registry.h +1 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +10 -0
- data/third_party/upb/upb/mini_table/internal/field.h +1 -1
- data/third_party/upb/upb/mini_table/internal/message.h +69 -9
- data/third_party/upb/upb/mini_table/message.c +0 -38
- data/third_party/upb/upb/mini_table/message.h +5 -1
- data/third_party/upb/upb/port/def.inc +140 -111
- data/third_party/upb/upb/port/sanitizers.h +179 -0
- data/third_party/upb/upb/port/undef.inc +19 -9
- data/third_party/upb/upb/reflection/enum_def.c +7 -3
- data/third_party/upb/upb/reflection/enum_def.h +1 -0
- data/third_party/upb/upb/reflection/field_def.h +1 -0
- data/third_party/upb/upb/reflection/file_def.c +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +29 -2
- data/third_party/upb/upb/reflection/message_def.h +2 -0
- data/third_party/upb/upb/text/internal/encode.c +5 -5
- data/third_party/upb/upb/wire/decode.c +190 -239
- data/third_party/upb/upb/wire/decode.h +14 -5
- data/third_party/upb/upb/wire/decode_fast/combinations.h +217 -0
- data/third_party/upb/upb/wire/decode_fast/data.h +74 -0
- data/third_party/upb/upb/wire/decode_fast/select.c +235 -0
- data/third_party/upb/upb/wire/decode_fast/select.h +66 -0
- data/third_party/upb/upb/wire/encode.c +332 -203
- data/third_party/upb/upb/wire/encode.h +3 -6
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +64 -6
- data/third_party/upb/upb/wire/internal/decoder.c +43 -0
- data/third_party/upb/upb/wire/internal/decoder.h +73 -35
- data/third_party/upb/upb/wire/internal/reader.h +28 -9
- data/third_party/upb/upb/wire/reader.c +20 -2
- data/third_party/upb/upb/wire/reader.h +29 -19
- data/third_party/upb/upb/wire/writer.h +20 -0
- data/third_party/utf8_range/utf8_range.c +6 -6
- data/third_party/utf8_range/utf8_range_neon.inc +1 -1
- data/third_party/utf8_range/utf8_range_sse.inc +1 -1
- metadata +559 -531
- data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +0 -100
- data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +0 -93
- data/third_party/upb/upb/wire/internal/decode_fast.c +0 -1000
- data/third_party/upb/upb/wire/internal/decode_fast.h +0 -152
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/aes/aes.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bitstr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bool.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_d2i_fp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_dup.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_gentm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_i2d_fp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_mbstr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_object.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_octet.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strex.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strnid.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_time.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_type.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_utctm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_par.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn_pack.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_string.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/posix_time.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_dec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_fre.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_new.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_typ.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_utl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/base64/base64.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bcm_support.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio_mem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/connect.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/errno.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/fd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/hexdump.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/pair.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/printf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket_helper.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/blake2/blake2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/bn_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/buf/buf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/asn1_compat.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/ber.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbs.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/unicode.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/chacha.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesctrhmac.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aeseax.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesgcmsiv.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_chacha20poly1305.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_des.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_null.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_tls.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/get_cipher.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/tls_cbc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cms/cms.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/conf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_apple.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_fuchsia.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_linux.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_openbsd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_sysreg.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_win.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_freebsd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_intel.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/crypto.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_64_adx.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_tables.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/spake25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/des.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/params.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/digest/digest_extra.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_derive.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdh/ecdh.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/engine/engine.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/err.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_hkdf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/pbkdf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/scrypt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ex_data.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes_nohw.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cbc.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cfb.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ctr.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm_nohw.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/key_wrap.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/mode_wrappers.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ofb.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm_interface.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/add.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/asm/x86_64-gcc.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bn.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bytes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/cmp.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/ctx.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div_extra.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/generic.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery_inv.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/random.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/aead.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/cipher.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aesccm.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cmac/cmac.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/delocate.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digests.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/md32_common.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digestsign/digestsign.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/builtin_curves.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_key.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_montgomery.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/felem.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/oct.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p224-64.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz-table.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256_table.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/scalar.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple_mul.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/util.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/wnaf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdh/ecdh.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/ecdsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/fips_shared_support.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hkdf/hkdf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hmac/hmac.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/keccak.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/mldsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/mlkem.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/ctrdrbg.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/rand.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/blinding.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/fips.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/service_indicator.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha1.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha256.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha512.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/address.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/params.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/slhdsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/kdf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fuzzer_mode.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hpke/hpke.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/hrss.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/kyber.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/lhash.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md4/md4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/md5.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mldsa/mldsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mlkem/mlkem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_dat.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_xref.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_all.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_info.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_oth.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pk8.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_xaux.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_arm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_vec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/pool.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/deterministic.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/fork_detect.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/forkunsafe.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getentropy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getrandom_fillin.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/ios.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/passive.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/rand.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/trusty.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/urandom.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/windows.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rc4/rc4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/refcount.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_extra.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha256.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha512.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/siphash/siphash.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/slhdsa/slhdsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/spake2plus.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/stack/stack.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_none.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_pthread.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_win.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/pmbtoken.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/trust_token.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/voprf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_digest.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_verify.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/algorithm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_dir.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/ext_dat.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/i2d_pr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/name_print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/policy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/rsa_pss.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_crl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509a.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akeya.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_alt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bcons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bitst.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_cpols.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_crld.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_enum.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_extku.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_genn.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ia5.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ncons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ocsp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pcons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pmaps.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_prn.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_purp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_skey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_utl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_att.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_cmp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_d2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_def.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_ext.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_lu.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_obj.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_set.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_trs.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_txt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_v3.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vfy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vpm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509cset.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509name.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509rset.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509spki.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_algor.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_all.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_attrib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_crl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_exten.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_name.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_pubkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_sig.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_spki.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_val.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/gen → gen}/crypto/err_data.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aead.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aes.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/arm_arch.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asm_base.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1_mac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1t.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bcm_public.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bio.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blake2.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blowfish.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bn.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buffer.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cast.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/chacha.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cipher.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cmac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cms.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/conf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cpu.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/crypto.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ctrdrbg.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/curve25519.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/des.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dh.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/digest.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dtls1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/e_os2.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec_key.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdh.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/engine.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/err.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp_errors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ex_data.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/experimental/kyber.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hkdf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hmac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hpke.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hrss.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/is_boringssl.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/kdf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/lhash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md4.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md5.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mldsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mlkem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/nid.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj_mac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/objects.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslconf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslv.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ossl_typ.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs12.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs7.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs8.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/poly1305.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pool.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/posix_time.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rand.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rc4.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ripemd.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/safestack.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/service_indicator.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/sha.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/siphash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/slhdsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/span.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/srtp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl3.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/stack.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/target.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/thread.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/time.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/tls1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/trust_token.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/type_check.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509_vfy.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3_errors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/bio_ssl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_pkt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_srtp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_method.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_record.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/encrypted_client_hello.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/extensions.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_client.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_server.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_pkt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_aead_ctx.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_buffer.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cert.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cipher.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_credential.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_key_share.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_privkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_session.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_stat.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_transcript.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_versions.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/t1_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_client.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_server.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_method.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_record.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_32.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_adx.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_msvc.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_32.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64_msvc.h +0 -0
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
#include <stddef.h>
|
|
12
12
|
#include <stdint.h>
|
|
13
13
|
#include <stdlib.h>
|
|
14
|
+
#include <string.h>
|
|
14
15
|
|
|
15
16
|
#include "upb/base/descriptor_constants.h"
|
|
16
17
|
#include "upb/base/status.h"
|
|
@@ -18,6 +19,7 @@
|
|
|
18
19
|
#include "upb/mem/alloc.h"
|
|
19
20
|
#include "upb/mem/arena.h"
|
|
20
21
|
#include "upb/message/internal/map_entry.h"
|
|
22
|
+
#include "upb/message/internal/types.h"
|
|
21
23
|
#include "upb/mini_descriptor/internal/base92.h"
|
|
22
24
|
#include "upb/mini_descriptor/internal/decoder.h"
|
|
23
25
|
#include "upb/mini_descriptor/internal/modifiers.h"
|
|
@@ -30,6 +32,20 @@
|
|
|
30
32
|
#include "upb/mini_table/message.h"
|
|
31
33
|
#include "upb/mini_table/sub.h"
|
|
32
34
|
|
|
35
|
+
// Our awkward dance for including fasttable only when it is enabled.
|
|
36
|
+
#include "upb/port/def.inc"
|
|
37
|
+
#if UPB_FASTTABLE
|
|
38
|
+
#define UPB_INCLUDE_FAST_DECODE
|
|
39
|
+
#endif
|
|
40
|
+
#include "upb/port/undef.inc"
|
|
41
|
+
|
|
42
|
+
#ifdef UPB_INCLUDE_FAST_DECODE
|
|
43
|
+
#include "upb/wire/decode_fast/function_array.h"
|
|
44
|
+
#include "upb/wire/decode_fast/select.h"
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
#undef UPB_INCLUDE_FAST_DECODE
|
|
48
|
+
|
|
33
49
|
// Must be last.
|
|
34
50
|
#include "upb/port/def.inc"
|
|
35
51
|
|
|
@@ -44,6 +60,11 @@
|
|
|
44
60
|
// Stores the field number of the present value of the oneof
|
|
45
61
|
#define kUpb_OneOf_CaseFieldRep (kUpb_FieldRep_4Byte)
|
|
46
62
|
|
|
63
|
+
// The maximum field number that can be encoded on the wire.
|
|
64
|
+
// Note that this limit does not apply to MessageSet, which can have field
|
|
65
|
+
// numbers up to INT32_MAX.
|
|
66
|
+
#define kUpb_MaxFieldNumber ((1 << 29) - 1)
|
|
67
|
+
|
|
47
68
|
typedef struct {
|
|
48
69
|
// Index of the corresponding field. The field's offset will be the index of
|
|
49
70
|
// the next field in a linked list.
|
|
@@ -61,7 +82,6 @@ typedef struct {
|
|
|
61
82
|
|
|
62
83
|
typedef struct {
|
|
63
84
|
upb_MdDecoder base;
|
|
64
|
-
upb_MiniTable* table;
|
|
65
85
|
upb_MiniTableField* fields;
|
|
66
86
|
upb_MiniTablePlatform platform;
|
|
67
87
|
upb_OneOfLayoutItemVector oneofs;
|
|
@@ -69,6 +89,12 @@ typedef struct {
|
|
|
69
89
|
// Initially tracks the count of each field rep type; then, during assignment,
|
|
70
90
|
// tracks the base offset for the next processed field of the given rep.
|
|
71
91
|
uint16_t rep_counts_offsets[kUpb_FieldRep_Max + 1];
|
|
92
|
+
bool is_extension;
|
|
93
|
+
|
|
94
|
+
// When building fasttables, we don't know the total size of the table until
|
|
95
|
+
// we're done decoding, so we allocate a temporary table on the stack and
|
|
96
|
+
// allocate the real thing from the arena later.
|
|
97
|
+
upb_MiniTable table;
|
|
72
98
|
} upb_MtDecoder;
|
|
73
99
|
|
|
74
100
|
// In each field's offset, we temporarily store a presence classifier:
|
|
@@ -276,40 +302,45 @@ static void upb_MtDecoder_PushOneof(upb_MtDecoder* d,
|
|
|
276
302
|
|
|
277
303
|
static size_t upb_MtDecoder_SizeOfRep(upb_FieldRep rep,
|
|
278
304
|
upb_MiniTablePlatform platform) {
|
|
305
|
+
enum { string_view_size_32 = 8, string_view_size_64 = 16 };
|
|
306
|
+
UPB_STATIC_ASSERT(sizeof(upb_StringView) ==
|
|
307
|
+
UPB_SIZE(string_view_size_32, string_view_size_64),
|
|
308
|
+
"StringView size mismatch");
|
|
279
309
|
static const uint8_t kRepToSize32[] = {
|
|
280
310
|
[kUpb_FieldRep_1Byte] = 1,
|
|
281
311
|
[kUpb_FieldRep_4Byte] = 4,
|
|
282
|
-
[kUpb_FieldRep_StringView] =
|
|
312
|
+
[kUpb_FieldRep_StringView] = string_view_size_32,
|
|
283
313
|
[kUpb_FieldRep_8Byte] = 8,
|
|
284
314
|
};
|
|
285
315
|
static const uint8_t kRepToSize64[] = {
|
|
286
316
|
[kUpb_FieldRep_1Byte] = 1,
|
|
287
317
|
[kUpb_FieldRep_4Byte] = 4,
|
|
288
|
-
[kUpb_FieldRep_StringView] =
|
|
318
|
+
[kUpb_FieldRep_StringView] = string_view_size_64,
|
|
289
319
|
[kUpb_FieldRep_8Byte] = 8,
|
|
290
320
|
};
|
|
291
|
-
UPB_ASSERT(sizeof(upb_StringView) ==
|
|
292
|
-
UPB_SIZE(kRepToSize32, kRepToSize64)[kUpb_FieldRep_StringView]);
|
|
293
321
|
return platform == kUpb_MiniTablePlatform_32Bit ? kRepToSize32[rep]
|
|
294
322
|
: kRepToSize64[rep];
|
|
295
323
|
}
|
|
296
324
|
|
|
297
325
|
static size_t upb_MtDecoder_AlignOfRep(upb_FieldRep rep,
|
|
298
326
|
upb_MiniTablePlatform platform) {
|
|
327
|
+
enum { string_view_align_32 = 4, string_view_align_64 = 8 };
|
|
328
|
+
UPB_STATIC_ASSERT(UPB_ALIGN_OF(upb_StringView) ==
|
|
329
|
+
UPB_SIZE(string_view_align_32, string_view_align_64),
|
|
330
|
+
"StringView size mismatch");
|
|
331
|
+
|
|
299
332
|
static const uint8_t kRepToAlign32[] = {
|
|
300
333
|
[kUpb_FieldRep_1Byte] = 1,
|
|
301
334
|
[kUpb_FieldRep_4Byte] = 4,
|
|
302
|
-
[kUpb_FieldRep_StringView] =
|
|
335
|
+
[kUpb_FieldRep_StringView] = string_view_align_32,
|
|
303
336
|
[kUpb_FieldRep_8Byte] = 8,
|
|
304
337
|
};
|
|
305
338
|
static const uint8_t kRepToAlign64[] = {
|
|
306
339
|
[kUpb_FieldRep_1Byte] = 1,
|
|
307
340
|
[kUpb_FieldRep_4Byte] = 4,
|
|
308
|
-
[kUpb_FieldRep_StringView] =
|
|
341
|
+
[kUpb_FieldRep_StringView] = string_view_align_64,
|
|
309
342
|
[kUpb_FieldRep_8Byte] = 8,
|
|
310
343
|
};
|
|
311
|
-
UPB_ASSERT(UPB_ALIGN_OF(upb_StringView) ==
|
|
312
|
-
UPB_SIZE(kRepToAlign32, kRepToAlign64)[kUpb_FieldRep_StringView]);
|
|
313
344
|
return platform == kUpb_MiniTablePlatform_32Bit ? kRepToAlign32[rep]
|
|
314
345
|
: kRepToAlign64[rep];
|
|
315
346
|
}
|
|
@@ -323,7 +354,7 @@ static const char* upb_MtDecoder_DecodeOneofField(upb_MtDecoder* d,
|
|
|
323
354
|
&d->base, ptr, first_ch, kUpb_EncodedValue_MinOneofField,
|
|
324
355
|
kUpb_EncodedValue_MaxOneofField, &field_num);
|
|
325
356
|
upb_MiniTableField* f =
|
|
326
|
-
(void*)upb_MiniTable_FindFieldByNumber(d->table, field_num);
|
|
357
|
+
(void*)upb_MiniTable_FindFieldByNumber(&d->table, field_num);
|
|
327
358
|
|
|
328
359
|
if (!f) {
|
|
329
360
|
upb_MdDecoder_ErrorJmp(&d->base,
|
|
@@ -393,7 +424,7 @@ static const char* upb_MtDecoder_ParseModifier(upb_MtDecoder* d,
|
|
|
393
424
|
if (last_field) {
|
|
394
425
|
upb_MtDecoder_ModifyField(d, *msg_modifiers, mod, last_field);
|
|
395
426
|
} else {
|
|
396
|
-
if (
|
|
427
|
+
if (d->is_extension) {
|
|
397
428
|
upb_MdDecoder_ErrorJmp(&d->base,
|
|
398
429
|
"Extensions cannot have message modifiers");
|
|
399
430
|
}
|
|
@@ -403,15 +434,21 @@ static const char* upb_MtDecoder_ParseModifier(upb_MtDecoder* d,
|
|
|
403
434
|
return ptr;
|
|
404
435
|
}
|
|
405
436
|
|
|
437
|
+
static void* upb_MtDecoder_CheckedMalloc(upb_MtDecoder* d, size_t size) {
|
|
438
|
+
void* ptr = upb_Arena_Malloc(d->arena, size);
|
|
439
|
+
upb_MdDecoder_CheckOutOfMemory(&d->base, ptr);
|
|
440
|
+
return ptr;
|
|
441
|
+
}
|
|
442
|
+
|
|
406
443
|
static void upb_MtDecoder_AllocateSubs(upb_MtDecoder* d,
|
|
407
444
|
upb_SubCounts sub_counts) {
|
|
408
445
|
uint32_t total_count = sub_counts.submsg_count + sub_counts.subenum_count;
|
|
409
|
-
size_t subs_bytes = sizeof(*d->table
|
|
446
|
+
size_t subs_bytes = sizeof(*d->table.UPB_PRIVATE(subs)) * total_count;
|
|
410
447
|
size_t ptrs_bytes = sizeof(upb_MiniTable*) * sub_counts.submsg_count;
|
|
411
|
-
upb_MiniTableSubInternal* subs =
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
448
|
+
upb_MiniTableSubInternal* subs =
|
|
449
|
+
subs_bytes ? upb_MtDecoder_CheckedMalloc(d, subs_bytes) : NULL;
|
|
450
|
+
const upb_MiniTable** subs_ptrs =
|
|
451
|
+
ptrs_bytes ? upb_MtDecoder_CheckedMalloc(d, ptrs_bytes) : NULL;
|
|
415
452
|
uint32_t i = 0;
|
|
416
453
|
for (; i < sub_counts.submsg_count; i++) {
|
|
417
454
|
subs_ptrs[i] = UPB_PRIVATE(_upb_MiniTable_Empty)();
|
|
@@ -419,7 +456,7 @@ static void upb_MtDecoder_AllocateSubs(upb_MtDecoder* d,
|
|
|
419
456
|
}
|
|
420
457
|
if (sub_counts.subenum_count) {
|
|
421
458
|
upb_MiniTableField* f = d->fields;
|
|
422
|
-
upb_MiniTableField* end_f = f + d->table
|
|
459
|
+
upb_MiniTableField* end_f = f + d->table.UPB_PRIVATE(field_count);
|
|
423
460
|
for (; f < end_f; f++) {
|
|
424
461
|
if (f->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Enum) {
|
|
425
462
|
f->UPB_PRIVATE(submsg_index) += sub_counts.submsg_count;
|
|
@@ -429,7 +466,7 @@ static void upb_MtDecoder_AllocateSubs(upb_MtDecoder* d,
|
|
|
429
466
|
subs[i].UPB_PRIVATE(subenum) = NULL;
|
|
430
467
|
}
|
|
431
468
|
}
|
|
432
|
-
d->table
|
|
469
|
+
d->table.UPB_PRIVATE(subs) = subs;
|
|
433
470
|
}
|
|
434
471
|
|
|
435
472
|
static const char* upb_MtDecoder_Parse(upb_MtDecoder* d, const char* ptr,
|
|
@@ -439,38 +476,43 @@ static const char* upb_MtDecoder_Parse(upb_MtDecoder* d, const char* ptr,
|
|
|
439
476
|
uint64_t msg_modifiers = 0;
|
|
440
477
|
uint32_t last_field_number = 0;
|
|
441
478
|
upb_MiniTableField* last_field = NULL;
|
|
442
|
-
bool need_dense_below = d->
|
|
479
|
+
bool need_dense_below = !d->is_extension;
|
|
443
480
|
|
|
444
481
|
d->base.end = UPB_PTRADD(ptr, len);
|
|
445
482
|
|
|
446
483
|
while (ptr < d->base.end) {
|
|
447
484
|
char ch = *ptr++;
|
|
448
485
|
if (ch <= kUpb_EncodedValue_MaxField) {
|
|
449
|
-
if (
|
|
486
|
+
if (d->is_extension && last_field) {
|
|
450
487
|
// For extensions, consume only a single field and then return.
|
|
451
488
|
return --ptr;
|
|
452
489
|
}
|
|
453
490
|
upb_MiniTableField* field = fields;
|
|
454
491
|
*field_count += 1;
|
|
455
492
|
fields = (char*)fields + field_size;
|
|
456
|
-
|
|
493
|
+
uint32_t number = ++last_field_number;
|
|
494
|
+
if (number == 0 || (number > kUpb_MaxFieldNumber && !d->is_extension)) {
|
|
495
|
+
upb_MdDecoder_ErrorJmp(&d->base, "Invalid field number: %" PRIu32,
|
|
496
|
+
number);
|
|
497
|
+
}
|
|
498
|
+
field->UPB_PRIVATE(number) = number;
|
|
457
499
|
last_field = field;
|
|
458
500
|
upb_MiniTable_SetField(d, ch, field, msg_modifiers, sub_counts);
|
|
459
501
|
} else if (kUpb_EncodedValue_MinModifier <= ch &&
|
|
460
502
|
ch <= kUpb_EncodedValue_MaxModifier) {
|
|
461
503
|
ptr = upb_MtDecoder_ParseModifier(d, ptr, ch, last_field, &msg_modifiers);
|
|
462
504
|
if (msg_modifiers & kUpb_MessageModifier_IsExtendable) {
|
|
463
|
-
d->table
|
|
505
|
+
d->table.UPB_PRIVATE(ext) |= kUpb_ExtMode_Extendable;
|
|
464
506
|
}
|
|
465
507
|
} else if (ch == kUpb_EncodedValue_End) {
|
|
466
|
-
if (
|
|
508
|
+
if (d->is_extension) {
|
|
467
509
|
upb_MdDecoder_ErrorJmp(&d->base, "Extensions cannot have oneofs.");
|
|
468
510
|
}
|
|
469
511
|
ptr = upb_MtDecoder_DecodeOneofs(d, ptr);
|
|
470
512
|
} else if (kUpb_EncodedValue_MinSkip <= ch &&
|
|
471
513
|
ch <= kUpb_EncodedValue_MaxSkip) {
|
|
472
514
|
if (need_dense_below) {
|
|
473
|
-
d->table
|
|
515
|
+
d->table.UPB_PRIVATE(dense_below) = d->table.UPB_PRIVATE(field_count);
|
|
474
516
|
need_dense_below = false;
|
|
475
517
|
}
|
|
476
518
|
uint32_t skip;
|
|
@@ -485,7 +527,7 @@ static const char* upb_MtDecoder_Parse(upb_MtDecoder* d, const char* ptr,
|
|
|
485
527
|
}
|
|
486
528
|
|
|
487
529
|
if (need_dense_below) {
|
|
488
|
-
d->table
|
|
530
|
+
d->table.UPB_PRIVATE(dense_below) = d->table.UPB_PRIVATE(field_count);
|
|
489
531
|
}
|
|
490
532
|
|
|
491
533
|
return ptr;
|
|
@@ -502,20 +544,20 @@ static void upb_MtDecoder_ParseMessage(upb_MtDecoder* d, const char* data,
|
|
|
502
544
|
upb_MdDecoder_CheckOutOfMemory(&d->base, d->fields);
|
|
503
545
|
|
|
504
546
|
upb_SubCounts sub_counts = {0, 0};
|
|
505
|
-
d->table
|
|
506
|
-
d->table
|
|
547
|
+
d->table.UPB_PRIVATE(field_count) = 0;
|
|
548
|
+
d->table.UPB_PRIVATE(fields) = d->fields;
|
|
507
549
|
upb_MtDecoder_Parse(d, data, len, d->fields, sizeof(*d->fields),
|
|
508
|
-
&d->table
|
|
550
|
+
&d->table.UPB_PRIVATE(field_count), &sub_counts);
|
|
509
551
|
|
|
510
552
|
upb_Arena_ShrinkLast(d->arena, d->fields, sizeof(*d->fields) * len,
|
|
511
|
-
sizeof(*d->fields) * d->table
|
|
512
|
-
d->table
|
|
553
|
+
sizeof(*d->fields) * d->table.UPB_PRIVATE(field_count));
|
|
554
|
+
d->table.UPB_PRIVATE(fields) = d->fields;
|
|
513
555
|
upb_MtDecoder_AllocateSubs(d, sub_counts);
|
|
514
556
|
}
|
|
515
557
|
|
|
516
558
|
static void upb_MtDecoder_CalculateAlignments(upb_MtDecoder* d) {
|
|
517
559
|
// Add alignment counts for non-oneof fields (oneofs were added already)
|
|
518
|
-
int n = d->table
|
|
560
|
+
int n = d->table.UPB_PRIVATE(field_count);
|
|
519
561
|
for (int i = 0; i < n; i++) {
|
|
520
562
|
upb_MiniTableField* f = &d->fields[i];
|
|
521
563
|
if (f->UPB_PRIVATE(offset) >= kOneofBase) continue;
|
|
@@ -525,7 +567,7 @@ static void upb_MtDecoder_CalculateAlignments(upb_MtDecoder* d) {
|
|
|
525
567
|
// Reserve properly aligned space for each type of field representation
|
|
526
568
|
// present in this message. When we iterate over the fields, they will obtain
|
|
527
569
|
// their offset from within the region matching their alignment requirements.
|
|
528
|
-
size_t base = d->table
|
|
570
|
+
size_t base = d->table.UPB_PRIVATE(size);
|
|
529
571
|
// Start with the lowest alignment requirement, going up, because:
|
|
530
572
|
// 1. If there are presence bits, we won't be aligned to start, but adding
|
|
531
573
|
// some lower-alignment fields may get us closer without wasting space to
|
|
@@ -548,7 +590,7 @@ static void upb_MtDecoder_CalculateAlignments(upb_MtDecoder* d) {
|
|
|
548
590
|
upb_MdDecoder_ErrorJmp(
|
|
549
591
|
&d->base, "Message size exceeded maximum size of %zu bytes", max);
|
|
550
592
|
}
|
|
551
|
-
d->table
|
|
593
|
+
d->table.UPB_PRIVATE(size) = (uint16_t)base;
|
|
552
594
|
}
|
|
553
595
|
|
|
554
596
|
static size_t upb_MiniTable_DivideRoundUp(size_t n, size_t d) {
|
|
@@ -556,14 +598,13 @@ static size_t upb_MiniTable_DivideRoundUp(size_t n, size_t d) {
|
|
|
556
598
|
}
|
|
557
599
|
|
|
558
600
|
static void upb_MtDecoder_AssignHasbits(upb_MtDecoder* d) {
|
|
559
|
-
|
|
560
|
-
int n = ret->UPB_PRIVATE(field_count);
|
|
601
|
+
int n = d->table.UPB_PRIVATE(field_count);
|
|
561
602
|
size_t last_hasbit = kUpb_Reserved_Hasbits - 1;
|
|
562
603
|
|
|
563
604
|
// First assign required fields, which must have the lowest hasbits.
|
|
564
605
|
for (int i = 0; i < n; i++) {
|
|
565
606
|
upb_MiniTableField* field =
|
|
566
|
-
(upb_MiniTableField*)&
|
|
607
|
+
(upb_MiniTableField*)&d->table.UPB_PRIVATE(fields)[i];
|
|
567
608
|
if (field->UPB_PRIVATE(offset) == kRequiredPresence) {
|
|
568
609
|
field->presence = ++last_hasbit;
|
|
569
610
|
} else if (field->UPB_PRIVATE(offset) == kNoPresence) {
|
|
@@ -574,18 +615,19 @@ static void upb_MtDecoder_AssignHasbits(upb_MtDecoder* d) {
|
|
|
574
615
|
upb_MdDecoder_ErrorJmp(&d->base, "Too many required fields");
|
|
575
616
|
}
|
|
576
617
|
|
|
577
|
-
|
|
618
|
+
d->table.UPB_PRIVATE(required_count) =
|
|
619
|
+
last_hasbit - (kUpb_Reserved_Hasbits - 1);
|
|
578
620
|
|
|
579
621
|
// Next assign non-required hasbit fields.
|
|
580
622
|
for (int i = 0; i < n; i++) {
|
|
581
623
|
upb_MiniTableField* field =
|
|
582
|
-
(upb_MiniTableField*)&
|
|
624
|
+
(upb_MiniTableField*)&d->table.UPB_PRIVATE(fields)[i];
|
|
583
625
|
if (field->UPB_PRIVATE(offset) == kHasbitPresence) {
|
|
584
626
|
field->presence = ++last_hasbit;
|
|
585
627
|
}
|
|
586
628
|
}
|
|
587
629
|
|
|
588
|
-
|
|
630
|
+
d->table.UPB_PRIVATE(size) =
|
|
589
631
|
last_hasbit ? upb_MiniTable_DivideRoundUp(last_hasbit + 1, 8) : 0;
|
|
590
632
|
}
|
|
591
633
|
|
|
@@ -598,7 +640,7 @@ static size_t upb_MtDecoder_Place(upb_MtDecoder* d, upb_FieldRep rep) {
|
|
|
598
640
|
|
|
599
641
|
static void upb_MtDecoder_AssignOffsets(upb_MtDecoder* d) {
|
|
600
642
|
upb_MiniTableField* field_end =
|
|
601
|
-
UPB_PTRADD(d->fields, d->table
|
|
643
|
+
UPB_PTRADD(d->fields, d->table.UPB_PRIVATE(field_count));
|
|
602
644
|
for (upb_MiniTableField* field = d->fields; field < field_end; field++) {
|
|
603
645
|
if (field->UPB_PRIVATE(offset) >= kOneofBase) continue;
|
|
604
646
|
field->UPB_PRIVATE(offset) =
|
|
@@ -616,17 +658,18 @@ static void upb_MtDecoder_AssignOffsets(upb_MtDecoder* d) {
|
|
|
616
658
|
uint16_t next_offset = f->UPB_PRIVATE(offset);
|
|
617
659
|
f->UPB_PRIVATE(offset) = data_offset;
|
|
618
660
|
if (next_offset == kUpb_OneOfLayoutItem_IndexSentinel) break;
|
|
619
|
-
UPB_ASSERT(next_offset - kOneofBase < d->table
|
|
661
|
+
UPB_ASSERT(next_offset - kOneofBase < d->table.UPB_PRIVATE(field_count));
|
|
620
662
|
f = &d->fields[next_offset - kOneofBase];
|
|
621
663
|
}
|
|
622
664
|
}
|
|
623
665
|
|
|
624
|
-
//
|
|
625
|
-
//
|
|
626
|
-
//
|
|
627
|
-
//
|
|
628
|
-
//
|
|
629
|
-
d->table
|
|
666
|
+
// Since messages are always allocated on arenas, we can save repeatedly
|
|
667
|
+
// realigning by doing alignment at minitable construction time. We don't want
|
|
668
|
+
// to align to UPB_MALLOC_ALIGN because it can change with sanitizers, and if
|
|
669
|
+
// we're generating code we don't want to calculate size differently depending
|
|
670
|
+
// on the proto compiler's host or build configuration.
|
|
671
|
+
d->table.UPB_PRIVATE(size) =
|
|
672
|
+
UPB_ALIGN_UP(d->table.UPB_PRIVATE(size), kUpb_Message_Align);
|
|
630
673
|
}
|
|
631
674
|
|
|
632
675
|
static void upb_MtDecoder_ValidateEntryField(upb_MtDecoder* d,
|
|
@@ -665,9 +708,9 @@ static void upb_MtDecoder_ParseMap(upb_MtDecoder* d, const char* data,
|
|
|
665
708
|
upb_MtDecoder_ParseMessage(d, data, len);
|
|
666
709
|
upb_MtDecoder_AssignHasbits(d);
|
|
667
710
|
|
|
668
|
-
if (UPB_UNLIKELY(d->table
|
|
711
|
+
if (UPB_UNLIKELY(d->table.UPB_PRIVATE(field_count) != 2)) {
|
|
669
712
|
upb_MdDecoder_ErrorJmp(&d->base, "%hu fields in map",
|
|
670
|
-
d->table
|
|
713
|
+
d->table.UPB_PRIVATE(field_count));
|
|
671
714
|
UPB_UNREACHABLE();
|
|
672
715
|
}
|
|
673
716
|
|
|
@@ -675,16 +718,16 @@ static void upb_MtDecoder_ParseMap(upb_MtDecoder* d, const char* data,
|
|
|
675
718
|
upb_MdDecoder_ErrorJmp(&d->base, "Map entry cannot have oneof");
|
|
676
719
|
}
|
|
677
720
|
|
|
678
|
-
upb_MtDecoder_ValidateEntryField(d, &d->table
|
|
679
|
-
upb_MtDecoder_ValidateEntryField(d, &d->table
|
|
721
|
+
upb_MtDecoder_ValidateEntryField(d, &d->table.UPB_PRIVATE(fields)[0], 1);
|
|
722
|
+
upb_MtDecoder_ValidateEntryField(d, &d->table.UPB_PRIVATE(fields)[1], 2);
|
|
680
723
|
|
|
681
724
|
d->fields[0].UPB_PRIVATE(offset) = offsetof(upb_MapEntry, k);
|
|
682
725
|
d->fields[1].UPB_PRIVATE(offset) = offsetof(upb_MapEntry, v);
|
|
683
|
-
d->table
|
|
726
|
+
d->table.UPB_PRIVATE(size) = sizeof(upb_MapEntry);
|
|
684
727
|
|
|
685
728
|
// Map entries have a special bit set to signal it's a map entry, used in
|
|
686
729
|
// upb_MiniTable_SetSubMessage() below.
|
|
687
|
-
d->table
|
|
730
|
+
d->table.UPB_PRIVATE(ext) |= kUpb_ExtMode_IsMapEntry;
|
|
688
731
|
}
|
|
689
732
|
|
|
690
733
|
static void upb_MtDecoder_ParseMessageSet(upb_MtDecoder* d, const char* data,
|
|
@@ -694,7 +737,7 @@ static void upb_MtDecoder_ParseMessageSet(upb_MtDecoder* d, const char* data,
|
|
|
694
737
|
len);
|
|
695
738
|
}
|
|
696
739
|
|
|
697
|
-
upb_MiniTable* ret = d->table;
|
|
740
|
+
upb_MiniTable* ret = &d->table;
|
|
698
741
|
ret->UPB_PRIVATE(size) = kUpb_Reserved_Hasbytes;
|
|
699
742
|
ret->UPB_PRIVATE(field_count) = 0;
|
|
700
743
|
ret->UPB_PRIVATE(ext) = kUpb_ExtMode_IsMessageSet;
|
|
@@ -706,18 +749,16 @@ static void upb_MtDecoder_ParseMessageSet(upb_MtDecoder* d, const char* data,
|
|
|
706
749
|
static upb_MiniTable* upb_MtDecoder_DoBuildMiniTableWithBuf(
|
|
707
750
|
upb_MtDecoder* decoder, const char* data, size_t len, void** buf,
|
|
708
751
|
size_t* buf_size) {
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
decoder->table
|
|
712
|
-
decoder->table
|
|
713
|
-
decoder->table
|
|
714
|
-
decoder->table
|
|
715
|
-
decoder->table->UPB_PRIVATE(table_mask) = -1;
|
|
716
|
-
decoder->table->UPB_PRIVATE(required_count) = 0;
|
|
752
|
+
decoder->table.UPB_PRIVATE(size) = kUpb_Reserved_Hasbytes;
|
|
753
|
+
decoder->table.UPB_PRIVATE(field_count) = 0;
|
|
754
|
+
decoder->table.UPB_PRIVATE(ext) = kUpb_ExtMode_NonExtendable;
|
|
755
|
+
decoder->table.UPB_PRIVATE(dense_below) = 0;
|
|
756
|
+
decoder->table.UPB_PRIVATE(table_mask) = -1;
|
|
757
|
+
decoder->table.UPB_PRIVATE(required_count) = 0;
|
|
717
758
|
#ifdef UPB_TRACING_ENABLED
|
|
718
759
|
// MiniTables built from MiniDescriptors will not be able to vend the message
|
|
719
760
|
// name unless it is explicitly set with upb_MiniTable_SetFullName().
|
|
720
|
-
decoder->table
|
|
761
|
+
decoder->table.UPB_PRIVATE(full_name) = 0;
|
|
721
762
|
#endif
|
|
722
763
|
|
|
723
764
|
// Strip off and verify the version tag.
|
|
@@ -748,7 +789,27 @@ static upb_MiniTable* upb_MtDecoder_DoBuildMiniTableWithBuf(
|
|
|
748
789
|
done:
|
|
749
790
|
*buf = decoder->oneofs.data;
|
|
750
791
|
*buf_size = decoder->oneofs.buf_capacity_bytes;
|
|
751
|
-
|
|
792
|
+
size_t mt_size = sizeof(upb_MiniTable);
|
|
793
|
+
|
|
794
|
+
#if UPB_FASTTABLE
|
|
795
|
+
upb_DecodeFast_TableEntry fasttable[32];
|
|
796
|
+
int fasttable_size = upb_DecodeFast_BuildTable(&decoder->table, fasttable);
|
|
797
|
+
mt_size += fasttable_size * sizeof(fasttable[0]);
|
|
798
|
+
#endif
|
|
799
|
+
|
|
800
|
+
upb_MiniTable* ret = upb_Arena_Malloc(decoder->arena, mt_size);
|
|
801
|
+
memcpy(ret, &decoder->table, sizeof(*ret));
|
|
802
|
+
|
|
803
|
+
#if UPB_FASTTABLE
|
|
804
|
+
ret->UPB_PRIVATE(table_mask) = upb_DecodeFast_GetTableMask(fasttable_size);
|
|
805
|
+
for (int i = 0; i < fasttable_size; i++) {
|
|
806
|
+
ret->UPB_PRIVATE(fasttable)[i].field_data = fasttable[i].function_data;
|
|
807
|
+
ret->UPB_PRIVATE(fasttable)[i].field_parser =
|
|
808
|
+
upb_DecodeFast_GetFunctionPointer(fasttable[i].function_idx);
|
|
809
|
+
}
|
|
810
|
+
#endif
|
|
811
|
+
UPB_PRIVATE(upb_MiniTable_CheckInvariants)(ret);
|
|
812
|
+
return ret;
|
|
752
813
|
}
|
|
753
814
|
|
|
754
815
|
static upb_MiniTable* upb_MtDecoder_BuildMiniTableWithBuf(
|
|
@@ -772,6 +833,7 @@ upb_MiniTable* upb_MiniTable_BuildWithBuf(const char* data, size_t len,
|
|
|
772
833
|
upb_MtDecoder decoder = {
|
|
773
834
|
.base = {.status = status},
|
|
774
835
|
.platform = platform,
|
|
836
|
+
.is_extension = false,
|
|
775
837
|
.oneofs =
|
|
776
838
|
{
|
|
777
839
|
.data = *buf,
|
|
@@ -779,7 +841,6 @@ upb_MiniTable* upb_MiniTable_BuildWithBuf(const char* data, size_t len,
|
|
|
779
841
|
.size = 0,
|
|
780
842
|
},
|
|
781
843
|
.arena = arena,
|
|
782
|
-
.table = upb_Arena_Malloc(arena, sizeof(*decoder.table)),
|
|
783
844
|
};
|
|
784
845
|
|
|
785
846
|
return upb_MtDecoder_BuildMiniTableWithBuf(&decoder, data, len, buf,
|
|
@@ -848,8 +909,8 @@ const char* _upb_MiniTableExtension_Init(const char* data, size_t len,
|
|
|
848
909
|
upb_MtDecoder decoder = {
|
|
849
910
|
.base = {.status = status},
|
|
850
911
|
.arena = NULL,
|
|
851
|
-
.table = NULL,
|
|
852
912
|
.platform = platform,
|
|
913
|
+
.is_extension = true,
|
|
853
914
|
};
|
|
854
915
|
|
|
855
916
|
return upb_MtDecoder_BuildMiniTableExtension(&decoder, data, len, ext,
|
|
@@ -8,9 +8,13 @@
|
|
|
8
8
|
#ifndef UPB_MINI_TABLE_DECODE_H_
|
|
9
9
|
#define UPB_MINI_TABLE_DECODE_H_
|
|
10
10
|
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
|
|
11
13
|
#include "upb/base/status.h"
|
|
12
14
|
#include "upb/mem/arena.h"
|
|
15
|
+
#include "upb/mini_table/enum.h"
|
|
13
16
|
#include "upb/mini_table/extension.h"
|
|
17
|
+
#include "upb/mini_table/message.h"
|
|
14
18
|
#include "upb/mini_table/sub.h"
|
|
15
19
|
|
|
16
20
|
// Export the newer headers, for legacy users. New users should include the
|
|
@@ -81,7 +85,7 @@ UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_Build(
|
|
|
81
85
|
|
|
82
86
|
UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildMessage(
|
|
83
87
|
const char* data, size_t len, const upb_MiniTable* extendee,
|
|
84
|
-
upb_MiniTable* submsg, upb_Arena* arena, upb_Status* status) {
|
|
88
|
+
const upb_MiniTable* submsg, upb_Arena* arena, upb_Status* status) {
|
|
85
89
|
upb_MiniTableSub sub = upb_MiniTableSub_FromMessage(submsg);
|
|
86
90
|
return _upb_MiniTableExtension_Build(
|
|
87
91
|
data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
|
|
@@ -89,7 +93,7 @@ UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildMessage(
|
|
|
89
93
|
|
|
90
94
|
UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildEnum(
|
|
91
95
|
const char* data, size_t len, const upb_MiniTable* extendee,
|
|
92
|
-
upb_MiniTableEnum* subenum, upb_Arena* arena, upb_Status* status) {
|
|
96
|
+
const upb_MiniTableEnum* subenum, upb_Arena* arena, upb_Status* status) {
|
|
93
97
|
upb_MiniTableSub sub = upb_MiniTableSub_FromEnum(subenum);
|
|
94
98
|
return _upb_MiniTableExtension_Build(
|
|
95
99
|
data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
#ifndef UPB_MINI_TABLE_ENCODE_INTERNAL_HPP_
|
|
9
9
|
#define UPB_MINI_TABLE_ENCODE_INTERNAL_HPP_
|
|
10
10
|
|
|
11
|
+
#include <cstdint>
|
|
11
12
|
#include <string>
|
|
12
13
|
|
|
14
|
+
#include "upb/base/descriptor_constants.h"
|
|
13
15
|
#include "upb/base/internal/log2.h"
|
|
14
16
|
#include "upb/mini_descriptor/internal/encode.h"
|
|
15
17
|
|
|
@@ -74,6 +74,17 @@ bool upb_MiniTable_SetSubEnum(upb_MiniTable* table, upb_MiniTableField* field,
|
|
|
74
74
|
return false;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
if ((table->UPB_PRIVATE(ext) & kUpb_ExtMode_IsMapEntry) &&
|
|
78
|
+
!upb_MiniTableEnum_CheckValue(sub, 0)) {
|
|
79
|
+
// An enum used in a map must include 0 as a value. This matches a check
|
|
80
|
+
// performed in protoc ("Enum value in map must define 0 as the first
|
|
81
|
+
// value"). Protoc should ensure that we never get here.
|
|
82
|
+
//
|
|
83
|
+
// This ends up being important if we receive wire messages where a map
|
|
84
|
+
// entry omits the value (and thus defaults to 0).
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
|
|
77
88
|
upb_MiniTableSub* table_sub =
|
|
78
89
|
(void*)&table->UPB_PRIVATE(subs)[field->UPB_PRIVATE(submsg_index)];
|
|
79
90
|
*table_sub = upb_MiniTableSub_FromEnum(sub);
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
#include "upb/base/descriptor_constants.h"
|
|
14
14
|
#include "upb/mini_table/enum.h"
|
|
15
|
+
#include "upb/mini_table/field.h"
|
|
15
16
|
#include "upb/mini_table/internal/extension.h"
|
|
16
17
|
#include "upb/mini_table/message.h"
|
|
17
18
|
|
|
@@ -30,6 +31,9 @@ upb_MiniTableExtension_CType(const upb_MiniTableExtension* e);
|
|
|
30
31
|
UPB_API_INLINE uint32_t
|
|
31
32
|
upb_MiniTableExtension_Number(const upb_MiniTableExtension* e);
|
|
32
33
|
|
|
34
|
+
UPB_API_INLINE const upb_MiniTable* upb_MiniTableExtension_Extendee(
|
|
35
|
+
const upb_MiniTableExtension* e);
|
|
36
|
+
|
|
33
37
|
UPB_API_INLINE const upb_MiniTable* upb_MiniTableExtension_GetSubMessage(
|
|
34
38
|
const upb_MiniTableExtension* e);
|
|
35
39
|
|
|
@@ -42,6 +46,9 @@ UPB_API_INLINE bool upb_MiniTableExtension_SetSubMessage(
|
|
|
42
46
|
UPB_API_INLINE bool upb_MiniTableExtension_SetSubEnum(
|
|
43
47
|
upb_MiniTableExtension* e, const upb_MiniTableEnum* m);
|
|
44
48
|
|
|
49
|
+
UPB_API_INLINE const upb_MiniTableField* upb_MiniTableExtension_ToField(
|
|
50
|
+
const upb_MiniTableExtension* e);
|
|
51
|
+
|
|
45
52
|
#ifdef __cplusplus
|
|
46
53
|
} /* extern "C" */
|
|
47
54
|
#endif
|
|
@@ -42,8 +42,17 @@ upb_ExtensionRegistry* upb_ExtensionRegistry_New(upb_Arena* arena) {
|
|
|
42
42
|
|
|
43
43
|
UPB_API upb_ExtensionRegistryStatus upb_ExtensionRegistry_Add(
|
|
44
44
|
upb_ExtensionRegistry* r, const upb_MiniTableExtension* e) {
|
|
45
|
+
uint32_t fieldnum = upb_MiniTableExtension_Number(e);
|
|
46
|
+
const upb_MiniTable* extendee = upb_MiniTableExtension_Extendee(e);
|
|
47
|
+
|
|
48
|
+
const uint32_t kMaxFieldNumber = (1 << 29) - 1;
|
|
49
|
+
if (fieldnum == 0 ||
|
|
50
|
+
(fieldnum > kMaxFieldNumber && !upb_MiniTable_IsMessageSet(extendee))) {
|
|
51
|
+
return kUpb_ExtensionRegistryStatus_InvalidExtension;
|
|
52
|
+
}
|
|
53
|
+
|
|
45
54
|
char buf[EXTREG_KEY_SIZE];
|
|
46
|
-
extreg_key(buf,
|
|
55
|
+
extreg_key(buf, extendee, fieldnum);
|
|
47
56
|
|
|
48
57
|
if (upb_strtable_lookup2(&r->exts, buf, EXTREG_KEY_SIZE, NULL)) {
|
|
49
58
|
return kUpb_ExtensionRegistryStatus_DuplicateEntry;
|
|
@@ -62,6 +62,7 @@ typedef enum {
|
|
|
62
62
|
kUpb_ExtensionRegistryStatus_Ok = 0,
|
|
63
63
|
kUpb_ExtensionRegistryStatus_DuplicateEntry = 1,
|
|
64
64
|
kUpb_ExtensionRegistryStatus_OutOfMemory = 2,
|
|
65
|
+
kUpb_ExtensionRegistryStatus_InvalidExtension = 3,
|
|
65
66
|
} upb_ExtensionRegistryStatus;
|
|
66
67
|
|
|
67
68
|
// Creates a upb_ExtensionRegistry in the given arena.
|
|
@@ -40,6 +40,11 @@ upb_MiniTableExtension_Number(const struct upb_MiniTableExtension* e) {
|
|
|
40
40
|
return e->UPB_PRIVATE(field).UPB_ONLYBITS(number);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
UPB_API_INLINE const struct upb_MiniTable* upb_MiniTableExtension_Extendee(
|
|
44
|
+
const struct upb_MiniTableExtension* e) {
|
|
45
|
+
return e->UPB_PRIVATE(extendee);
|
|
46
|
+
}
|
|
47
|
+
|
|
43
48
|
UPB_API_INLINE const struct upb_MiniTable* upb_MiniTableExtension_GetSubMessage(
|
|
44
49
|
const struct upb_MiniTableExtension* e) {
|
|
45
50
|
if (upb_MiniTableExtension_CType(e) != kUpb_CType_Message) {
|
|
@@ -76,6 +81,11 @@ UPB_API_INLINE bool upb_MiniTableExtension_SetSubEnum(
|
|
|
76
81
|
return true;
|
|
77
82
|
}
|
|
78
83
|
|
|
84
|
+
UPB_API_INLINE const upb_MiniTableField* upb_MiniTableExtension_ToField(
|
|
85
|
+
const struct upb_MiniTableExtension* e) {
|
|
86
|
+
return &e->UPB_PRIVATE(field);
|
|
87
|
+
}
|
|
88
|
+
|
|
79
89
|
UPB_INLINE upb_FieldRep UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(
|
|
80
90
|
const struct upb_MiniTableExtension* e) {
|
|
81
91
|
return UPB_PRIVATE(_upb_MiniTableField_GetRep)(&e->UPB_PRIVATE(field));
|
|
@@ -139,7 +139,7 @@ UPB_INLINE char UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(
|
|
|
139
139
|
const struct upb_MiniTableField* f) {
|
|
140
140
|
UPB_ASSERT(UPB_PRIVATE(_upb_MiniTableField_HasHasbit)(f));
|
|
141
141
|
const uint16_t index = f->presence;
|
|
142
|
-
return 1 << (index % 8);
|
|
142
|
+
return (char)(1 << (index % 8));
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
UPB_INLINE uint16_t UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(
|