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
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
#include "upb/mini_table/message.h"
|
|
43
43
|
#include "upb/wire/internal/constants.h"
|
|
44
44
|
#include "upb/wire/types.h"
|
|
45
|
+
#include "upb/wire/writer.h"
|
|
45
46
|
|
|
46
47
|
// Must be last.
|
|
47
48
|
#include "upb/port/def.inc"
|
|
@@ -53,20 +54,6 @@ static const upb_MiniTable* _upb_Encoder_GetSubMiniTable(
|
|
|
53
54
|
return *subs[field->UPB_PRIVATE(submsg_index)].UPB_PRIVATE(submsg);
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
#define UPB_PB_VARINT_MAX_LEN 10
|
|
57
|
-
|
|
58
|
-
UPB_NOINLINE
|
|
59
|
-
static size_t encode_varint64(uint64_t val, char* buf) {
|
|
60
|
-
size_t i = 0;
|
|
61
|
-
do {
|
|
62
|
-
uint8_t byte = val & 0x7fU;
|
|
63
|
-
val >>= 7;
|
|
64
|
-
if (val) byte |= 0x80U;
|
|
65
|
-
buf[i++] = byte;
|
|
66
|
-
} while (val);
|
|
67
|
-
return i;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
57
|
static uint32_t encode_zz32(int32_t n) {
|
|
71
58
|
return ((uint32_t)n << 1) ^ (n >> 31);
|
|
72
59
|
}
|
|
@@ -78,7 +65,9 @@ typedef struct {
|
|
|
78
65
|
upb_EncodeStatus status;
|
|
79
66
|
jmp_buf err;
|
|
80
67
|
upb_Arena* arena;
|
|
81
|
-
|
|
68
|
+
// These should only be used for arithmetic and reallocation to allow full
|
|
69
|
+
// aliasing analysis on the ptr argument.
|
|
70
|
+
const char UPB_NODEREF *buf, *limit;
|
|
82
71
|
int options;
|
|
83
72
|
int depth;
|
|
84
73
|
_upb_mapsorter sorter;
|
|
@@ -99,11 +88,12 @@ UPB_NORETURN static void encode_err(upb_encstate* e, upb_EncodeStatus s) {
|
|
|
99
88
|
}
|
|
100
89
|
|
|
101
90
|
UPB_NOINLINE
|
|
102
|
-
static
|
|
91
|
+
static char* encode_growbuffer(char* ptr, upb_encstate* e, size_t bytes) {
|
|
103
92
|
size_t old_size = e->limit - e->buf;
|
|
104
|
-
size_t needed_size = bytes + (e->limit -
|
|
93
|
+
size_t needed_size = bytes + (e->limit - ptr);
|
|
105
94
|
size_t new_size = upb_roundup_pow2(needed_size);
|
|
106
|
-
char* new_buf =
|
|
95
|
+
char* new_buf =
|
|
96
|
+
upb_Arena_Realloc(e->arena, (void*)e->buf, old_size, new_size);
|
|
107
97
|
|
|
108
98
|
if (!new_buf) encode_err(e, kUpb_EncodeStatus_OutOfMemory);
|
|
109
99
|
|
|
@@ -116,132 +106,246 @@ static void encode_growbuffer(upb_encstate* e, size_t bytes) {
|
|
|
116
106
|
|
|
117
107
|
e->buf = new_buf;
|
|
118
108
|
e->limit = new_buf + new_size;
|
|
119
|
-
|
|
109
|
+
return new_buf + new_size - needed_size;
|
|
120
110
|
}
|
|
121
111
|
|
|
122
|
-
/* Call to ensure that at least
|
|
123
|
-
*
|
|
112
|
+
/* Call to ensure that at least `bytes` bytes are available for writing at
|
|
113
|
+
* ptr. */
|
|
124
114
|
UPB_FORCEINLINE
|
|
125
|
-
|
|
126
|
-
if ((size_t)(
|
|
127
|
-
encode_growbuffer(e, bytes);
|
|
128
|
-
return;
|
|
115
|
+
char* encode_reserve(char* ptr, upb_encstate* e, size_t bytes) {
|
|
116
|
+
if ((size_t)(ptr - e->buf) < bytes) {
|
|
117
|
+
return encode_growbuffer(ptr, e, bytes);
|
|
129
118
|
}
|
|
130
119
|
|
|
131
|
-
|
|
120
|
+
return ptr - bytes;
|
|
132
121
|
}
|
|
133
122
|
|
|
134
123
|
/* Writes the given bytes to the buffer, handling reserve/advance. */
|
|
135
|
-
static
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
124
|
+
static char* encode_bytes(char* ptr, upb_encstate* e, const void* data,
|
|
125
|
+
size_t len) {
|
|
126
|
+
if (len == 0) return ptr; /* memcpy() with zero size is UB */
|
|
127
|
+
ptr = encode_reserve(ptr, e, len);
|
|
128
|
+
memcpy(ptr, data, len);
|
|
129
|
+
return ptr;
|
|
139
130
|
}
|
|
140
131
|
|
|
141
|
-
static
|
|
132
|
+
static char* encode_fixed64(char* ptr, upb_encstate* e, uint64_t val) {
|
|
142
133
|
val = upb_BigEndian64(val);
|
|
143
|
-
encode_bytes(e, &val, sizeof(uint64_t));
|
|
134
|
+
return encode_bytes(ptr, e, &val, sizeof(uint64_t));
|
|
144
135
|
}
|
|
145
136
|
|
|
146
|
-
static
|
|
137
|
+
static char* encode_fixed32(char* ptr, upb_encstate* e, uint32_t val) {
|
|
147
138
|
val = upb_BigEndian32(val);
|
|
148
|
-
encode_bytes(e, &val, sizeof(uint32_t));
|
|
139
|
+
return encode_bytes(ptr, e, &val, sizeof(uint32_t));
|
|
149
140
|
}
|
|
150
141
|
|
|
151
|
-
|
|
152
|
-
static void encode_longvarint(upb_encstate* e, uint64_t val) {
|
|
153
|
-
size_t len;
|
|
154
|
-
char* start;
|
|
142
|
+
#define UPB_PB_VARINT_MAX_LEN 10
|
|
155
143
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
144
|
+
#if UPB_ARM64_ASM
|
|
145
|
+
// Each arm64 instruction encodes to 4 bytes, and it takes two intructions
|
|
146
|
+
// to process each byte of output, so we branch ahead by (4 + 4) * skip to
|
|
147
|
+
// avoid the remaining bytes. When BTI is on, we need to use specific
|
|
148
|
+
// "landing pad" instructions, so we pad those with nop to make it a power
|
|
149
|
+
// of 2, skipping 16 bytes at each stage instead of 8. This carries some
|
|
150
|
+
// overhead especially on in-order cores so they're not included unless
|
|
151
|
+
// building with branch protection.
|
|
152
|
+
#if UPB_ARM64_BTI_DEFAULT
|
|
153
|
+
// BTI is used with jc targets here because we don't control which register will
|
|
154
|
+
// be used for addr; if it's x16 or x17 a `br` is treated like a call.
|
|
155
|
+
#define UPB_BTI_JC "bti jc\n"
|
|
156
|
+
#define UPB_BTI_NOP "nop\n"
|
|
157
|
+
#define UPB_BTI_SHIFT_IMM "4\n"
|
|
158
|
+
#else
|
|
159
|
+
#define UPB_BTI_JC
|
|
160
|
+
#define UPB_BTI_NOP
|
|
161
|
+
#define UPB_BTI_SHIFT_IMM "3\n"
|
|
162
|
+
#endif
|
|
163
|
+
UPB_NOINLINE static char* encode_longvarint(char* ptr, upb_encstate* e,
|
|
164
|
+
uint64_t val) {
|
|
165
|
+
ptr = encode_reserve(ptr, e, UPB_PB_VARINT_MAX_LEN);
|
|
166
|
+
uint64_t clz;
|
|
167
|
+
__asm__("clz %[cnt], %[val]\n" : [cnt] "=r"(clz) : [val] "r"(val));
|
|
168
|
+
|
|
169
|
+
uint32_t skip =
|
|
170
|
+
UPB_PRIVATE(upb_WireWriter_VarintUnusedSizeFromLeadingZeros64)(clz);
|
|
171
|
+
|
|
172
|
+
ptr += skip;
|
|
173
|
+
uint64_t addr, mask;
|
|
174
|
+
__asm__ volatile(
|
|
175
|
+
// Formatter keeps merging short lines
|
|
176
|
+
// clang-format off
|
|
177
|
+
"adr %[addr], 0f\n"
|
|
178
|
+
"add %[addr], %[addr], %[cnt], lsl #" UPB_BTI_SHIFT_IMM
|
|
179
|
+
"mov %w[mask], #0x80\n"
|
|
180
|
+
"br %[addr]\n"
|
|
181
|
+
".p2align " UPB_BTI_SHIFT_IMM
|
|
182
|
+
"0:\n"
|
|
183
|
+
// We don't need addr any more, but we've got the register for our whole
|
|
184
|
+
// assembly block so we'll use it as scratch to store the shift+masked
|
|
185
|
+
// values before storing them.
|
|
186
|
+
// The following stores are unsigned offset stores:
|
|
187
|
+
// strb Wt, [Xn, #imm]
|
|
188
|
+
UPB_BTI_JC
|
|
189
|
+
"orr %[addr], %[mask], %[val], lsr #56\n"
|
|
190
|
+
"strb %w[addr], [%[ptr], #8]\n"
|
|
191
|
+
UPB_BTI_NOP
|
|
192
|
+
|
|
193
|
+
UPB_BTI_JC
|
|
194
|
+
"orr %[addr], %[mask], %[val], lsr #49\n"
|
|
195
|
+
"strb %w[addr], [%[ptr], #7]\n"
|
|
196
|
+
UPB_BTI_NOP
|
|
197
|
+
|
|
198
|
+
UPB_BTI_JC
|
|
199
|
+
"orr %[addr], %[mask], %[val], lsr #42\n"
|
|
200
|
+
"strb %w[addr], [%[ptr], #6]\n"
|
|
201
|
+
UPB_BTI_NOP
|
|
202
|
+
|
|
203
|
+
UPB_BTI_JC
|
|
204
|
+
"orr %[addr], %[mask], %[val], lsr #35\n"
|
|
205
|
+
"strb %w[addr], [%[ptr], #5]\n"
|
|
206
|
+
UPB_BTI_NOP
|
|
207
|
+
|
|
208
|
+
UPB_BTI_JC
|
|
209
|
+
"orr %[addr], %[mask], %[val], lsr #28\n"
|
|
210
|
+
"strb %w[addr], [%[ptr], #4]\n"
|
|
211
|
+
UPB_BTI_NOP
|
|
212
|
+
|
|
213
|
+
UPB_BTI_JC
|
|
214
|
+
"orr %w[addr], %w[mask], %w[val], lsr #21\n"
|
|
215
|
+
"strb %w[addr], [%[ptr], #3]\n"
|
|
216
|
+
UPB_BTI_NOP
|
|
217
|
+
|
|
218
|
+
UPB_BTI_JC
|
|
219
|
+
"orr %w[addr], %w[mask], %w[val], lsr #14\n"
|
|
220
|
+
"strb %w[addr], [%[ptr], #2]\n"
|
|
221
|
+
UPB_BTI_NOP
|
|
222
|
+
|
|
223
|
+
UPB_BTI_JC
|
|
224
|
+
"orr %w[addr], %w[mask], %w[val], lsr #7\n"
|
|
225
|
+
"strb %w[addr], [%[ptr], #1]\n"
|
|
226
|
+
UPB_BTI_NOP
|
|
227
|
+
|
|
228
|
+
UPB_BTI_JC
|
|
229
|
+
"orr %w[addr], %w[val], #0x80\n"
|
|
230
|
+
"strb %w[addr], [%[ptr]]\n"
|
|
231
|
+
UPB_BTI_NOP
|
|
232
|
+
|
|
233
|
+
UPB_BTI_JC
|
|
234
|
+
// clang-format on
|
|
235
|
+
: [addr] "=&r"(addr), [mask] "=&r"(mask)
|
|
236
|
+
: [val] "r"(val), [ptr] "r"(ptr), [cnt] "r"((uint64_t)skip)
|
|
237
|
+
: "memory");
|
|
238
|
+
// Encode the final byte after the continuation bytes.
|
|
239
|
+
uint32_t continuations = UPB_PB_VARINT_MAX_LEN - 1 - skip;
|
|
240
|
+
ptr[continuations] = val >> (7 * continuations);
|
|
241
|
+
return ptr;
|
|
242
|
+
}
|
|
243
|
+
#undef UPB_BTI_JC
|
|
244
|
+
#undef UPB_BTI_NOP
|
|
245
|
+
#undef UPB_BTI_SHIFT_IMM
|
|
246
|
+
#else
|
|
247
|
+
UPB_NOINLINE
|
|
248
|
+
static char* encode_longvarint(char* ptr, upb_encstate* e, uint64_t val) {
|
|
249
|
+
ptr = encode_reserve(ptr, e, UPB_PB_VARINT_MAX_LEN);
|
|
250
|
+
size_t len = 0;
|
|
251
|
+
do {
|
|
252
|
+
uint8_t byte = val & 0x7fU;
|
|
253
|
+
val >>= 7;
|
|
254
|
+
if (val) byte |= 0x80U;
|
|
255
|
+
ptr[len++] = byte;
|
|
256
|
+
} while (val);
|
|
257
|
+
char* start = ptr + UPB_PB_VARINT_MAX_LEN - len;
|
|
258
|
+
memmove(start, ptr, len);
|
|
259
|
+
return start;
|
|
161
260
|
}
|
|
261
|
+
#endif
|
|
162
262
|
|
|
163
263
|
UPB_FORCEINLINE
|
|
164
|
-
|
|
165
|
-
if (val < 128 &&
|
|
166
|
-
--
|
|
167
|
-
*
|
|
264
|
+
char* encode_varint(char* ptr, upb_encstate* e, uint64_t val) {
|
|
265
|
+
if (val < 128 && ptr != e->buf) {
|
|
266
|
+
--ptr;
|
|
267
|
+
*ptr = val;
|
|
268
|
+
return ptr;
|
|
168
269
|
} else {
|
|
169
|
-
encode_longvarint(e, val);
|
|
270
|
+
return encode_longvarint(ptr, e, val);
|
|
170
271
|
}
|
|
171
272
|
}
|
|
172
273
|
|
|
173
|
-
static
|
|
274
|
+
static char* encode_double(char* ptr, upb_encstate* e, double d) {
|
|
174
275
|
uint64_t u64;
|
|
175
276
|
UPB_ASSERT(sizeof(double) == sizeof(uint64_t));
|
|
176
277
|
memcpy(&u64, &d, sizeof(uint64_t));
|
|
177
|
-
encode_fixed64(e, u64);
|
|
278
|
+
return encode_fixed64(ptr, e, u64);
|
|
178
279
|
}
|
|
179
280
|
|
|
180
|
-
static
|
|
281
|
+
static char* encode_float(char* ptr, upb_encstate* e, float d) {
|
|
181
282
|
uint32_t u32;
|
|
182
283
|
UPB_ASSERT(sizeof(float) == sizeof(uint32_t));
|
|
183
284
|
memcpy(&u32, &d, sizeof(uint32_t));
|
|
184
|
-
encode_fixed32(e, u32);
|
|
285
|
+
return encode_fixed32(ptr, e, u32);
|
|
185
286
|
}
|
|
186
287
|
|
|
187
|
-
static
|
|
188
|
-
|
|
189
|
-
encode_varint(e, (field_number << 3) | wire_type);
|
|
288
|
+
static char* encode_tag(char* ptr, upb_encstate* e, uint32_t field_number,
|
|
289
|
+
uint8_t wire_type) {
|
|
290
|
+
return encode_varint(ptr, e, (field_number << 3) | wire_type);
|
|
190
291
|
}
|
|
191
292
|
|
|
192
|
-
static
|
|
193
|
-
|
|
293
|
+
static char* encode_fixedarray(char* ptr, upb_encstate* e, const upb_Array* arr,
|
|
294
|
+
size_t elem_size, uint32_t tag) {
|
|
194
295
|
size_t bytes = upb_Array_Size(arr) * elem_size;
|
|
195
296
|
const char* data = upb_Array_DataPtr(arr);
|
|
196
|
-
const char*
|
|
297
|
+
const char* arr_ptr = data + bytes - elem_size;
|
|
197
298
|
|
|
198
299
|
if (tag || !upb_IsLittleEndian()) {
|
|
199
300
|
while (true) {
|
|
200
301
|
if (elem_size == 4) {
|
|
201
302
|
uint32_t val;
|
|
202
|
-
memcpy(&val,
|
|
303
|
+
memcpy(&val, arr_ptr, sizeof(val));
|
|
203
304
|
val = upb_BigEndian32(val);
|
|
204
|
-
encode_bytes(e, &val, elem_size);
|
|
305
|
+
ptr = encode_bytes(ptr, e, &val, elem_size);
|
|
205
306
|
} else {
|
|
206
307
|
UPB_ASSERT(elem_size == 8);
|
|
207
308
|
uint64_t val;
|
|
208
|
-
memcpy(&val,
|
|
309
|
+
memcpy(&val, arr_ptr, sizeof(val));
|
|
209
310
|
val = upb_BigEndian64(val);
|
|
210
|
-
encode_bytes(e, &val, elem_size);
|
|
311
|
+
ptr = encode_bytes(ptr, e, &val, elem_size);
|
|
211
312
|
}
|
|
212
313
|
|
|
213
|
-
if (tag)
|
|
214
|
-
|
|
215
|
-
|
|
314
|
+
if (tag) {
|
|
315
|
+
ptr = encode_varint(ptr, e, tag);
|
|
316
|
+
}
|
|
317
|
+
if (arr_ptr == data) break;
|
|
318
|
+
arr_ptr -= elem_size;
|
|
216
319
|
}
|
|
320
|
+
return ptr;
|
|
217
321
|
} else {
|
|
218
|
-
encode_bytes(e, data, bytes);
|
|
322
|
+
return encode_bytes(ptr, e, data, bytes);
|
|
219
323
|
}
|
|
220
324
|
}
|
|
221
325
|
|
|
222
|
-
static
|
|
223
|
-
|
|
326
|
+
static char* encode_message(char* ptr, upb_encstate* e, const upb_Message* msg,
|
|
327
|
+
const upb_MiniTable* m, size_t* size);
|
|
224
328
|
|
|
225
|
-
static
|
|
226
|
-
|
|
227
|
-
|
|
329
|
+
static char* encode_TaggedMessagePtr(char* ptr, upb_encstate* e,
|
|
330
|
+
upb_TaggedMessagePtr tagged,
|
|
331
|
+
const upb_MiniTable* m, size_t* size) {
|
|
228
332
|
if (upb_TaggedMessagePtr_IsEmpty(tagged)) {
|
|
229
333
|
m = UPB_PRIVATE(_upb_MiniTable_Empty)();
|
|
230
334
|
}
|
|
231
|
-
encode_message(
|
|
232
|
-
|
|
335
|
+
return encode_message(
|
|
336
|
+
ptr, e, UPB_PRIVATE(_upb_TaggedMessagePtr_GetMessage)(tagged), m, size);
|
|
233
337
|
}
|
|
234
338
|
|
|
235
|
-
static
|
|
236
|
-
|
|
237
|
-
|
|
339
|
+
static char* encode_scalar(char* ptr, upb_encstate* e, const void* _field_mem,
|
|
340
|
+
const upb_MiniTableSubInternal* subs,
|
|
341
|
+
const upb_MiniTableField* f) {
|
|
238
342
|
const char* field_mem = _field_mem;
|
|
239
343
|
int wire_type;
|
|
240
344
|
|
|
241
345
|
#define CASE(ctype, type, wtype, encodeval) \
|
|
242
346
|
{ \
|
|
243
347
|
ctype val = *(ctype*)field_mem; \
|
|
244
|
-
encode_##type(e, encodeval);
|
|
348
|
+
ptr = encode_##type(ptr, e, encodeval); \
|
|
245
349
|
wire_type = wtype; \
|
|
246
350
|
break; \
|
|
247
351
|
}
|
|
@@ -274,8 +378,8 @@ static void encode_scalar(upb_encstate* e, const void* _field_mem,
|
|
|
274
378
|
case kUpb_FieldType_String:
|
|
275
379
|
case kUpb_FieldType_Bytes: {
|
|
276
380
|
upb_StringView view = *(upb_StringView*)field_mem;
|
|
277
|
-
encode_bytes(e, view.data, view.size);
|
|
278
|
-
encode_varint(e, view.size);
|
|
381
|
+
ptr = encode_bytes(ptr, e, view.data, view.size);
|
|
382
|
+
ptr = encode_varint(ptr, e, view.size);
|
|
279
383
|
wire_type = kUpb_WireType_Delimited;
|
|
280
384
|
break;
|
|
281
385
|
}
|
|
@@ -284,11 +388,12 @@ static void encode_scalar(upb_encstate* e, const void* _field_mem,
|
|
|
284
388
|
upb_TaggedMessagePtr submsg = *(upb_TaggedMessagePtr*)field_mem;
|
|
285
389
|
const upb_MiniTable* subm = _upb_Encoder_GetSubMiniTable(subs, f);
|
|
286
390
|
if (submsg == 0) {
|
|
287
|
-
return;
|
|
391
|
+
return ptr;
|
|
288
392
|
}
|
|
289
393
|
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
|
290
|
-
encode_tag(e, upb_MiniTableField_Number(f),
|
|
291
|
-
|
|
394
|
+
ptr = encode_tag(ptr, e, upb_MiniTableField_Number(f),
|
|
395
|
+
kUpb_WireType_EndGroup);
|
|
396
|
+
ptr = encode_TaggedMessagePtr(ptr, e, submsg, subm, &size);
|
|
292
397
|
wire_type = kUpb_WireType_StartGroup;
|
|
293
398
|
e->depth++;
|
|
294
399
|
break;
|
|
@@ -298,11 +403,11 @@ static void encode_scalar(upb_encstate* e, const void* _field_mem,
|
|
|
298
403
|
upb_TaggedMessagePtr submsg = *(upb_TaggedMessagePtr*)field_mem;
|
|
299
404
|
const upb_MiniTable* subm = _upb_Encoder_GetSubMiniTable(subs, f);
|
|
300
405
|
if (submsg == 0) {
|
|
301
|
-
return;
|
|
406
|
+
return ptr;
|
|
302
407
|
}
|
|
303
408
|
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
|
304
|
-
encode_TaggedMessagePtr(e, submsg, subm, &size);
|
|
305
|
-
encode_varint(e, size);
|
|
409
|
+
ptr = encode_TaggedMessagePtr(ptr, e, submsg, subm, &size);
|
|
410
|
+
ptr = encode_varint(ptr, e, size);
|
|
306
411
|
wire_type = kUpb_WireType_Delimited;
|
|
307
412
|
e->depth++;
|
|
308
413
|
break;
|
|
@@ -312,31 +417,33 @@ static void encode_scalar(upb_encstate* e, const void* _field_mem,
|
|
|
312
417
|
}
|
|
313
418
|
#undef CASE
|
|
314
419
|
|
|
315
|
-
encode_tag(e, upb_MiniTableField_Number(f), wire_type);
|
|
420
|
+
return encode_tag(ptr, e, upb_MiniTableField_Number(f), wire_type);
|
|
316
421
|
}
|
|
317
422
|
|
|
318
|
-
static
|
|
319
|
-
|
|
320
|
-
|
|
423
|
+
static char* encode_array(char* ptr, upb_encstate* e, const upb_Message* msg,
|
|
424
|
+
const upb_MiniTableSubInternal* subs,
|
|
425
|
+
const upb_MiniTableField* f) {
|
|
321
426
|
const upb_Array* arr = *UPB_PTR_AT(msg, f->UPB_PRIVATE(offset), upb_Array*);
|
|
322
427
|
bool packed = upb_MiniTableField_IsPacked(f);
|
|
323
|
-
size_t pre_len = e->limit -
|
|
428
|
+
size_t pre_len = e->limit - ptr;
|
|
324
429
|
|
|
325
430
|
if (arr == NULL || upb_Array_Size(arr) == 0) {
|
|
326
|
-
return;
|
|
431
|
+
return ptr;
|
|
327
432
|
}
|
|
328
433
|
|
|
329
434
|
#define VARINT_CASE(ctype, encode) \
|
|
330
435
|
{ \
|
|
331
436
|
const ctype* start = upb_Array_DataPtr(arr); \
|
|
332
|
-
const ctype*
|
|
437
|
+
const ctype* arr_ptr = start + upb_Array_Size(arr); \
|
|
333
438
|
uint32_t tag = \
|
|
334
439
|
packed ? 0 : (f->UPB_PRIVATE(number) << 3) | kUpb_WireType_Varint; \
|
|
335
440
|
do { \
|
|
336
|
-
|
|
337
|
-
encode_varint(e, encode);
|
|
338
|
-
if (tag)
|
|
339
|
-
|
|
441
|
+
arr_ptr--; \
|
|
442
|
+
ptr = encode_varint(ptr, e, encode); \
|
|
443
|
+
if (tag) { \
|
|
444
|
+
ptr = encode_varint(ptr, e, tag); \
|
|
445
|
+
} \
|
|
446
|
+
} while (arr_ptr != start); \
|
|
340
447
|
} \
|
|
341
448
|
break;
|
|
342
449
|
|
|
@@ -344,106 +451,117 @@ static void encode_array(upb_encstate* e, const upb_Message* msg,
|
|
|
344
451
|
|
|
345
452
|
switch (f->UPB_PRIVATE(descriptortype)) {
|
|
346
453
|
case kUpb_FieldType_Double:
|
|
347
|
-
encode_fixedarray(e, arr, sizeof(double),
|
|
454
|
+
ptr = encode_fixedarray(ptr, e, arr, sizeof(double),
|
|
455
|
+
TAG(kUpb_WireType_64Bit));
|
|
348
456
|
break;
|
|
349
457
|
case kUpb_FieldType_Float:
|
|
350
|
-
encode_fixedarray(e, arr, sizeof(float),
|
|
458
|
+
ptr = encode_fixedarray(ptr, e, arr, sizeof(float),
|
|
459
|
+
TAG(kUpb_WireType_32Bit));
|
|
351
460
|
break;
|
|
352
461
|
case kUpb_FieldType_SFixed64:
|
|
353
462
|
case kUpb_FieldType_Fixed64:
|
|
354
|
-
encode_fixedarray(e, arr, sizeof(uint64_t),
|
|
463
|
+
ptr = encode_fixedarray(ptr, e, arr, sizeof(uint64_t),
|
|
464
|
+
TAG(kUpb_WireType_64Bit));
|
|
355
465
|
break;
|
|
356
466
|
case kUpb_FieldType_Fixed32:
|
|
357
467
|
case kUpb_FieldType_SFixed32:
|
|
358
|
-
encode_fixedarray(e, arr, sizeof(uint32_t),
|
|
468
|
+
ptr = encode_fixedarray(ptr, e, arr, sizeof(uint32_t),
|
|
469
|
+
TAG(kUpb_WireType_32Bit));
|
|
359
470
|
break;
|
|
360
471
|
case kUpb_FieldType_Int64:
|
|
361
472
|
case kUpb_FieldType_UInt64:
|
|
362
|
-
VARINT_CASE(uint64_t, *
|
|
473
|
+
VARINT_CASE(uint64_t, *arr_ptr);
|
|
363
474
|
case kUpb_FieldType_UInt32:
|
|
364
|
-
VARINT_CASE(uint32_t, *
|
|
475
|
+
VARINT_CASE(uint32_t, *arr_ptr);
|
|
365
476
|
case kUpb_FieldType_Int32:
|
|
366
477
|
case kUpb_FieldType_Enum:
|
|
367
|
-
VARINT_CASE(int32_t, (int64_t)*
|
|
478
|
+
VARINT_CASE(int32_t, (int64_t)*arr_ptr);
|
|
368
479
|
case kUpb_FieldType_Bool:
|
|
369
|
-
VARINT_CASE(bool, *
|
|
480
|
+
VARINT_CASE(bool, *arr_ptr);
|
|
370
481
|
case kUpb_FieldType_SInt32:
|
|
371
|
-
VARINT_CASE(int32_t, encode_zz32(*
|
|
482
|
+
VARINT_CASE(int32_t, encode_zz32(*arr_ptr));
|
|
372
483
|
case kUpb_FieldType_SInt64:
|
|
373
|
-
VARINT_CASE(int64_t, encode_zz64(*
|
|
484
|
+
VARINT_CASE(int64_t, encode_zz64(*arr_ptr));
|
|
374
485
|
case kUpb_FieldType_String:
|
|
375
486
|
case kUpb_FieldType_Bytes: {
|
|
376
487
|
const upb_StringView* start = upb_Array_DataPtr(arr);
|
|
377
|
-
const upb_StringView*
|
|
488
|
+
const upb_StringView* str_ptr = start + upb_Array_Size(arr);
|
|
378
489
|
do {
|
|
379
|
-
|
|
380
|
-
encode_bytes(e,
|
|
381
|
-
encode_varint(e,
|
|
382
|
-
encode_tag(e, upb_MiniTableField_Number(f),
|
|
383
|
-
|
|
384
|
-
|
|
490
|
+
str_ptr--;
|
|
491
|
+
ptr = encode_bytes(ptr, e, str_ptr->data, str_ptr->size);
|
|
492
|
+
ptr = encode_varint(ptr, e, str_ptr->size);
|
|
493
|
+
ptr = encode_tag(ptr, e, upb_MiniTableField_Number(f),
|
|
494
|
+
kUpb_WireType_Delimited);
|
|
495
|
+
} while (str_ptr != start);
|
|
496
|
+
return ptr;
|
|
385
497
|
}
|
|
386
498
|
case kUpb_FieldType_Group: {
|
|
387
499
|
const upb_TaggedMessagePtr* start = upb_Array_DataPtr(arr);
|
|
388
|
-
const upb_TaggedMessagePtr*
|
|
500
|
+
const upb_TaggedMessagePtr* arr_ptr = start + upb_Array_Size(arr);
|
|
389
501
|
const upb_MiniTable* subm = _upb_Encoder_GetSubMiniTable(subs, f);
|
|
390
502
|
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
|
391
503
|
do {
|
|
392
504
|
size_t size;
|
|
393
|
-
|
|
394
|
-
encode_tag(e, upb_MiniTableField_Number(f),
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
505
|
+
arr_ptr--;
|
|
506
|
+
ptr = encode_tag(ptr, e, upb_MiniTableField_Number(f),
|
|
507
|
+
kUpb_WireType_EndGroup);
|
|
508
|
+
ptr = encode_TaggedMessagePtr(ptr, e, *arr_ptr, subm, &size);
|
|
509
|
+
ptr = encode_tag(ptr, e, upb_MiniTableField_Number(f),
|
|
510
|
+
kUpb_WireType_StartGroup);
|
|
511
|
+
} while (arr_ptr != start);
|
|
398
512
|
e->depth++;
|
|
399
|
-
return;
|
|
513
|
+
return ptr;
|
|
400
514
|
}
|
|
401
515
|
case kUpb_FieldType_Message: {
|
|
402
516
|
const upb_TaggedMessagePtr* start = upb_Array_DataPtr(arr);
|
|
403
|
-
const upb_TaggedMessagePtr*
|
|
517
|
+
const upb_TaggedMessagePtr* arr_ptr = start + upb_Array_Size(arr);
|
|
404
518
|
const upb_MiniTable* subm = _upb_Encoder_GetSubMiniTable(subs, f);
|
|
405
519
|
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
|
406
520
|
do {
|
|
407
521
|
size_t size;
|
|
408
|
-
|
|
409
|
-
encode_TaggedMessagePtr(e, *
|
|
410
|
-
encode_varint(e, size);
|
|
411
|
-
encode_tag(e, upb_MiniTableField_Number(f),
|
|
412
|
-
|
|
522
|
+
arr_ptr--;
|
|
523
|
+
ptr = encode_TaggedMessagePtr(ptr, e, *arr_ptr, subm, &size);
|
|
524
|
+
ptr = encode_varint(ptr, e, size);
|
|
525
|
+
ptr = encode_tag(ptr, e, upb_MiniTableField_Number(f),
|
|
526
|
+
kUpb_WireType_Delimited);
|
|
527
|
+
} while (arr_ptr != start);
|
|
413
528
|
e->depth++;
|
|
414
|
-
return;
|
|
529
|
+
return ptr;
|
|
415
530
|
}
|
|
416
531
|
}
|
|
417
532
|
#undef VARINT_CASE
|
|
418
533
|
|
|
419
534
|
if (packed) {
|
|
420
|
-
encode_varint(e, e->limit -
|
|
421
|
-
encode_tag(e, upb_MiniTableField_Number(f),
|
|
535
|
+
ptr = encode_varint(ptr, e, e->limit - ptr - pre_len);
|
|
536
|
+
ptr = encode_tag(ptr, e, upb_MiniTableField_Number(f),
|
|
537
|
+
kUpb_WireType_Delimited);
|
|
422
538
|
}
|
|
539
|
+
return ptr;
|
|
423
540
|
}
|
|
424
541
|
|
|
425
|
-
static
|
|
426
|
-
|
|
427
|
-
|
|
542
|
+
static char* encode_mapentry(char* ptr, upb_encstate* e, uint32_t number,
|
|
543
|
+
const upb_MiniTable* layout,
|
|
544
|
+
const upb_MapEntry* ent) {
|
|
428
545
|
const upb_MiniTableField* key_field = upb_MiniTable_MapKey(layout);
|
|
429
546
|
const upb_MiniTableField* val_field = upb_MiniTable_MapValue(layout);
|
|
430
|
-
size_t pre_len = e->limit -
|
|
547
|
+
size_t pre_len = e->limit - ptr;
|
|
431
548
|
size_t size;
|
|
432
|
-
encode_scalar(e, &ent->v, layout->UPB_PRIVATE(subs), val_field);
|
|
433
|
-
encode_scalar(e, &ent->k, layout->UPB_PRIVATE(subs), key_field);
|
|
434
|
-
size = (e->limit -
|
|
435
|
-
encode_varint(e, size);
|
|
436
|
-
encode_tag(e, number, kUpb_WireType_Delimited);
|
|
549
|
+
ptr = encode_scalar(ptr, e, &ent->v, layout->UPB_PRIVATE(subs), val_field);
|
|
550
|
+
ptr = encode_scalar(ptr, e, &ent->k, layout->UPB_PRIVATE(subs), key_field);
|
|
551
|
+
size = (e->limit - ptr) - pre_len;
|
|
552
|
+
ptr = encode_varint(ptr, e, size);
|
|
553
|
+
ptr = encode_tag(ptr, e, number, kUpb_WireType_Delimited);
|
|
554
|
+
return ptr;
|
|
437
555
|
}
|
|
438
556
|
|
|
439
|
-
static
|
|
440
|
-
|
|
441
|
-
|
|
557
|
+
static char* encode_map(char* ptr, upb_encstate* e, const upb_Message* msg,
|
|
558
|
+
const upb_MiniTableSubInternal* subs,
|
|
559
|
+
const upb_MiniTableField* f) {
|
|
442
560
|
const upb_Map* map = *UPB_PTR_AT(msg, f->UPB_PRIVATE(offset), const upb_Map*);
|
|
443
561
|
const upb_MiniTable* layout = _upb_Encoder_GetSubMiniTable(subs, f);
|
|
444
562
|
UPB_ASSERT(upb_MiniTable_FieldCount(layout) == 2);
|
|
445
563
|
|
|
446
|
-
if (!map || !upb_Map_Size(map)) return;
|
|
564
|
+
if (!map || !upb_Map_Size(map)) return ptr;
|
|
447
565
|
|
|
448
566
|
if (e->options & kUpb_EncodeOption_Deterministic) {
|
|
449
567
|
if (!map->UPB_PRIVATE(is_strtable)) {
|
|
@@ -455,7 +573,8 @@ static void encode_map(upb_encstate* e, const upb_Message* msg,
|
|
|
455
573
|
upb_MapEntry ent;
|
|
456
574
|
memcpy(&ent.k, &iter, sizeof(iter));
|
|
457
575
|
_upb_map_fromvalue(value, &ent.v, map->val_size);
|
|
458
|
-
encode_mapentry(e, upb_MiniTableField_Number(f), layout,
|
|
576
|
+
ptr = encode_mapentry(ptr, e, upb_MiniTableField_Number(f), layout,
|
|
577
|
+
&ent);
|
|
459
578
|
}
|
|
460
579
|
}
|
|
461
580
|
}
|
|
@@ -465,7 +584,7 @@ static void encode_map(upb_encstate* e, const upb_Message* msg,
|
|
|
465
584
|
map, &sorted);
|
|
466
585
|
upb_MapEntry ent;
|
|
467
586
|
while (_upb_sortedmap_next(&e->sorter, map, &sorted, &ent)) {
|
|
468
|
-
encode_mapentry(e, upb_MiniTableField_Number(f), layout, &ent);
|
|
587
|
+
ptr = encode_mapentry(ptr, e, upb_MiniTableField_Number(f), layout, &ent);
|
|
469
588
|
}
|
|
470
589
|
_upb_mapsorter_popmap(&e->sorter, &sorted);
|
|
471
590
|
} else {
|
|
@@ -477,7 +596,8 @@ static void encode_map(upb_encstate* e, const upb_Message* msg,
|
|
|
477
596
|
upb_MapEntry ent;
|
|
478
597
|
_upb_map_fromkey(strkey, &ent.k, map->key_size);
|
|
479
598
|
_upb_map_fromvalue(val, &ent.v, map->val_size);
|
|
480
|
-
|
|
599
|
+
ptr =
|
|
600
|
+
encode_mapentry(ptr, e, upb_MiniTableField_Number(f), layout, &ent);
|
|
481
601
|
}
|
|
482
602
|
} else {
|
|
483
603
|
intptr_t iter = UPB_INTTABLE_BEGIN;
|
|
@@ -486,13 +606,15 @@ static void encode_map(upb_encstate* e, const upb_Message* msg,
|
|
|
486
606
|
upb_MapEntry ent;
|
|
487
607
|
memcpy(&ent.k, &intkey, map->key_size);
|
|
488
608
|
_upb_map_fromvalue(val, &ent.v, map->val_size);
|
|
489
|
-
|
|
609
|
+
ptr =
|
|
610
|
+
encode_mapentry(ptr, e, upb_MiniTableField_Number(f), layout, &ent);
|
|
490
611
|
}
|
|
491
612
|
}
|
|
492
613
|
}
|
|
614
|
+
return ptr;
|
|
493
615
|
}
|
|
494
616
|
|
|
495
|
-
static bool encode_shouldencode(
|
|
617
|
+
static bool encode_shouldencode(const upb_Message* msg,
|
|
496
618
|
const upb_MiniTableField* f) {
|
|
497
619
|
if (f->presence == 0) {
|
|
498
620
|
// Proto3 presence or map/array.
|
|
@@ -530,43 +652,43 @@ static bool encode_shouldencode(upb_encstate* e, const upb_Message* msg,
|
|
|
530
652
|
}
|
|
531
653
|
}
|
|
532
654
|
|
|
533
|
-
static
|
|
534
|
-
|
|
535
|
-
|
|
655
|
+
static char* encode_field(char* ptr, upb_encstate* e, const upb_Message* msg,
|
|
656
|
+
const upb_MiniTableSubInternal* subs,
|
|
657
|
+
const upb_MiniTableField* field) {
|
|
536
658
|
switch (UPB_PRIVATE(_upb_MiniTableField_Mode)(field)) {
|
|
537
659
|
case kUpb_FieldMode_Array:
|
|
538
|
-
encode_array(e, msg, subs, field);
|
|
539
|
-
break;
|
|
660
|
+
return encode_array(ptr, e, msg, subs, field);
|
|
540
661
|
case kUpb_FieldMode_Map:
|
|
541
|
-
encode_map(e, msg, subs, field);
|
|
542
|
-
break;
|
|
662
|
+
return encode_map(ptr, e, msg, subs, field);
|
|
543
663
|
case kUpb_FieldMode_Scalar:
|
|
544
|
-
encode_scalar(
|
|
545
|
-
|
|
546
|
-
|
|
664
|
+
return encode_scalar(ptr, e,
|
|
665
|
+
UPB_PTR_AT(msg, field->UPB_PRIVATE(offset), void),
|
|
666
|
+
subs, field);
|
|
547
667
|
default:
|
|
548
668
|
UPB_UNREACHABLE();
|
|
549
669
|
}
|
|
550
670
|
}
|
|
551
671
|
|
|
552
|
-
static
|
|
553
|
-
|
|
554
|
-
|
|
672
|
+
static char* encode_msgset_item(char* ptr, upb_encstate* e,
|
|
673
|
+
const upb_MiniTableExtension* ext,
|
|
674
|
+
const upb_MessageValue ext_val) {
|
|
555
675
|
size_t size;
|
|
556
|
-
encode_tag(e, kUpb_MsgSet_Item, kUpb_WireType_EndGroup);
|
|
557
|
-
encode_message(e, ext_val.msg_val,
|
|
558
|
-
|
|
559
|
-
encode_varint(e, size);
|
|
560
|
-
encode_tag(e, kUpb_MsgSet_Message, kUpb_WireType_Delimited);
|
|
561
|
-
encode_varint(e, upb_MiniTableExtension_Number(ext));
|
|
562
|
-
encode_tag(e, kUpb_MsgSet_TypeId, kUpb_WireType_Varint);
|
|
563
|
-
encode_tag(e, kUpb_MsgSet_Item, kUpb_WireType_StartGroup);
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
676
|
+
ptr = encode_tag(ptr, e, kUpb_MsgSet_Item, kUpb_WireType_EndGroup);
|
|
677
|
+
ptr = encode_message(ptr, e, ext_val.msg_val,
|
|
678
|
+
upb_MiniTableExtension_GetSubMessage(ext), &size);
|
|
679
|
+
ptr = encode_varint(ptr, e, size);
|
|
680
|
+
ptr = encode_tag(ptr, e, kUpb_MsgSet_Message, kUpb_WireType_Delimited);
|
|
681
|
+
ptr = encode_varint(ptr, e, upb_MiniTableExtension_Number(ext));
|
|
682
|
+
ptr = encode_tag(ptr, e, kUpb_MsgSet_TypeId, kUpb_WireType_Varint);
|
|
683
|
+
ptr = encode_tag(ptr, e, kUpb_MsgSet_Item, kUpb_WireType_StartGroup);
|
|
684
|
+
return ptr;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
static char* encode_ext(char* ptr, upb_encstate* e,
|
|
688
|
+
const upb_MiniTableExtension* ext,
|
|
689
|
+
upb_MessageValue ext_val, bool is_message_set) {
|
|
568
690
|
if (UPB_UNLIKELY(is_message_set)) {
|
|
569
|
-
encode_msgset_item(e, ext, ext_val);
|
|
691
|
+
ptr = encode_msgset_item(ptr, e, ext, ext_val);
|
|
570
692
|
} else {
|
|
571
693
|
upb_MiniTableSubInternal sub;
|
|
572
694
|
if (upb_MiniTableField_IsSubMessage(&ext->UPB_PRIVATE(field))) {
|
|
@@ -574,17 +696,18 @@ static void encode_ext(upb_encstate* e, const upb_MiniTableExtension* ext,
|
|
|
574
696
|
} else {
|
|
575
697
|
sub.UPB_PRIVATE(subenum) = ext->UPB_PRIVATE(sub).UPB_PRIVATE(subenum);
|
|
576
698
|
}
|
|
577
|
-
encode_field(e, &ext_val.UPB_PRIVATE(ext_msg_val), &sub,
|
|
578
|
-
|
|
699
|
+
ptr = encode_field(ptr, e, &ext_val.UPB_PRIVATE(ext_msg_val), &sub,
|
|
700
|
+
&ext->UPB_PRIVATE(field));
|
|
579
701
|
}
|
|
702
|
+
return ptr;
|
|
580
703
|
}
|
|
581
704
|
|
|
582
|
-
static
|
|
583
|
-
|
|
584
|
-
if (m->UPB_PRIVATE(ext) == kUpb_ExtMode_NonExtendable) return;
|
|
705
|
+
static char* encode_exts(char* ptr, upb_encstate* e, const upb_MiniTable* m,
|
|
706
|
+
const upb_Message* msg) {
|
|
707
|
+
if (m->UPB_PRIVATE(ext) == kUpb_ExtMode_NonExtendable) return ptr;
|
|
585
708
|
|
|
586
709
|
upb_Message_Internal* in = UPB_PRIVATE(_upb_Message_GetInternal)(msg);
|
|
587
|
-
if (!in) return;
|
|
710
|
+
if (!in) return ptr;
|
|
588
711
|
|
|
589
712
|
/* Encode all extensions together. Unlike C++, we do not attempt to keep
|
|
590
713
|
* these in field number order relative to normal fields or even to each
|
|
@@ -595,7 +718,7 @@ static void encode_exts(upb_encstate* e, const upb_MiniTable* m,
|
|
|
595
718
|
if (!UPB_PRIVATE(_upb_Message_NextExtensionReverse)(msg, &ext, &ext_val,
|
|
596
719
|
&iter)) {
|
|
597
720
|
// Message has no extensions.
|
|
598
|
-
return;
|
|
721
|
+
return ptr;
|
|
599
722
|
}
|
|
600
723
|
|
|
601
724
|
if (e->options & kUpb_EncodeOption_Deterministic) {
|
|
@@ -605,22 +728,23 @@ static void encode_exts(upb_encstate* e, const upb_MiniTable* m,
|
|
|
605
728
|
}
|
|
606
729
|
const upb_Extension* ext;
|
|
607
730
|
while (_upb_sortedmap_nextext(&e->sorter, &sorted, &ext)) {
|
|
608
|
-
encode_ext(e, ext->ext, ext->data,
|
|
609
|
-
|
|
731
|
+
ptr = encode_ext(ptr, e, ext->ext, ext->data,
|
|
732
|
+
m->UPB_PRIVATE(ext) == kUpb_ExtMode_IsMessageSet);
|
|
610
733
|
}
|
|
611
734
|
_upb_mapsorter_popmap(&e->sorter, &sorted);
|
|
612
735
|
} else {
|
|
613
736
|
do {
|
|
614
|
-
encode_ext(e, ext, ext_val,
|
|
615
|
-
|
|
737
|
+
ptr = encode_ext(ptr, e, ext, ext_val,
|
|
738
|
+
m->UPB_PRIVATE(ext) == kUpb_ExtMode_IsMessageSet);
|
|
616
739
|
} while (UPB_PRIVATE(_upb_Message_NextExtensionReverse)(msg, &ext, &ext_val,
|
|
617
740
|
&iter));
|
|
618
741
|
}
|
|
742
|
+
return ptr;
|
|
619
743
|
}
|
|
620
744
|
|
|
621
|
-
static
|
|
622
|
-
|
|
623
|
-
size_t pre_len = e->limit -
|
|
745
|
+
static char* encode_message(char* ptr, upb_encstate* e, const upb_Message* msg,
|
|
746
|
+
const upb_MiniTable* m, size_t* size) {
|
|
747
|
+
size_t pre_len = e->limit - ptr;
|
|
624
748
|
|
|
625
749
|
if (e->options & kUpb_EncodeOption_CheckRequired) {
|
|
626
750
|
if (m->UPB_PRIVATE(required_count)) {
|
|
@@ -640,17 +764,17 @@ static void encode_message(upb_encstate* e, const upb_Message* msg,
|
|
|
640
764
|
unknown_size += unknown.size;
|
|
641
765
|
}
|
|
642
766
|
if (unknown_size != 0) {
|
|
643
|
-
encode_reserve(e, unknown_size);
|
|
644
|
-
char*
|
|
767
|
+
ptr = encode_reserve(ptr, e, unknown_size);
|
|
768
|
+
char* tmp_ptr = ptr;
|
|
645
769
|
iter = kUpb_Message_UnknownBegin;
|
|
646
770
|
while (upb_Message_NextUnknown(msg, &unknown, &iter)) {
|
|
647
|
-
memcpy(
|
|
648
|
-
|
|
771
|
+
memcpy(tmp_ptr, unknown.data, unknown.size);
|
|
772
|
+
tmp_ptr += unknown.size;
|
|
649
773
|
}
|
|
650
774
|
}
|
|
651
775
|
}
|
|
652
776
|
|
|
653
|
-
encode_exts(e, m, msg);
|
|
777
|
+
ptr = encode_exts(ptr, e, m, msg);
|
|
654
778
|
|
|
655
779
|
if (upb_MiniTable_FieldCount(m)) {
|
|
656
780
|
const upb_MiniTableField* f =
|
|
@@ -658,16 +782,18 @@ static void encode_message(upb_encstate* e, const upb_Message* msg,
|
|
|
658
782
|
const upb_MiniTableField* first = &m->UPB_PRIVATE(fields)[0];
|
|
659
783
|
while (f != first) {
|
|
660
784
|
f--;
|
|
661
|
-
if (encode_shouldencode(
|
|
662
|
-
encode_field(e, msg, m->UPB_PRIVATE(subs), f);
|
|
785
|
+
if (encode_shouldencode(msg, f)) {
|
|
786
|
+
ptr = encode_field(ptr, e, msg, m->UPB_PRIVATE(subs), f);
|
|
663
787
|
}
|
|
664
788
|
}
|
|
665
789
|
}
|
|
666
790
|
|
|
667
|
-
*size = (e->limit -
|
|
791
|
+
*size = (e->limit - ptr) - pre_len;
|
|
792
|
+
return ptr;
|
|
668
793
|
}
|
|
669
794
|
|
|
670
|
-
static upb_EncodeStatus upb_Encoder_Encode(
|
|
795
|
+
static upb_EncodeStatus upb_Encoder_Encode(char* ptr,
|
|
796
|
+
upb_encstate* const encoder,
|
|
671
797
|
const upb_Message* const msg,
|
|
672
798
|
const upb_MiniTable* const l,
|
|
673
799
|
char** const buf, size_t* const size,
|
|
@@ -678,17 +804,17 @@ static upb_EncodeStatus upb_Encoder_Encode(upb_encstate* const encoder,
|
|
|
678
804
|
// NULL on error and we still set it to non-NULL on a successful empty result.
|
|
679
805
|
if (UPB_SETJMP(encoder->err) == 0) {
|
|
680
806
|
size_t encoded_msg_size;
|
|
681
|
-
encode_message(encoder, msg, l, &encoded_msg_size);
|
|
807
|
+
ptr = encode_message(ptr, encoder, msg, l, &encoded_msg_size);
|
|
682
808
|
if (prepend_len) {
|
|
683
|
-
encode_varint(encoder, encoded_msg_size);
|
|
809
|
+
ptr = encode_varint(ptr, encoder, encoded_msg_size);
|
|
684
810
|
}
|
|
685
|
-
*size = encoder->limit -
|
|
811
|
+
*size = encoder->limit - ptr;
|
|
686
812
|
if (*size == 0) {
|
|
687
813
|
static char ch;
|
|
688
814
|
*buf = &ch;
|
|
689
815
|
} else {
|
|
690
|
-
UPB_ASSERT(
|
|
691
|
-
*buf =
|
|
816
|
+
UPB_ASSERT(ptr);
|
|
817
|
+
*buf = ptr;
|
|
692
818
|
}
|
|
693
819
|
} else {
|
|
694
820
|
UPB_ASSERT(encoder->status != kUpb_EncodeStatus_Ok);
|
|
@@ -700,6 +826,10 @@ static upb_EncodeStatus upb_Encoder_Encode(upb_encstate* const encoder,
|
|
|
700
826
|
return encoder->status;
|
|
701
827
|
}
|
|
702
828
|
|
|
829
|
+
static uint16_t upb_EncodeOptions_GetMaxDepth(uint32_t options) {
|
|
830
|
+
return options >> 16;
|
|
831
|
+
}
|
|
832
|
+
|
|
703
833
|
uint16_t upb_EncodeOptions_GetEffectiveMaxDepth(uint32_t options) {
|
|
704
834
|
uint16_t max_depth = upb_EncodeOptions_GetMaxDepth(options);
|
|
705
835
|
return max_depth ? max_depth : kUpb_WireFormat_DefaultDepthLimit;
|
|
@@ -715,12 +845,11 @@ static upb_EncodeStatus _upb_Encode(const upb_Message* msg,
|
|
|
715
845
|
e.arena = arena;
|
|
716
846
|
e.buf = NULL;
|
|
717
847
|
e.limit = NULL;
|
|
718
|
-
e.ptr = NULL;
|
|
719
848
|
e.depth = upb_EncodeOptions_GetEffectiveMaxDepth(options);
|
|
720
849
|
e.options = options;
|
|
721
850
|
_upb_mapsorter_init(&e.sorter);
|
|
722
851
|
|
|
723
|
-
return upb_Encoder_Encode(&e, msg, l, buf, size, prepend_len);
|
|
852
|
+
return upb_Encoder_Encode(NULL, &e, msg, l, buf, size, prepend_len);
|
|
724
853
|
}
|
|
725
854
|
|
|
726
855
|
upb_EncodeStatus upb_Encode(const upb_Message* msg, const upb_MiniTable* l,
|