grpc 1.81.0 → 1.82.0.pre1
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 +12 -9
- data/include/grpc/grpc.h +6 -7
- data/include/grpc/impl/channel_arg_names.h +3 -1
- data/src/core/call/call_filters.h +2 -2
- data/src/core/call/client_call.cc +1 -1
- data/src/core/call/interception_chain.h +6 -9
- data/src/core/call/metadata.h +1 -1
- data/src/core/call/metadata_batch.cc +1 -1
- data/src/core/call/metadata_batch.h +17 -1
- data/src/core/call/parsed_metadata.h +7 -2
- data/src/core/call/server_call.cc +4 -2
- data/src/core/call/server_call.h +9 -2
- data/src/core/call/status_util.cc +0 -4
- data/src/core/call/status_util.h +0 -3
- data/src/core/channelz/channel_trace.cc +3 -1
- data/src/core/client_channel/backup_poller.cc +1 -1
- data/src/core/client_channel/client_channel.cc +6 -14
- data/src/core/client_channel/client_channel.h +2 -2
- data/src/core/client_channel/client_channel_filter.cc +8 -17
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/client_channel/config_selector.h +2 -7
- data/src/core/client_channel/dynamic_filters.cc +4 -7
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/retry_filter.cc +2 -25
- data/src/core/client_channel/retry_filter.h +3 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +1 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.h +2 -2
- data/src/core/client_channel/retry_interceptor.cc +7 -35
- data/src/core/client_channel/retry_interceptor.h +11 -14
- data/src/core/client_channel/retry_service_config.cc +0 -2
- data/src/core/client_channel/retry_service_config.h +0 -2
- data/src/core/client_channel/retry_throttle.cc +19 -7
- data/src/core/client_channel/retry_throttle.h +24 -7
- data/src/core/client_channel/subchannel.cc +1 -1
- data/src/core/credentials/call/external/external_account_credentials.cc +125 -12
- data/src/core/credentials/call/external/external_account_credentials.h +6 -1
- data/src/core/credentials/call/jwt/jwt_credentials.cc +11 -1
- data/src/core/credentials/call/jwt/jwt_credentials.h +3 -0
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +64 -11
- data/src/core/credentials/call/oauth2/oauth2_credentials.h +0 -1
- data/src/core/credentials/call/regional_access_boundary_fetcher.cc +411 -0
- data/src/core/credentials/call/regional_access_boundary_fetcher.h +158 -0
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +1 -1
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +7 -1
- data/src/core/credentials/transport/insecure/insecure_security_connector.h +1 -1
- data/src/core/credentials/transport/local/local_security_connector.cc +1 -1
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -66
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +24 -58
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +175 -51
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +73 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -0
- data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame.cc +63 -13
- data/src/core/ext/transport/chttp2/transport/frame.h +45 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +33 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +118 -157
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +6 -13
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2187 -0
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +748 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -4
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +50 -17
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +13 -15
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +16 -48
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +82 -24
- data/src/core/ext/transport/chttp2/transport/read_context.h +452 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +12 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +25 -26
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +6 -4
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
- data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
- data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +94 -74
- 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 +35 -23
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
- data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
- data/src/core/filter/composite/composite_filter.cc +10 -3
- data/src/core/filter/composite/composite_filter.h +11 -1
- data/src/core/filter/filter_args.h +4 -22
- data/src/core/handshaker/handshaker.cc +10 -2
- data/src/core/handshaker/security/secure_endpoint.cc +73 -5
- data/src/core/lib/channel/channel_args.h +12 -6
- data/src/core/lib/channel/channel_stack.cc +1 -2
- data/src/core/lib/channel/channel_stack.h +1 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
- data/src/core/lib/channel/promise_based_filter.cc +13 -1
- data/src/core/lib/channel/promise_based_filter.h +4 -5
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
- data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +48 -0
- data/src/core/lib/event_engine/posix.h +2 -0
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -6
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
- data/src/core/lib/experiments/experiments.cc +261 -90
- data/src/core/lib/experiments/experiments.h +136 -35
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/promise/detail/promise_factory.h +8 -8
- data/src/core/lib/promise/interceptor_list.h +1 -1
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/telemetry.cc +54 -0
- data/src/core/lib/resource_quota/telemetry.h +5 -23
- data/src/core/lib/surface/call.cc +6 -1
- data/src/core/lib/surface/call.h +9 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.h +7 -5
- data/src/core/lib/transport/transport.h +31 -4
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +146 -74
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
- data/src/core/mitigation_engine/mitigation_engine.h +81 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
- data/src/core/resolver/xds/xds_resolver.cc +23 -133
- data/src/core/server/server.cc +40 -18
- data/src/core/server/server.h +25 -14
- data/src/core/server/server_config_selector_filter.cc +122 -0
- data/src/core/server/server_config_selector_filter.h +1 -0
- data/src/core/server/xds_server_config_fetcher.cc +6 -0
- data/src/core/server/xds_server_config_fetcher_legacy.cc +1333 -0
- data/src/core/telemetry/histogram.h +10 -89
- data/src/core/telemetry/instrument.h +42 -28
- data/src/core/transport/message_size_service_config.cc +123 -0
- data/src/core/transport/message_size_service_config.h +85 -0
- data/src/core/transport/session_endpoint.cc +29 -4
- data/src/core/transport/session_endpoint.h +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -2
- data/src/core/tsi/ssl_transport_security.cc +6 -4
- data/src/core/util/http_client/parser.cc +1 -1
- data/src/core/util/lru_cache.h +2 -0
- data/src/core/util/ref_counted_string.h +1 -1
- data/src/core/util/tchar.cc +13 -7
- data/src/core/util/trie_lookup.h +1 -1
- data/src/core/xds/grpc/blackboard.cc +58 -0
- data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
- data/src/core/xds/grpc/xds_client_grpc.cc +14 -1
- data/src/core/xds/grpc/xds_client_grpc.h +1 -0
- data/src/core/xds/grpc/xds_common_types.cc +40 -0
- data/src/core/xds/grpc/xds_common_types.h +13 -0
- data/src/core/xds/grpc/xds_common_types_parser.cc +37 -34
- data/src/core/xds/grpc/xds_endpoint_parser.cc +1 -1
- data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
- data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
- data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
- data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
- data/src/core/xds/grpc/xds_http_filter.cc +2 -1
- data/src/core/xds/grpc/xds_http_filter.h +6 -16
- data/src/core/xds/grpc/xds_http_filter_registry.cc +0 -2
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
- data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +3 -5
- data/src/core/xds/grpc/xds_routing.cc +5 -11
- data/src/core/xds/grpc/xds_routing.h +2 -3
- data/src/core/xds/xds_client/lrs_client.cc +2 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
- data/src/ruby/ext/grpc/rb_call.c +3 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
- data/src/ruby/ext/grpc/rb_server.c +1 -0
- data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
- data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
- data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
- data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/lib/grpc.rb +25 -0
- data/src/ruby/spec/call_credentials_spec.rb +52 -2
- data/src/ruby/spec/credentials_helper_spec.rb +80 -0
- data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
- data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
- data/third_party/upb/upb/base/error_handler.h +79 -0
- data/third_party/upb/upb/base/internal/log2.h +29 -5
- data/third_party/upb/upb/generated_code_support.h +1 -0
- data/third_party/upb/upb/hash/common.c +129 -14
- data/third_party/upb/upb/hash/common.h +1 -1
- data/third_party/upb/upb/hash/ext_table.h +65 -0
- data/third_party/upb/upb/lex/strtod.c +14 -5
- data/third_party/upb/upb/mem/arena.c +113 -95
- data/third_party/upb/upb/mem/internal/arena.h +13 -8
- data/third_party/upb/upb/message/accessors.c +2 -3
- data/third_party/upb/upb/message/accessors.h +32 -12
- data/third_party/upb/upb/message/array.c +51 -2
- data/third_party/upb/upb/message/array.h +10 -0
- data/third_party/upb/upb/message/copy.c +18 -34
- data/third_party/upb/upb/message/internal/accessors.h +15 -49
- data/third_party/upb/upb/message/internal/array.h +1 -1
- data/third_party/upb/upb/message/internal/map.h +1 -1
- data/third_party/upb/upb/message/internal/message.c +8 -1
- data/third_party/upb/upb/message/internal/message.h +40 -10
- data/third_party/upb/upb/message/message.c +3 -2
- data/third_party/upb/upb/message/value.h +0 -6
- data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
- data/third_party/upb/upb/mini_descriptor/link.c +8 -6
- data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
- data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
- data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
- data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
- data/third_party/upb/upb/mini_table/internal/field.h +7 -5
- data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
- data/third_party/upb/upb/mini_table/internal/message.c +0 -18
- data/third_party/upb/upb/mini_table/internal/message.h +24 -41
- data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
- data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
- data/third_party/upb/upb/mini_table/message.h +34 -13
- data/third_party/upb/upb/port/atomic.h +180 -74
- data/third_party/upb/upb/port/def.inc +194 -29
- data/third_party/upb/upb/port/sanitizers.h +15 -0
- data/third_party/upb/upb/port/undef.inc +6 -2
- data/third_party/upb/upb/reflection/common.h +0 -6
- data/third_party/upb/upb/reflection/def.hpp +8 -12
- data/third_party/upb/upb/reflection/def_pool.c +85 -33
- data/third_party/upb/upb/reflection/def_pool.h +38 -8
- data/third_party/upb/upb/reflection/def_type.h +3 -0
- data/third_party/upb/upb/reflection/enum_def.c +45 -33
- data/third_party/upb/upb/reflection/enum_def.h +8 -4
- data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
- data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
- data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
- data/third_party/upb/upb/reflection/extension_range.c +15 -14
- data/third_party/upb/upb/reflection/extension_range.h +7 -4
- data/third_party/upb/upb/reflection/field_def.c +114 -96
- data/third_party/upb/upb/reflection/field_def.h +3 -3
- data/third_party/upb/upb/reflection/file_def.c +71 -65
- data/third_party/upb/upb/reflection/file_def.h +4 -5
- data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
- data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
- data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
- data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
- data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
- data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
- data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
- data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
- data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
- data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
- data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
- data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
- data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
- data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +46 -53
- data/third_party/upb/upb/reflection/message_def.h +6 -7
- data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
- data/third_party/upb/upb/reflection/method_def.c +22 -20
- data/third_party/upb/upb/reflection/method_def.h +4 -4
- data/third_party/upb/upb/reflection/oneof_def.c +17 -15
- data/third_party/upb/upb/reflection/oneof_def.h +6 -3
- data/third_party/upb/upb/reflection/service_def.c +50 -23
- data/third_party/upb/upb/reflection/service_def.h +7 -4
- data/third_party/upb/upb/text/internal/encode.c +7 -10
- data/third_party/upb/upb/wire/decode.c +269 -430
- data/third_party/upb/upb/wire/decode.h +6 -45
- data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
- data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
- data/third_party/upb/upb/wire/encode.c +144 -106
- data/third_party/upb/upb/wire/encode.h +6 -2
- data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
- data/third_party/upb/upb/wire/internal/decoder.c +1 -14
- data/third_party/upb/upb/wire/internal/decoder.h +84 -24
- data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
- data/third_party/upb/upb/wire/internal/reader.h +29 -12
- data/third_party/upb/upb/wire/reader.c +35 -22
- data/third_party/upb/upb/wire/reader.h +11 -18
- data/third_party/utf8_range/utf8_range.c +1 -1
- data/third_party/utf8_range/utf8_range.h +2 -1
- metadata +27 -13
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
- data/src/core/filter/blackboard.cc +0 -33
- data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
- data/third_party/upb/upb/message/tagged_ptr.h +0 -48
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include <string.h>
|
|
15
15
|
|
|
16
16
|
#include "upb/base/descriptor_constants.h"
|
|
17
|
+
#include "upb/base/error_handler.h"
|
|
17
18
|
#include "upb/base/internal/endian.h"
|
|
18
19
|
#include "upb/base/string_view.h"
|
|
19
20
|
#include "upb/hash/common.h"
|
|
@@ -25,10 +26,8 @@
|
|
|
25
26
|
#include "upb/message/internal/map.h"
|
|
26
27
|
#include "upb/message/internal/map_entry.h"
|
|
27
28
|
#include "upb/message/internal/message.h"
|
|
28
|
-
#include "upb/message/internal/tagged_ptr.h"
|
|
29
29
|
#include "upb/message/map.h"
|
|
30
30
|
#include "upb/message/message.h"
|
|
31
|
-
#include "upb/message/tagged_ptr.h"
|
|
32
31
|
#include "upb/mini_table/enum.h"
|
|
33
32
|
#include "upb/mini_table/extension.h"
|
|
34
33
|
#include "upb/mini_table/extension_registry.h"
|
|
@@ -97,39 +96,18 @@ typedef union {
|
|
|
97
96
|
uint32_t size;
|
|
98
97
|
} wireval;
|
|
99
98
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
// clean getters. But we don't have that so instead we gotta write these
|
|
103
|
-
// Frankenfunctions that take an array of subtables.
|
|
104
|
-
// TODO: Move these to mini_table/ anyway since there are other places
|
|
105
|
-
// that could use them.
|
|
106
|
-
|
|
107
|
-
// Returns the MiniTable corresponding to a given MiniTableField
|
|
108
|
-
// from an array of MiniTableSubs.
|
|
109
|
-
static const upb_MiniTable* _upb_MiniTableSubs_MessageByField(
|
|
110
|
-
const upb_MiniTableSubInternal* subs, const upb_MiniTableField* field) {
|
|
111
|
-
return *subs[field->UPB_PRIVATE(submsg_index)].UPB_PRIVATE(submsg);
|
|
99
|
+
static void _upb_Decoder_AssumeEpsHasErrorHandler(upb_Decoder* d) {
|
|
100
|
+
UPB_ASSUME(upb_EpsCopyInputStream_HasErrorHandler(&d->input));
|
|
112
101
|
}
|
|
113
102
|
|
|
114
|
-
|
|
115
|
-
// from an array of MiniTableSub.
|
|
116
|
-
static const upb_MiniTableEnum* _upb_MiniTableSubs_EnumByField(
|
|
117
|
-
const upb_MiniTableSubInternal* subs, const upb_MiniTableField* field) {
|
|
118
|
-
return subs[field->UPB_PRIVATE(submsg_index)].UPB_PRIVATE(subenum);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
static void _upb_Decoder_VerifyUtf8(upb_Decoder* d, const char* buf, int len) {
|
|
122
|
-
if (!_upb_Decoder_VerifyUtf8Inline(buf, len)) {
|
|
123
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_BadUtf8);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
103
|
+
#define EPS(d) (_upb_Decoder_AssumeEpsHasErrorHandler(d), &(d)->input)
|
|
126
104
|
|
|
127
105
|
static bool _upb_Decoder_Reserve(upb_Decoder* d, upb_Array* arr, size_t elem) {
|
|
128
106
|
bool need_realloc =
|
|
129
107
|
arr->UPB_PRIVATE(capacity) - arr->UPB_PRIVATE(size) < elem;
|
|
130
108
|
if (need_realloc && !UPB_PRIVATE(_upb_Array_Realloc)(
|
|
131
109
|
arr, arr->UPB_PRIVATE(size) + elem, &d->arena)) {
|
|
132
|
-
|
|
110
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
133
111
|
}
|
|
134
112
|
return need_realloc;
|
|
135
113
|
}
|
|
@@ -139,79 +117,14 @@ typedef struct {
|
|
|
139
117
|
uint64_t val;
|
|
140
118
|
} _upb_DecodeLongVarintReturn;
|
|
141
119
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const char* ptr, uint64_t val, upb_Decoder* d) {
|
|
145
|
-
uint64_t byte;
|
|
146
|
-
for (int i = 1; i < 10; i++) {
|
|
147
|
-
byte = (uint8_t)ptr[i];
|
|
148
|
-
val += (byte - 1) << (i * 7);
|
|
149
|
-
if (!(byte & 0x80)) {
|
|
150
|
-
return (_upb_DecodeLongVarintReturn){.ptr = ptr + i + 1, .val = val};
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
UPB_NOINLINE
|
|
157
|
-
static _upb_DecodeLongVarintReturn _upb_Decoder_DecodeLongTag(const char* ptr,
|
|
158
|
-
uint64_t val,
|
|
159
|
-
upb_Decoder* d) {
|
|
160
|
-
uint64_t byte;
|
|
161
|
-
for (int i = 1; i < 5; i++) {
|
|
162
|
-
byte = (uint8_t)ptr[i];
|
|
163
|
-
val += (byte - 1) << (i * 7);
|
|
164
|
-
if (!(byte & 0x80)) {
|
|
165
|
-
if (val > UINT32_MAX) {
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
return (_upb_DecodeLongVarintReturn){.ptr = ptr + i + 1, .val = val};
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
UPB_FORCEINLINE
|
|
175
|
-
const char* _upb_Decoder_DecodeVarint(upb_Decoder* d, const char* ptr,
|
|
176
|
-
uint64_t* val) {
|
|
177
|
-
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(&d->input, 10);
|
|
178
|
-
uint64_t byte = (uint8_t)*ptr;
|
|
179
|
-
if (UPB_LIKELY((byte & 0x80) == 0)) {
|
|
180
|
-
*val = byte;
|
|
181
|
-
return ptr + 1;
|
|
182
|
-
} else {
|
|
183
|
-
_upb_DecodeLongVarintReturn res =
|
|
184
|
-
_upb_Decoder_DecodeLongVarint(ptr, byte, d);
|
|
185
|
-
*val = res.val;
|
|
186
|
-
return res.ptr;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
UPB_FORCEINLINE
|
|
191
|
-
const char* _upb_Decoder_DecodeTag(upb_Decoder* d, const char* ptr,
|
|
192
|
-
uint32_t* val) {
|
|
193
|
-
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(&d->input, 5);
|
|
194
|
-
uint64_t byte = (uint8_t)*ptr;
|
|
195
|
-
if (UPB_LIKELY((byte & 0x80) == 0)) {
|
|
196
|
-
*val = byte;
|
|
197
|
-
return ptr + 1;
|
|
198
|
-
} else {
|
|
199
|
-
_upb_DecodeLongVarintReturn res = _upb_Decoder_DecodeLongTag(ptr, byte, d);
|
|
200
|
-
*val = res.val;
|
|
201
|
-
return res.ptr;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
120
|
+
// This is identical to _upb_Decoder_DecodeTag() except that the maximum value
|
|
121
|
+
// is INT32_MAX instead of UINT32_MAX.
|
|
205
122
|
UPB_FORCEINLINE
|
|
206
123
|
const char* upb_Decoder_DecodeSize(upb_Decoder* d, const char* ptr,
|
|
207
124
|
uint32_t* size) {
|
|
208
|
-
|
|
209
|
-
ptr =
|
|
210
|
-
|
|
211
|
-
!upb_EpsCopyInputStream_CheckSize(&d->input, ptr, (int)size64)) {
|
|
212
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
|
|
213
|
-
}
|
|
214
|
-
*size = size64;
|
|
125
|
+
int sz;
|
|
126
|
+
ptr = upb_WireReader_ReadSize(ptr, &sz, EPS(d));
|
|
127
|
+
*size = sz;
|
|
215
128
|
return ptr;
|
|
216
129
|
}
|
|
217
130
|
|
|
@@ -249,69 +162,28 @@ static void _upb_Decoder_Munge(const upb_MiniTableField* field, wireval* val) {
|
|
|
249
162
|
static upb_Message* _upb_Decoder_NewSubMessage2(upb_Decoder* d,
|
|
250
163
|
const upb_MiniTable* subl,
|
|
251
164
|
const upb_MiniTableField* field,
|
|
252
|
-
|
|
165
|
+
upb_Message** target) {
|
|
253
166
|
UPB_ASSERT(subl);
|
|
254
167
|
upb_Message* msg = _upb_Message_New(subl, &d->arena);
|
|
255
|
-
if (!msg)
|
|
256
|
-
|
|
257
|
-
// Extensions should not be unlinked. A message extension should not be
|
|
258
|
-
// registered until its sub-message type is available to be linked.
|
|
259
|
-
bool is_empty = UPB_PRIVATE(_upb_MiniTable_IsEmpty)(subl);
|
|
260
|
-
bool is_extension = field->UPB_PRIVATE(mode) & kUpb_LabelFlags_IsExtension;
|
|
261
|
-
UPB_ASSERT(!(is_empty && is_extension));
|
|
262
|
-
|
|
263
|
-
if (is_empty && !(d->options & kUpb_DecodeOption_ExperimentalAllowUnlinked)) {
|
|
264
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_UnlinkedSubMessage);
|
|
265
|
-
}
|
|
168
|
+
if (!msg) upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
266
169
|
|
|
267
|
-
|
|
268
|
-
UPB_PRIVATE(_upb_TaggedMessagePtr_Pack)(msg, is_empty);
|
|
269
|
-
memcpy(target, &tagged, sizeof(tagged));
|
|
170
|
+
*target = msg;
|
|
270
171
|
return msg;
|
|
271
172
|
}
|
|
272
173
|
|
|
273
|
-
static upb_Message* _upb_Decoder_NewSubMessage(
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
const upb_MiniTable* subl =
|
|
174
|
+
static upb_Message* _upb_Decoder_NewSubMessage(upb_Decoder* d,
|
|
175
|
+
const upb_MiniTableField* field,
|
|
176
|
+
upb_Message** target) {
|
|
177
|
+
const upb_MiniTable* subl = upb_MiniTable_GetSubMessageTable(field);
|
|
277
178
|
return _upb_Decoder_NewSubMessage2(d, subl, field, target);
|
|
278
179
|
}
|
|
279
180
|
|
|
280
|
-
static
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
UPB_ASSERT(subl);
|
|
286
|
-
if (!upb_TaggedMessagePtr_IsEmpty(tagged) ||
|
|
287
|
-
UPB_PRIVATE(_upb_MiniTable_IsEmpty)(subl)) {
|
|
288
|
-
return UPB_PRIVATE(_upb_TaggedMessagePtr_GetMessage)(tagged);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
// We found an empty message from a previous parse that was performed before
|
|
292
|
-
// this field was linked. But it is linked now, so we want to allocate a new
|
|
293
|
-
// message of the correct type and promote data into it before continuing.
|
|
294
|
-
upb_Message* existing =
|
|
295
|
-
UPB_PRIVATE(_upb_TaggedMessagePtr_GetEmptyMessage)(tagged);
|
|
296
|
-
upb_Message* promoted = _upb_Decoder_NewSubMessage(d, subs, field, target);
|
|
297
|
-
uintptr_t iter = kUpb_Message_UnknownBegin;
|
|
298
|
-
upb_StringView unknown;
|
|
299
|
-
while (upb_Message_NextUnknown(existing, &unknown, &iter)) {
|
|
300
|
-
upb_DecodeStatus status =
|
|
301
|
-
upb_Decode(unknown.data, unknown.size, promoted, subl, d->extreg,
|
|
302
|
-
d->options, &d->arena);
|
|
303
|
-
if (status != kUpb_DecodeStatus_Ok) _upb_Decoder_ErrorJmp(d, status);
|
|
181
|
+
static const char* _upb_Decoder_ReadString2(upb_Decoder* d, const char* ptr,
|
|
182
|
+
int size, upb_StringView* str,
|
|
183
|
+
bool validate_utf8) {
|
|
184
|
+
if (!_upb_Decoder_ReadString(d, &ptr, size, str, validate_utf8)) {
|
|
185
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
304
186
|
}
|
|
305
|
-
return promoted;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
static const char* _upb_Decoder_ReadString(upb_Decoder* d, const char* ptr,
|
|
309
|
-
int size, upb_StringView* str) {
|
|
310
|
-
const char* str_ptr = ptr;
|
|
311
|
-
ptr = upb_EpsCopyInputStream_ReadString(&d->input, &str_ptr, size, &d->arena);
|
|
312
|
-
if (!ptr) _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
|
|
313
|
-
str->data = str_ptr;
|
|
314
|
-
str->size = size;
|
|
315
187
|
return ptr;
|
|
316
188
|
}
|
|
317
189
|
|
|
@@ -321,12 +193,12 @@ const char* _upb_Decoder_RecurseSubMessage(upb_Decoder* d, const char* ptr,
|
|
|
321
193
|
const upb_MiniTable* subl,
|
|
322
194
|
uint32_t expected_end_group) {
|
|
323
195
|
if (--d->depth < 0) {
|
|
324
|
-
|
|
196
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_MaxDepthExceeded);
|
|
325
197
|
}
|
|
326
198
|
ptr = _upb_Decoder_DecodeMessage(d, ptr, submsg, subl);
|
|
327
199
|
d->depth++;
|
|
328
200
|
if (d->end_group != expected_end_group) {
|
|
329
|
-
|
|
201
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
330
202
|
}
|
|
331
203
|
return ptr;
|
|
332
204
|
}
|
|
@@ -334,14 +206,13 @@ const char* _upb_Decoder_RecurseSubMessage(upb_Decoder* d, const char* ptr,
|
|
|
334
206
|
UPB_FORCEINLINE
|
|
335
207
|
const char* _upb_Decoder_DecodeSubMessage(upb_Decoder* d, const char* ptr,
|
|
336
208
|
upb_Message* submsg,
|
|
337
|
-
const upb_MiniTableSubInternal* subs,
|
|
338
209
|
const upb_MiniTableField* field,
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
const upb_MiniTable* subl =
|
|
210
|
+
size_t size) {
|
|
211
|
+
ptrdiff_t delta = upb_EpsCopyInputStream_PushLimit(&d->input, ptr, size);
|
|
212
|
+
const upb_MiniTable* subl = upb_MiniTable_GetSubMessageTable(field);
|
|
342
213
|
UPB_ASSERT(subl);
|
|
343
214
|
ptr = _upb_Decoder_RecurseSubMessage(d, ptr, submsg, subl, DECODE_NOGROUP);
|
|
344
|
-
upb_EpsCopyInputStream_PopLimit(&d->input, ptr,
|
|
215
|
+
upb_EpsCopyInputStream_PopLimit(&d->input, ptr, delta);
|
|
345
216
|
return ptr;
|
|
346
217
|
}
|
|
347
218
|
|
|
@@ -350,26 +221,19 @@ const char* _upb_Decoder_DecodeGroup(upb_Decoder* d, const char* ptr,
|
|
|
350
221
|
upb_Message* submsg,
|
|
351
222
|
const upb_MiniTable* subl,
|
|
352
223
|
uint32_t number) {
|
|
353
|
-
if (
|
|
354
|
-
|
|
224
|
+
if (upb_EpsCopyInputStream_IsDone(EPS(d), &ptr)) {
|
|
225
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
355
226
|
}
|
|
356
227
|
ptr = _upb_Decoder_RecurseSubMessage(d, ptr, submsg, subl, number);
|
|
357
228
|
d->end_group = DECODE_NOGROUP;
|
|
358
229
|
return ptr;
|
|
359
230
|
}
|
|
360
231
|
|
|
361
|
-
UPB_FORCEINLINE
|
|
362
|
-
const char* _upb_Decoder_DecodeUnknownGroup(upb_Decoder* d, const char* ptr,
|
|
363
|
-
uint32_t number) {
|
|
364
|
-
return _upb_Decoder_DecodeGroup(d, ptr, NULL, NULL, number);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
232
|
UPB_FORCEINLINE
|
|
368
233
|
const char* _upb_Decoder_DecodeKnownGroup(upb_Decoder* d, const char* ptr,
|
|
369
234
|
upb_Message* submsg,
|
|
370
|
-
const upb_MiniTableSubInternal* subs,
|
|
371
235
|
const upb_MiniTableField* field) {
|
|
372
|
-
const upb_MiniTable* subl =
|
|
236
|
+
const upb_MiniTable* subl = upb_MiniTable_GetSubMessageTable(field);
|
|
373
237
|
UPB_ASSERT(subl);
|
|
374
238
|
return _upb_Decoder_DecodeGroup(d, ptr, submsg, subl,
|
|
375
239
|
field->UPB_PRIVATE(number));
|
|
@@ -404,8 +268,8 @@ void _upb_Decoder_AddEnumValueToUnknown(upb_Decoder* d, upb_Message* msg,
|
|
|
404
268
|
end = upb_Decoder_EncodeVarint32(val->uint64_val, end);
|
|
405
269
|
|
|
406
270
|
if (!UPB_PRIVATE(_upb_Message_AddUnknown)(unknown_msg, buf, end - buf,
|
|
407
|
-
&d->arena,
|
|
408
|
-
|
|
271
|
+
&d->arena, kUpb_AddUnknown_Copy)) {
|
|
272
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
409
273
|
}
|
|
410
274
|
}
|
|
411
275
|
|
|
@@ -414,34 +278,42 @@ const char* _upb_Decoder_DecodeFixedPacked(upb_Decoder* d, const char* ptr,
|
|
|
414
278
|
upb_Array* arr, wireval* val,
|
|
415
279
|
const upb_MiniTableField* field,
|
|
416
280
|
int lg2) {
|
|
281
|
+
upb_StringView sv;
|
|
282
|
+
ptr = upb_EpsCopyInputStream_ReadStringEphemeral(&d->input, ptr, val->size,
|
|
283
|
+
&sv);
|
|
284
|
+
if (!ptr) upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
417
285
|
int mask = (1 << lg2) - 1;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
// Length isn't a round multiple of elem size.
|
|
421
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
|
|
286
|
+
if (UPB_UNLIKELY((val->size & mask) != 0 || ptr == NULL)) {
|
|
287
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
422
288
|
}
|
|
289
|
+
size_t count = val->size >> lg2;
|
|
290
|
+
if (count == 0) return ptr;
|
|
423
291
|
_upb_Decoder_Reserve(d, arr, count);
|
|
424
292
|
void* mem = UPB_PTR_AT(upb_Array_MutableDataPtr(arr),
|
|
425
293
|
arr->UPB_PRIVATE(size) << lg2, void);
|
|
426
294
|
arr->UPB_PRIVATE(size) += count;
|
|
427
|
-
// Note: if/when the decoder supports multi-buffer input, we will need to
|
|
428
|
-
// handle buffer seams here.
|
|
429
295
|
if (upb_IsLittleEndian()) {
|
|
430
|
-
|
|
296
|
+
memcpy(mem, sv.data, sv.size);
|
|
431
297
|
} else {
|
|
432
|
-
|
|
298
|
+
const char* src = sv.data;
|
|
299
|
+
const char* src_end = src + sv.size;
|
|
433
300
|
char* dst = mem;
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
301
|
+
if (lg2 == 2) {
|
|
302
|
+
for (; src < src_end; src += 4, dst += 4) {
|
|
303
|
+
uint32_t x;
|
|
304
|
+
memcpy(&x, src, 4);
|
|
305
|
+
x = upb_BigEndian32(x);
|
|
306
|
+
memcpy(dst, &x, 4);
|
|
307
|
+
}
|
|
308
|
+
} else {
|
|
309
|
+
UPB_ASSERT(lg2 == 3);
|
|
310
|
+
for (; src < src_end; src += 8, dst += 8) {
|
|
311
|
+
uint64_t x;
|
|
312
|
+
memcpy(&x, src, 8);
|
|
313
|
+
x = upb_BigEndian64(x);
|
|
314
|
+
memcpy(dst, &x, 8);
|
|
442
315
|
}
|
|
443
316
|
}
|
|
444
|
-
upb_EpsCopyInputStream_PopLimit(&d->input, ptr, delta);
|
|
445
317
|
}
|
|
446
318
|
|
|
447
319
|
return ptr;
|
|
@@ -453,12 +325,12 @@ const char* _upb_Decoder_DecodeVarintPacked(upb_Decoder* d, const char* ptr,
|
|
|
453
325
|
const upb_MiniTableField* field,
|
|
454
326
|
int lg2) {
|
|
455
327
|
int scale = 1 << lg2;
|
|
456
|
-
|
|
328
|
+
ptrdiff_t delta = upb_EpsCopyInputStream_PushLimit(&d->input, ptr, val->size);
|
|
457
329
|
char* out = UPB_PTR_AT(upb_Array_MutableDataPtr(arr),
|
|
458
330
|
arr->UPB_PRIVATE(size) << lg2, void);
|
|
459
|
-
while (!
|
|
331
|
+
while (!upb_EpsCopyInputStream_IsDone(EPS(d), &ptr)) {
|
|
460
332
|
wireval elem;
|
|
461
|
-
ptr =
|
|
333
|
+
ptr = upb_WireReader_ReadVarint(ptr, &elem.uint64_val, EPS(d));
|
|
462
334
|
_upb_Decoder_Munge(field, &elem);
|
|
463
335
|
if (_upb_Decoder_Reserve(d, arr, 1)) {
|
|
464
336
|
out = UPB_PTR_AT(upb_Array_MutableDataPtr(arr),
|
|
@@ -468,22 +340,21 @@ const char* _upb_Decoder_DecodeVarintPacked(upb_Decoder* d, const char* ptr,
|
|
|
468
340
|
memcpy(out, &elem, scale);
|
|
469
341
|
out += scale;
|
|
470
342
|
}
|
|
471
|
-
upb_EpsCopyInputStream_PopLimit(&d->input, ptr,
|
|
343
|
+
upb_EpsCopyInputStream_PopLimit(&d->input, ptr, delta);
|
|
472
344
|
return ptr;
|
|
473
345
|
}
|
|
474
346
|
|
|
475
347
|
UPB_NOINLINE
|
|
476
348
|
static const char* _upb_Decoder_DecodeEnumPacked(
|
|
477
349
|
upb_Decoder* d, const char* ptr, upb_Message* msg, upb_Array* arr,
|
|
478
|
-
const
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
int saved_limit = upb_EpsCopyInputStream_PushLimit(&d->input, ptr, val->size);
|
|
350
|
+
const upb_MiniTableField* field, wireval* val) {
|
|
351
|
+
const upb_MiniTableEnum* e = upb_MiniTable_GetSubEnumTable(field);
|
|
352
|
+
ptrdiff_t delta = upb_EpsCopyInputStream_PushLimit(&d->input, ptr, val->size);
|
|
482
353
|
char* out = UPB_PTR_AT(upb_Array_MutableDataPtr(arr),
|
|
483
354
|
arr->UPB_PRIVATE(size) * 4, void);
|
|
484
|
-
while (!
|
|
355
|
+
while (!upb_EpsCopyInputStream_IsDone(EPS(d), &ptr)) {
|
|
485
356
|
wireval elem;
|
|
486
|
-
ptr =
|
|
357
|
+
ptr = upb_WireReader_ReadVarint(ptr, &elem.uint64_val, EPS(d));
|
|
487
358
|
if (!upb_MiniTableEnum_CheckValue(e, elem.uint64_val)) {
|
|
488
359
|
_upb_Decoder_AddEnumValueToUnknown(d, msg, field, &elem);
|
|
489
360
|
continue;
|
|
@@ -496,7 +367,7 @@ static const char* _upb_Decoder_DecodeEnumPacked(
|
|
|
496
367
|
memcpy(out, &elem, 4);
|
|
497
368
|
out += 4;
|
|
498
369
|
}
|
|
499
|
-
upb_EpsCopyInputStream_PopLimit(&d->input, ptr,
|
|
370
|
+
upb_EpsCopyInputStream_PopLimit(&d->input, ptr, delta);
|
|
500
371
|
return ptr;
|
|
501
372
|
}
|
|
502
373
|
|
|
@@ -505,14 +376,14 @@ static upb_Array* _upb_Decoder_CreateArray(upb_Decoder* d,
|
|
|
505
376
|
const upb_FieldType field_type = field->UPB_PRIVATE(descriptortype);
|
|
506
377
|
const size_t lg2 = UPB_PRIVATE(_upb_FieldType_SizeLg2)(field_type);
|
|
507
378
|
upb_Array* ret = UPB_PRIVATE(_upb_Array_New)(&d->arena, 4, lg2);
|
|
508
|
-
if (!ret)
|
|
379
|
+
if (!ret) upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
509
380
|
return ret;
|
|
510
381
|
}
|
|
511
382
|
|
|
512
|
-
static const char* _upb_Decoder_DecodeToArray(
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
383
|
+
static const char* _upb_Decoder_DecodeToArray(upb_Decoder* d, const char* ptr,
|
|
384
|
+
upb_Message* msg,
|
|
385
|
+
const upb_MiniTableField* field,
|
|
386
|
+
wireval* val, int op) {
|
|
516
387
|
upb_Array** arrp = UPB_PTR_AT(msg, field->UPB_PRIVATE(offset), void);
|
|
517
388
|
upb_Array* arr = *arrp;
|
|
518
389
|
void* mem;
|
|
@@ -534,29 +405,36 @@ static const char* _upb_Decoder_DecodeToArray(
|
|
|
534
405
|
arr->UPB_PRIVATE(size)++;
|
|
535
406
|
memcpy(mem, val, 1 << op);
|
|
536
407
|
return ptr;
|
|
537
|
-
case kUpb_DecodeOp_String:
|
|
538
|
-
|
|
539
|
-
|
|
408
|
+
case kUpb_DecodeOp_String: {
|
|
409
|
+
/* Append string. */
|
|
410
|
+
upb_StringView* str = (upb_StringView*)upb_Array_MutableDataPtr(arr) +
|
|
411
|
+
arr->UPB_PRIVATE(size);
|
|
412
|
+
ptr = _upb_Decoder_ReadString2(d, ptr, val->size, str,
|
|
413
|
+
/*validate_utf8=*/true);
|
|
414
|
+
arr->UPB_PRIVATE(size)++;
|
|
415
|
+
return ptr;
|
|
416
|
+
}
|
|
540
417
|
case kUpb_DecodeOp_Bytes: {
|
|
541
418
|
/* Append bytes. */
|
|
542
419
|
upb_StringView* str = (upb_StringView*)upb_Array_MutableDataPtr(arr) +
|
|
543
420
|
arr->UPB_PRIVATE(size);
|
|
421
|
+
ptr = _upb_Decoder_ReadString2(d, ptr, val->size, str,
|
|
422
|
+
/*validate_utf8=*/false);
|
|
544
423
|
arr->UPB_PRIVATE(size)++;
|
|
545
|
-
return
|
|
424
|
+
return ptr;
|
|
546
425
|
}
|
|
547
426
|
case kUpb_DecodeOp_SubMessage: {
|
|
548
427
|
/* Append submessage / group. */
|
|
549
|
-
|
|
550
|
-
upb_Array_MutableDataPtr(arr),
|
|
551
|
-
|
|
552
|
-
upb_Message* submsg = _upb_Decoder_NewSubMessage(d,
|
|
428
|
+
upb_Message** target =
|
|
429
|
+
UPB_PTR_AT(upb_Array_MutableDataPtr(arr),
|
|
430
|
+
arr->UPB_PRIVATE(size) * sizeof(void*), upb_Message*);
|
|
431
|
+
upb_Message* submsg = _upb_Decoder_NewSubMessage(d, field, target);
|
|
553
432
|
arr->UPB_PRIVATE(size)++;
|
|
554
433
|
if (UPB_UNLIKELY(field->UPB_PRIVATE(descriptortype) ==
|
|
555
434
|
kUpb_FieldType_Group)) {
|
|
556
|
-
return _upb_Decoder_DecodeKnownGroup(d, ptr, submsg,
|
|
435
|
+
return _upb_Decoder_DecodeKnownGroup(d, ptr, submsg, field);
|
|
557
436
|
} else {
|
|
558
|
-
return _upb_Decoder_DecodeSubMessage(d, ptr, submsg,
|
|
559
|
-
val->size);
|
|
437
|
+
return _upb_Decoder_DecodeSubMessage(d, ptr, submsg, field, val->size);
|
|
560
438
|
}
|
|
561
439
|
}
|
|
562
440
|
case OP_FIXPCK_LG2(2):
|
|
@@ -569,7 +447,7 @@ static const char* _upb_Decoder_DecodeToArray(
|
|
|
569
447
|
return _upb_Decoder_DecodeVarintPacked(d, ptr, arr, val, field,
|
|
570
448
|
op - OP_VARPCK_LG2(0));
|
|
571
449
|
case kUpb_DecodeOp_PackedEnum:
|
|
572
|
-
return _upb_Decoder_DecodeEnumPacked(d, ptr, msg, arr,
|
|
450
|
+
return _upb_Decoder_DecodeEnumPacked(d, ptr, msg, arr, field, val);
|
|
573
451
|
default:
|
|
574
452
|
UPB_UNREACHABLE();
|
|
575
453
|
}
|
|
@@ -607,7 +485,7 @@ static upb_Map* _upb_Decoder_CreateMap(upb_Decoder* d,
|
|
|
607
485
|
UPB_ASSERT(key_field->UPB_PRIVATE(offset) == offsetof(upb_MapEntry, k));
|
|
608
486
|
UPB_ASSERT(val_field->UPB_PRIVATE(offset) == offsetof(upb_MapEntry, v));
|
|
609
487
|
upb_Map* ret = _upb_Map_New(&d->arena, key_size, val_size);
|
|
610
|
-
if (!ret)
|
|
488
|
+
if (!ret) upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
611
489
|
return ret;
|
|
612
490
|
}
|
|
613
491
|
|
|
@@ -619,7 +497,7 @@ UPB_NOINLINE static void _upb_Decoder_AddMapEntryUnknown(
|
|
|
619
497
|
upb_EncodeStatus status =
|
|
620
498
|
upb_Encode(ent_msg, entry, 0, &d->arena, &buf, &size);
|
|
621
499
|
if (status != kUpb_EncodeStatus_Ok) {
|
|
622
|
-
|
|
500
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
623
501
|
}
|
|
624
502
|
char delim_buf[2 * kUpb_Decoder_EncodeVarint32MaxSize];
|
|
625
503
|
char* delim_end = delim_buf;
|
|
@@ -633,19 +511,19 @@ UPB_NOINLINE static void _upb_Decoder_AddMapEntryUnknown(
|
|
|
633
511
|
};
|
|
634
512
|
|
|
635
513
|
if (!UPB_PRIVATE(_upb_Message_AddUnknownV)(msg, &d->arena, unknown, 2)) {
|
|
636
|
-
|
|
514
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
637
515
|
}
|
|
638
516
|
}
|
|
639
517
|
|
|
640
|
-
static const char* _upb_Decoder_DecodeToMap(
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
518
|
+
static const char* _upb_Decoder_DecodeToMap(upb_Decoder* d, const char* ptr,
|
|
519
|
+
upb_Message* msg,
|
|
520
|
+
const upb_MiniTableField* field,
|
|
521
|
+
wireval* val) {
|
|
644
522
|
upb_Map** map_p = UPB_PTR_AT(msg, field->UPB_PRIVATE(offset), upb_Map*);
|
|
645
523
|
upb_Map* map = *map_p;
|
|
646
524
|
upb_MapEntry ent;
|
|
647
525
|
UPB_ASSERT(upb_MiniTableField_Type(field) == kUpb_FieldType_Message);
|
|
648
|
-
const upb_MiniTable* entry =
|
|
526
|
+
const upb_MiniTable* entry = upb_MiniTable_GetSubMessageTable(field);
|
|
649
527
|
|
|
650
528
|
UPB_ASSERT(entry);
|
|
651
529
|
UPB_ASSERT(entry->UPB_PRIVATE(field_count) == 2);
|
|
@@ -660,25 +538,38 @@ static const char* _upb_Decoder_DecodeToMap(
|
|
|
660
538
|
// Parse map entry.
|
|
661
539
|
memset(&ent, 0, sizeof(ent));
|
|
662
540
|
|
|
663
|
-
|
|
541
|
+
bool value_is_message =
|
|
542
|
+
entry->UPB_PRIVATE(fields)[1].UPB_PRIVATE(descriptortype) ==
|
|
664
543
|
kUpb_FieldType_Message ||
|
|
665
544
|
entry->UPB_PRIVATE(fields)[1].UPB_PRIVATE(descriptortype) ==
|
|
666
|
-
kUpb_FieldType_Group
|
|
545
|
+
kUpb_FieldType_Group;
|
|
546
|
+
const upb_MiniTable* sub_table =
|
|
547
|
+
value_is_message
|
|
548
|
+
? upb_MiniTable_GetSubMessageTable(&entry->UPB_PRIVATE(fields)[1])
|
|
549
|
+
: NULL;
|
|
550
|
+
upb_Message* sub_msg = NULL;
|
|
551
|
+
|
|
552
|
+
if (sub_table) {
|
|
667
553
|
// Create proactively to handle the case where it doesn't appear.
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
554
|
+
_upb_Decoder_NewSubMessage(d, &entry->UPB_PRIVATE(fields)[1], &sub_msg);
|
|
555
|
+
ent.v.val = upb_value_ptr(sub_msg);
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
ptr = _upb_Decoder_DecodeSubMessage(d, ptr, &ent.message, field, val->size);
|
|
559
|
+
|
|
560
|
+
if (sub_msg && sub_table->UPB_PRIVATE(required_count)) {
|
|
561
|
+
// If the map entry did not contain a value on the wire, `sub_msg` is an
|
|
562
|
+
// empty message; we must check if it is missing any required fields. If the
|
|
563
|
+
// value was present, this check is redundant but harmless.
|
|
564
|
+
_upb_Decoder_CheckRequired(d, ptr, sub_msg, sub_table);
|
|
672
565
|
}
|
|
673
566
|
|
|
674
|
-
ptr = _upb_Decoder_DecodeSubMessage(d, ptr, &ent.message, subs, field,
|
|
675
|
-
val->size);
|
|
676
567
|
if (upb_Message_HasUnknown(&ent.message)) {
|
|
677
568
|
_upb_Decoder_AddMapEntryUnknown(d, msg, field, &ent.message, entry);
|
|
678
569
|
} else {
|
|
679
570
|
if (_upb_Map_Insert(map, &ent.k, map->key_size, &ent.v, map->val_size,
|
|
680
571
|
&d->arena) == kUpb_MapInsertStatus_OutOfMemory) {
|
|
681
|
-
|
|
572
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
682
573
|
}
|
|
683
574
|
}
|
|
684
575
|
return ptr;
|
|
@@ -686,8 +577,7 @@ static const char* _upb_Decoder_DecodeToMap(
|
|
|
686
577
|
|
|
687
578
|
static const char* _upb_Decoder_DecodeToSubMessage(
|
|
688
579
|
upb_Decoder* d, const char* ptr, upb_Message* msg,
|
|
689
|
-
const
|
|
690
|
-
wireval* val, int op) {
|
|
580
|
+
const upb_MiniTableField* field, wireval* val, int op) {
|
|
691
581
|
void* mem = UPB_PTR_AT(msg, field->UPB_PRIVATE(offset), void);
|
|
692
582
|
int type = field->UPB_PRIVATE(descriptortype);
|
|
693
583
|
|
|
@@ -707,26 +597,22 @@ static const char* _upb_Decoder_DecodeToSubMessage(
|
|
|
707
597
|
// Store into message.
|
|
708
598
|
switch (op) {
|
|
709
599
|
case kUpb_DecodeOp_SubMessage: {
|
|
710
|
-
|
|
711
|
-
upb_Message* submsg;
|
|
712
|
-
if (
|
|
713
|
-
submsg = _upb_Decoder_ReuseSubMessage(d, subs, field, submsgp);
|
|
714
|
-
} else {
|
|
715
|
-
submsg = _upb_Decoder_NewSubMessage(d, subs, field, submsgp);
|
|
716
|
-
}
|
|
600
|
+
upb_Message** submsgp = mem;
|
|
601
|
+
upb_Message* submsg = *submsgp;
|
|
602
|
+
if (!submsg) submsg = _upb_Decoder_NewSubMessage(d, field, submsgp);
|
|
717
603
|
if (UPB_UNLIKELY(type == kUpb_FieldType_Group)) {
|
|
718
|
-
ptr = _upb_Decoder_DecodeKnownGroup(d, ptr, submsg,
|
|
604
|
+
ptr = _upb_Decoder_DecodeKnownGroup(d, ptr, submsg, field);
|
|
719
605
|
} else {
|
|
720
|
-
ptr = _upb_Decoder_DecodeSubMessage(d, ptr, submsg,
|
|
721
|
-
val->size);
|
|
606
|
+
ptr = _upb_Decoder_DecodeSubMessage(d, ptr, submsg, field, val->size);
|
|
722
607
|
}
|
|
723
608
|
break;
|
|
724
609
|
}
|
|
725
610
|
case kUpb_DecodeOp_String:
|
|
726
|
-
|
|
727
|
-
|
|
611
|
+
return _upb_Decoder_ReadString2(d, ptr, val->size, mem,
|
|
612
|
+
/*validate_utf8=*/true);
|
|
728
613
|
case kUpb_DecodeOp_Bytes:
|
|
729
|
-
return
|
|
614
|
+
return _upb_Decoder_ReadString2(d, ptr, val->size, mem,
|
|
615
|
+
/*validate_utf8=*/false);
|
|
730
616
|
case kUpb_DecodeOp_Scalar8Byte:
|
|
731
617
|
memcpy(mem, val, 8);
|
|
732
618
|
break;
|
|
@@ -743,31 +629,6 @@ static const char* _upb_Decoder_DecodeToSubMessage(
|
|
|
743
629
|
return ptr;
|
|
744
630
|
}
|
|
745
631
|
|
|
746
|
-
static const char* upb_Decoder_SkipField(upb_Decoder* d, const char* ptr,
|
|
747
|
-
uint32_t tag) {
|
|
748
|
-
int field_number = tag >> 3;
|
|
749
|
-
int wire_type = tag & 7;
|
|
750
|
-
switch (wire_type) {
|
|
751
|
-
case kUpb_WireType_Varint: {
|
|
752
|
-
uint64_t val;
|
|
753
|
-
return _upb_Decoder_DecodeVarint(d, ptr, &val);
|
|
754
|
-
}
|
|
755
|
-
case kUpb_WireType_64Bit:
|
|
756
|
-
return ptr + 8;
|
|
757
|
-
case kUpb_WireType_32Bit:
|
|
758
|
-
return ptr + 4;
|
|
759
|
-
case kUpb_WireType_Delimited: {
|
|
760
|
-
uint32_t size;
|
|
761
|
-
ptr = upb_Decoder_DecodeSize(d, ptr, &size);
|
|
762
|
-
return ptr + size;
|
|
763
|
-
}
|
|
764
|
-
case kUpb_WireType_StartGroup:
|
|
765
|
-
return _upb_Decoder_DecodeUnknownGroup(d, ptr, field_number);
|
|
766
|
-
default:
|
|
767
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
|
|
768
|
-
}
|
|
769
|
-
}
|
|
770
|
-
|
|
771
632
|
enum {
|
|
772
633
|
kStartItemTag = ((kUpb_MsgSet_Item << 3) | kUpb_WireType_StartGroup),
|
|
773
634
|
kEndItemTag = ((kUpb_MsgSet_Item << 3) | kUpb_WireType_EndGroup),
|
|
@@ -781,15 +642,22 @@ static void upb_Decoder_AddKnownMessageSetItem(
|
|
|
781
642
|
upb_Extension* ext =
|
|
782
643
|
UPB_PRIVATE(_upb_Message_GetOrCreateExtension)(msg, item_mt, &d->arena);
|
|
783
644
|
if (UPB_UNLIKELY(!ext)) {
|
|
784
|
-
|
|
645
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
785
646
|
}
|
|
647
|
+
upb_Message** submsgp = (upb_Message**)&ext->data.msg_val;
|
|
786
648
|
upb_Message* submsg = _upb_Decoder_NewSubMessage2(
|
|
787
649
|
d, ext->ext->UPB_PRIVATE(sub).UPB_PRIVATE(submsg),
|
|
788
|
-
&ext->ext->UPB_PRIVATE(field),
|
|
650
|
+
&ext->ext->UPB_PRIVATE(field), submsgp);
|
|
651
|
+
// upb_Decode_LimitDepth() takes uint32_t, d->depth - 1 can not be negative.
|
|
652
|
+
if (d->depth <= 1) {
|
|
653
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_MaxDepthExceeded);
|
|
654
|
+
}
|
|
789
655
|
upb_DecodeStatus status = upb_Decode(
|
|
790
656
|
data, size, submsg, upb_MiniTableExtension_GetSubMessage(item_mt),
|
|
791
|
-
d->extreg, d->options, &d->arena);
|
|
792
|
-
if (status != kUpb_DecodeStatus_Ok)
|
|
657
|
+
d->extreg, upb_Decode_LimitDepth(d->options, d->depth - 1), &d->arena);
|
|
658
|
+
if (status != kUpb_DecodeStatus_Ok) {
|
|
659
|
+
upb_ErrorHandler_ThrowError(&d->err, status);
|
|
660
|
+
}
|
|
793
661
|
}
|
|
794
662
|
|
|
795
663
|
static void upb_Decoder_AddUnknownMessageSetItem(upb_Decoder* d,
|
|
@@ -814,7 +682,7 @@ static void upb_Decoder_AddUnknownMessageSetItem(upb_Decoder* d,
|
|
|
814
682
|
{split, end - split},
|
|
815
683
|
};
|
|
816
684
|
if (!UPB_PRIVATE(_upb_Message_AddUnknownV)(msg, &d->arena, unknown, 3)) {
|
|
817
|
-
|
|
685
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
818
686
|
}
|
|
819
687
|
}
|
|
820
688
|
|
|
@@ -841,15 +709,15 @@ static const char* upb_Decoder_DecodeMessageSetItem(
|
|
|
841
709
|
kUpb_HavePayload = 1 << 1,
|
|
842
710
|
} StateMask;
|
|
843
711
|
StateMask state_mask = 0;
|
|
844
|
-
while (!
|
|
712
|
+
while (!upb_EpsCopyInputStream_IsDone(EPS(d), &ptr)) {
|
|
845
713
|
uint32_t tag;
|
|
846
|
-
ptr =
|
|
714
|
+
ptr = upb_WireReader_ReadTag(ptr, &tag, EPS(d));
|
|
847
715
|
switch (tag) {
|
|
848
716
|
case kEndItemTag:
|
|
849
717
|
return ptr;
|
|
850
718
|
case kTypeIdTag: {
|
|
851
719
|
uint64_t tmp;
|
|
852
|
-
ptr =
|
|
720
|
+
ptr = upb_WireReader_ReadVarint(ptr, &tmp, EPS(d));
|
|
853
721
|
if (state_mask & kUpb_HaveId) break; // Ignore dup.
|
|
854
722
|
state_mask |= kUpb_HaveId;
|
|
855
723
|
type_id = tmp;
|
|
@@ -861,27 +729,31 @@ static const char* upb_Decoder_DecodeMessageSetItem(
|
|
|
861
729
|
}
|
|
862
730
|
case kMessageTag: {
|
|
863
731
|
uint32_t size;
|
|
732
|
+
upb_StringView sv;
|
|
864
733
|
ptr = upb_Decoder_DecodeSize(d, ptr, &size);
|
|
865
|
-
|
|
866
|
-
|
|
734
|
+
ptr = upb_EpsCopyInputStream_ReadStringAlwaysAlias(&d->input, ptr, size,
|
|
735
|
+
&sv);
|
|
736
|
+
if (!ptr) {
|
|
737
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
738
|
+
}
|
|
867
739
|
if (state_mask & kUpb_HavePayload) break; // Ignore dup.
|
|
868
740
|
state_mask |= kUpb_HavePayload;
|
|
869
741
|
if (state_mask & kUpb_HaveId) {
|
|
870
|
-
upb_Decoder_AddMessageSetItem(d, msg, layout, type_id, data,
|
|
742
|
+
upb_Decoder_AddMessageSetItem(d, msg, layout, type_id, sv.data,
|
|
743
|
+
sv.size);
|
|
871
744
|
} else {
|
|
872
745
|
// Out of order, we must preserve the payload.
|
|
873
|
-
preserved
|
|
874
|
-
preserved.size = size;
|
|
746
|
+
preserved = sv;
|
|
875
747
|
}
|
|
876
748
|
break;
|
|
877
749
|
}
|
|
878
750
|
default:
|
|
879
751
|
// We do not preserve unexpected fields inside a message set item.
|
|
880
|
-
ptr =
|
|
752
|
+
ptr = _upb_WireReader_SkipValue(ptr, tag, d->depth, &d->input);
|
|
881
753
|
break;
|
|
882
754
|
}
|
|
883
755
|
}
|
|
884
|
-
|
|
756
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
885
757
|
}
|
|
886
758
|
|
|
887
759
|
static upb_MiniTableField upb_Decoder_FieldNotFoundField = {
|
|
@@ -889,7 +761,7 @@ static upb_MiniTableField upb_Decoder_FieldNotFoundField = {
|
|
|
889
761
|
|
|
890
762
|
UPB_NOINLINE const upb_MiniTableField* _upb_Decoder_FindExtensionField(
|
|
891
763
|
upb_Decoder* d, const upb_MiniTable* t, uint32_t field_number, int ext_mode,
|
|
892
|
-
|
|
764
|
+
uint32_t wire_type) {
|
|
893
765
|
// Treat a message set as an extendable message if it is a delimited field.
|
|
894
766
|
// This provides compatibility with encoders that are unaware of message
|
|
895
767
|
// sets and serialize them as normal extensions.
|
|
@@ -912,9 +784,8 @@ UPB_NOINLINE const upb_MiniTableField* _upb_Decoder_FindExtensionField(
|
|
|
912
784
|
static const upb_MiniTableField* _upb_Decoder_FindField(upb_Decoder* d,
|
|
913
785
|
const upb_MiniTable* t,
|
|
914
786
|
uint32_t field_number,
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
787
|
+
uint32_t wire_type) {
|
|
788
|
+
UPB_ASSERT(t);
|
|
918
789
|
const upb_MiniTableField* field =
|
|
919
790
|
upb_MiniTable_FindFieldByNumber(t, field_number);
|
|
920
791
|
if (field) return field;
|
|
@@ -959,12 +830,8 @@ void _upb_Decoder_CheckUnlinked(upb_Decoder* d, const upb_MiniTable* mt,
|
|
|
959
830
|
const upb_MiniTableField* field, int* op) {
|
|
960
831
|
// If sub-message is not linked, treat as unknown.
|
|
961
832
|
if (field->UPB_PRIVATE(mode) & kUpb_LabelFlags_IsExtension) return;
|
|
962
|
-
const upb_MiniTable* mt_sub =
|
|
963
|
-
|
|
964
|
-
if ((d->options & kUpb_DecodeOption_ExperimentalAllowUnlinked) ||
|
|
965
|
-
!UPB_PRIVATE(_upb_MiniTable_IsEmpty)(mt_sub)) {
|
|
966
|
-
return;
|
|
967
|
-
}
|
|
833
|
+
const upb_MiniTable* mt_sub = upb_MiniTable_GetSubMessageTable(field);
|
|
834
|
+
if (mt_sub != NULL) return; // Normal case, sub-message is linked.
|
|
968
835
|
#ifndef NDEBUG
|
|
969
836
|
const upb_MiniTableField* oneof = upb_MiniTable_GetOneof(mt, field);
|
|
970
837
|
if (oneof) {
|
|
@@ -972,9 +839,7 @@ void _upb_Decoder_CheckUnlinked(upb_Decoder* d, const upb_MiniTable* mt,
|
|
|
972
839
|
// unlinked.
|
|
973
840
|
do {
|
|
974
841
|
UPB_ASSERT(upb_MiniTableField_CType(oneof) == kUpb_CType_Message);
|
|
975
|
-
const upb_MiniTable* oneof_sub =
|
|
976
|
-
*mt->UPB_PRIVATE(subs)[oneof->UPB_PRIVATE(submsg_index)].UPB_PRIVATE(
|
|
977
|
-
submsg);
|
|
842
|
+
const upb_MiniTable* oneof_sub = upb_MiniTable_GetSubMessageTable(oneof);
|
|
978
843
|
UPB_ASSERT(!oneof_sub);
|
|
979
844
|
} while (upb_MiniTable_NextOneofField(mt, &oneof));
|
|
980
845
|
}
|
|
@@ -985,9 +850,10 @@ void _upb_Decoder_CheckUnlinked(upb_Decoder* d, const upb_MiniTable* mt,
|
|
|
985
850
|
UPB_FORCEINLINE
|
|
986
851
|
void _upb_Decoder_MaybeVerifyUtf8(upb_Decoder* d,
|
|
987
852
|
const upb_MiniTableField* field, int* op) {
|
|
988
|
-
|
|
989
|
-
|
|
853
|
+
UPB_ASSUME(field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Bytes);
|
|
854
|
+
if (_upb_Decoder_FieldRequiresUtf8Validation(d, field)) {
|
|
990
855
|
*op = kUpb_DecodeOp_String;
|
|
856
|
+
}
|
|
991
857
|
}
|
|
992
858
|
|
|
993
859
|
static int _upb_Decoder_GetDelimitedOp(upb_Decoder* d, const upb_MiniTable* mt,
|
|
@@ -1057,7 +923,8 @@ UPB_FORCEINLINE
|
|
|
1057
923
|
const char* _upb_Decoder_DecodeWireValue(upb_Decoder* d, const char* ptr,
|
|
1058
924
|
const upb_MiniTable* mt,
|
|
1059
925
|
const upb_MiniTableField* field,
|
|
1060
|
-
|
|
926
|
+
uint32_t wire_type, wireval* val,
|
|
927
|
+
int* op) {
|
|
1061
928
|
static const unsigned kFixed32OkMask = (1 << kUpb_FieldType_Float) |
|
|
1062
929
|
(1 << kUpb_FieldType_Fixed32) |
|
|
1063
930
|
(1 << kUpb_FieldType_SFixed32);
|
|
@@ -1068,17 +935,14 @@ const char* _upb_Decoder_DecodeWireValue(upb_Decoder* d, const char* ptr,
|
|
|
1068
935
|
|
|
1069
936
|
switch (wire_type) {
|
|
1070
937
|
case kUpb_WireType_Varint:
|
|
1071
|
-
ptr =
|
|
938
|
+
ptr = upb_WireReader_ReadVarint(ptr, &val->uint64_val, EPS(d));
|
|
1072
939
|
if (upb_MiniTableField_IsClosedEnum(field)) {
|
|
1073
|
-
const upb_MiniTableEnum* e =
|
|
1074
|
-
upb_MiniTableField_IsExtension(field)
|
|
1075
|
-
? upb_MiniTableExtension_GetSubEnum(
|
|
1076
|
-
(const upb_MiniTableExtension*)field)
|
|
1077
|
-
: upb_MiniTable_GetSubEnumTable(mt, field);
|
|
940
|
+
const upb_MiniTableEnum* e = upb_MiniTable_GetSubEnumTable(field);
|
|
1078
941
|
if (!upb_MiniTableEnum_CheckValue(e, val->uint64_val)) {
|
|
1079
942
|
*op = kUpb_DecodeOp_UnknownField;
|
|
1080
943
|
return ptr;
|
|
1081
944
|
}
|
|
945
|
+
_upb_Decoder_MungeInt32(val);
|
|
1082
946
|
} else {
|
|
1083
947
|
_upb_Decoder_Munge(field, val);
|
|
1084
948
|
}
|
|
@@ -1115,18 +979,15 @@ const char* _upb_Decoder_DecodeWireValue(upb_Decoder* d, const char* ptr,
|
|
|
1115
979
|
default:
|
|
1116
980
|
break;
|
|
1117
981
|
}
|
|
1118
|
-
|
|
982
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
1119
983
|
}
|
|
1120
984
|
|
|
1121
985
|
UPB_FORCEINLINE
|
|
1122
986
|
const char* _upb_Decoder_DecodeKnownField(upb_Decoder* d, const char* ptr,
|
|
1123
987
|
upb_Message* msg,
|
|
1124
|
-
const upb_MiniTable* layout,
|
|
1125
988
|
const upb_MiniTableField* field,
|
|
1126
989
|
int op, wireval* val) {
|
|
1127
|
-
const upb_MiniTableSubInternal* subs = layout->UPB_PRIVATE(subs);
|
|
1128
990
|
uint8_t mode = field->UPB_PRIVATE(mode);
|
|
1129
|
-
upb_MiniTableSubInternal ext_sub;
|
|
1130
991
|
|
|
1131
992
|
if (UPB_UNLIKELY(mode & kUpb_LabelFlags_IsExtension)) {
|
|
1132
993
|
const upb_MiniTableExtension* ext_layout =
|
|
@@ -1134,133 +995,81 @@ const char* _upb_Decoder_DecodeKnownField(upb_Decoder* d, const char* ptr,
|
|
|
1134
995
|
upb_Extension* ext = UPB_PRIVATE(_upb_Message_GetOrCreateExtension)(
|
|
1135
996
|
msg, ext_layout, &d->arena);
|
|
1136
997
|
if (UPB_UNLIKELY(!ext)) {
|
|
1137
|
-
|
|
998
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
1138
999
|
}
|
|
1139
1000
|
d->original_msg = msg;
|
|
1140
1001
|
msg = &ext->data.UPB_PRIVATE(ext_msg_val);
|
|
1141
|
-
if (upb_MiniTableField_IsSubMessage(&ext->ext->UPB_PRIVATE(field))) {
|
|
1142
|
-
ext_sub.UPB_PRIVATE(submsg) =
|
|
1143
|
-
&ext->ext->UPB_PRIVATE(sub).UPB_PRIVATE(submsg);
|
|
1144
|
-
} else {
|
|
1145
|
-
ext_sub.UPB_PRIVATE(subenum) =
|
|
1146
|
-
ext->ext->UPB_PRIVATE(sub).UPB_PRIVATE(subenum);
|
|
1147
|
-
}
|
|
1148
|
-
subs = &ext_sub;
|
|
1149
1002
|
}
|
|
1150
1003
|
|
|
1151
1004
|
switch (mode & kUpb_FieldMode_Mask) {
|
|
1152
1005
|
case kUpb_FieldMode_Array:
|
|
1153
|
-
return _upb_Decoder_DecodeToArray(d, ptr, msg,
|
|
1006
|
+
return _upb_Decoder_DecodeToArray(d, ptr, msg, field, val, op);
|
|
1154
1007
|
case kUpb_FieldMode_Map:
|
|
1155
|
-
return _upb_Decoder_DecodeToMap(d, ptr, msg,
|
|
1008
|
+
return _upb_Decoder_DecodeToMap(d, ptr, msg, field, val);
|
|
1156
1009
|
case kUpb_FieldMode_Scalar:
|
|
1157
|
-
return _upb_Decoder_DecodeToSubMessage(d, ptr, msg,
|
|
1010
|
+
return _upb_Decoder_DecodeToSubMessage(d, ptr, msg, field, val, op);
|
|
1158
1011
|
default:
|
|
1159
1012
|
UPB_UNREACHABLE();
|
|
1160
1013
|
}
|
|
1161
1014
|
}
|
|
1162
1015
|
|
|
1163
|
-
static const char* _upb_Decoder_DecodeUnknownField(
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
// Since unknown fields are the uncommon case, we do a little extra work here
|
|
1171
|
-
// to walk backwards through the buffer to find the field start. This frees
|
|
1172
|
-
// up a register in the fast paths (when the field is known), which leads to
|
|
1173
|
-
// significant speedups in benchmarks. Note that ptr may point into the slop
|
|
1174
|
-
// space, beyond the normal end of the input buffer.
|
|
1175
|
-
const char* start = ptr;
|
|
1016
|
+
static const char* _upb_Decoder_DecodeUnknownField(
|
|
1017
|
+
upb_Decoder* d, const char* ptr, upb_Message* msg, uint32_t field_number,
|
|
1018
|
+
uint32_t wire_type, wireval val, const char* start) {
|
|
1019
|
+
if (field_number == 0) {
|
|
1020
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
1021
|
+
}
|
|
1176
1022
|
|
|
1177
|
-
|
|
1178
|
-
if (msg) {
|
|
1179
|
-
switch (wire_type) {
|
|
1180
|
-
case kUpb_WireType_Varint:
|
|
1181
|
-
case kUpb_WireType_Delimited:
|
|
1182
|
-
// Skip the last byte
|
|
1183
|
-
start--;
|
|
1184
|
-
// Skip bytes until we encounter the final byte of the tag varint.
|
|
1185
|
-
while (start[-1] & 0x80) start--;
|
|
1186
|
-
break;
|
|
1187
|
-
case kUpb_WireType_32Bit:
|
|
1188
|
-
start -= 4;
|
|
1189
|
-
break;
|
|
1190
|
-
case kUpb_WireType_64Bit:
|
|
1191
|
-
start -= 8;
|
|
1192
|
-
break;
|
|
1193
|
-
default:
|
|
1194
|
-
break;
|
|
1195
|
-
}
|
|
1023
|
+
upb_EpsCopyInputStream_StartCapture(&d->input, start);
|
|
1196
1024
|
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
// earlier.
|
|
1207
|
-
uint32_t tag = ((uint32_t)field_number << 3) | wire_type;
|
|
1208
|
-
uint32_t seen = 0;
|
|
1209
|
-
do {
|
|
1210
|
-
start--;
|
|
1211
|
-
seen <<= 7;
|
|
1212
|
-
seen |= *start & 0x7f;
|
|
1213
|
-
} while (seen != tag);
|
|
1214
|
-
}
|
|
1215
|
-
assert(start == d->debug_tagstart);
|
|
1025
|
+
if (wire_type == kUpb_WireType_Delimited) {
|
|
1026
|
+
upb_StringView sv;
|
|
1027
|
+
ptr = upb_EpsCopyInputStream_ReadStringEphemeral(&d->input, ptr, val.size,
|
|
1028
|
+
&sv);
|
|
1029
|
+
if (!ptr) upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_Malformed);
|
|
1030
|
+
} else if (wire_type == kUpb_WireType_StartGroup) {
|
|
1031
|
+
ptr = UPB_PRIVATE(_upb_WireReader_SkipGroup)(ptr, field_number << 3,
|
|
1032
|
+
d->depth, &d->input);
|
|
1033
|
+
}
|
|
1216
1034
|
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
const char* input_ptr = upb_EpsCopyInputStream_GetInputPtr(&d->input, ptr);
|
|
1229
|
-
if (!UPB_PRIVATE(_upb_Message_AddUnknown)(
|
|
1230
|
-
msg, input_start, input_ptr - input_start, &d->arena,
|
|
1231
|
-
d->input.aliasing ? d->input.buffer_start : NULL)) {
|
|
1232
|
-
_upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
|
|
1035
|
+
upb_StringView sv;
|
|
1036
|
+
upb_EpsCopyInputStream_EndCapture(&d->input, ptr, &sv);
|
|
1037
|
+
|
|
1038
|
+
upb_AddUnknownMode mode = kUpb_AddUnknown_Copy;
|
|
1039
|
+
if (d->options & kUpb_DecodeOption_AliasString) {
|
|
1040
|
+
if (sv.data != d->input.buffer_start) {
|
|
1041
|
+
// If the data is not from the beginning of the input buffer, then we can
|
|
1042
|
+
// safely attempt to coalesce this region with the previous one.
|
|
1043
|
+
mode = kUpb_AddUnknown_AliasAllowMerge;
|
|
1044
|
+
} else {
|
|
1045
|
+
mode = kUpb_AddUnknown_Alias;
|
|
1233
1046
|
}
|
|
1234
|
-
} else if (wire_type == kUpb_WireType_StartGroup) {
|
|
1235
|
-
ptr = _upb_Decoder_DecodeUnknownGroup(d, ptr, field_number);
|
|
1236
1047
|
}
|
|
1048
|
+
|
|
1049
|
+
if (!UPB_PRIVATE(_upb_Message_AddUnknown)(msg, sv.data, sv.size, &d->arena,
|
|
1050
|
+
mode)) {
|
|
1051
|
+
upb_ErrorHandler_ThrowError(&d->err, kUpb_DecodeStatus_OutOfMemory);
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1237
1054
|
return ptr;
|
|
1238
1055
|
}
|
|
1239
1056
|
|
|
1240
1057
|
UPB_FORCEINLINE
|
|
1241
1058
|
const char* _upb_Decoder_DecodeFieldTag(upb_Decoder* d, const char* ptr,
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
d->debug_tagstart = ptr;
|
|
1245
|
-
#endif
|
|
1246
|
-
|
|
1059
|
+
uint32_t* field_number,
|
|
1060
|
+
uint32_t* wire_type) {
|
|
1247
1061
|
uint32_t tag;
|
|
1248
1062
|
UPB_ASSERT(ptr < d->input.limit_ptr);
|
|
1249
|
-
ptr =
|
|
1063
|
+
ptr = upb_WireReader_ReadTag(ptr, &tag, EPS(d));
|
|
1250
1064
|
*field_number = tag >> 3;
|
|
1251
1065
|
*wire_type = tag & 7;
|
|
1252
1066
|
return ptr;
|
|
1253
1067
|
}
|
|
1254
1068
|
|
|
1255
1069
|
UPB_FORCEINLINE
|
|
1256
|
-
const char* _upb_Decoder_DecodeFieldData(
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
int field_number, int wire_type) {
|
|
1260
|
-
#ifndef NDEBUG
|
|
1261
|
-
d->debug_valstart = ptr;
|
|
1262
|
-
#endif
|
|
1263
|
-
|
|
1070
|
+
const char* _upb_Decoder_DecodeFieldData(
|
|
1071
|
+
upb_Decoder* d, const char* ptr, upb_Message* msg, const upb_MiniTable* mt,
|
|
1072
|
+
uint32_t field_number, uint32_t wire_type, const char* start) {
|
|
1264
1073
|
int op;
|
|
1265
1074
|
wireval val;
|
|
1266
1075
|
|
|
@@ -1269,12 +1078,12 @@ const char* _upb_Decoder_DecodeFieldData(upb_Decoder* d, const char* ptr,
|
|
|
1269
1078
|
ptr = _upb_Decoder_DecodeWireValue(d, ptr, mt, field, wire_type, &val, &op);
|
|
1270
1079
|
|
|
1271
1080
|
if (op >= 0) {
|
|
1272
|
-
return _upb_Decoder_DecodeKnownField(d, ptr, msg,
|
|
1081
|
+
return _upb_Decoder_DecodeKnownField(d, ptr, msg, field, op, &val);
|
|
1273
1082
|
} else {
|
|
1274
1083
|
switch (op) {
|
|
1275
1084
|
case kUpb_DecodeOp_UnknownField:
|
|
1276
1085
|
return _upb_Decoder_DecodeUnknownField(d, ptr, msg, field_number,
|
|
1277
|
-
wire_type, val);
|
|
1086
|
+
wire_type, val, start);
|
|
1278
1087
|
case kUpb_DecodeOp_MessageSetItem:
|
|
1279
1088
|
return upb_Decoder_DecodeMessageSetItem(d, ptr, msg, mt);
|
|
1280
1089
|
default:
|
|
@@ -1292,9 +1101,10 @@ UPB_FORCEINLINE
|
|
|
1292
1101
|
const char* _upb_Decoder_DecodeFieldNoFast(upb_Decoder* d, const char* ptr,
|
|
1293
1102
|
upb_Message* msg,
|
|
1294
1103
|
const upb_MiniTable* mt) {
|
|
1295
|
-
|
|
1296
|
-
|
|
1104
|
+
uint32_t field_number;
|
|
1105
|
+
uint32_t wire_type;
|
|
1297
1106
|
|
|
1107
|
+
const char* start = ptr;
|
|
1298
1108
|
ptr = _upb_Decoder_DecodeFieldTag(d, ptr, &field_number, &wire_type);
|
|
1299
1109
|
|
|
1300
1110
|
if (wire_type == kUpb_WireType_EndGroup) {
|
|
@@ -1302,30 +1112,60 @@ const char* _upb_Decoder_DecodeFieldNoFast(upb_Decoder* d, const char* ptr,
|
|
|
1302
1112
|
return _upb_Decoder_EndMessage(d, ptr);
|
|
1303
1113
|
}
|
|
1304
1114
|
|
|
1305
|
-
ptr = _upb_Decoder_DecodeFieldData(d, ptr, msg, mt, field_number, wire_type
|
|
1115
|
+
ptr = _upb_Decoder_DecodeFieldData(d, ptr, msg, mt, field_number, wire_type,
|
|
1116
|
+
start);
|
|
1306
1117
|
_upb_Decoder_Trace(d, 'M');
|
|
1307
1118
|
return ptr;
|
|
1308
1119
|
}
|
|
1309
1120
|
|
|
1121
|
+
UPB_FORCEINLINE
|
|
1122
|
+
bool _upb_Decoder_TryDecodeMessageFast(upb_Decoder* d, const char** ptr,
|
|
1123
|
+
upb_Message* msg,
|
|
1124
|
+
const upb_MiniTable* mt,
|
|
1125
|
+
uint64_t last_field_index,
|
|
1126
|
+
uint64_t data) {
|
|
1127
|
+
#ifdef UPB_ENABLE_FASTTABLE
|
|
1128
|
+
if (mt->UPB_PRIVATE(table_mask) == (unsigned char)-1 ||
|
|
1129
|
+
(d->options & kUpb_DecodeOption_DisableFastTable)) {
|
|
1130
|
+
// Fast table is unavailable or disabled.
|
|
1131
|
+
return false;
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
intptr_t table = decode_totable(mt);
|
|
1135
|
+
const char* start = *ptr;
|
|
1136
|
+
char* trace_next = _upb_Decoder_TraceNext(d);
|
|
1137
|
+
|
|
1138
|
+
*ptr = upb_DecodeFast_Dispatch(d, *ptr, msg, table, 0, 0);
|
|
1139
|
+
|
|
1140
|
+
if (d->message_is_done) {
|
|
1141
|
+
// The entire message was successfully parsed fast.
|
|
1142
|
+
return true;
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
// *ptr now points to the beginning of a field that could not be parsed fast.
|
|
1146
|
+
// It's possible that some fields were parsed fast, in which case *ptr will
|
|
1147
|
+
// have been updated. However, it's also possible that the very first field
|
|
1148
|
+
// encountered could not be parsed fast, in which case *ptr will be unchanged.
|
|
1149
|
+
//
|
|
1150
|
+
// If the fast decoder consumed any data, it must have emitted at least
|
|
1151
|
+
// one 'F' event into the trace buffer (in addition to the 'D' event
|
|
1152
|
+
// that is always emitted).
|
|
1153
|
+
UPB_ASSERT(_upb_Decoder_TracePtr(d) != trace_next || *ptr == start);
|
|
1154
|
+
_upb_Decoder_Trace(d, '<');
|
|
1155
|
+
#endif
|
|
1156
|
+
return false;
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1310
1159
|
UPB_FORCEINLINE
|
|
1311
1160
|
const char* _upb_Decoder_DecodeField(upb_Decoder* d, const char* ptr,
|
|
1312
1161
|
upb_Message* msg, const upb_MiniTable* mt,
|
|
1313
1162
|
uint64_t last_field_index, uint64_t data) {
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
ptr = upb_DecodeFast_Dispatch(d, ptr, msg, table, 0, 0);
|
|
1319
|
-
if (d->message_is_done) return ptr;
|
|
1320
|
-
_upb_Decoder_Trace(d, '<');
|
|
1321
|
-
} else if (_upb_Decoder_IsDone(d, &ptr)) {
|
|
1163
|
+
if (_upb_Decoder_TryDecodeMessageFast(d, &ptr, msg, mt, last_field_index,
|
|
1164
|
+
data)) {
|
|
1165
|
+
return ptr;
|
|
1166
|
+
} else if (upb_EpsCopyInputStream_IsDone(EPS(d), &ptr)) {
|
|
1322
1167
|
return _upb_Decoder_EndMessage(d, ptr);
|
|
1323
1168
|
}
|
|
1324
|
-
#else
|
|
1325
|
-
if (_upb_Decoder_IsDone(d, &ptr)) {
|
|
1326
|
-
return _upb_Decoder_EndMessage(d, ptr);
|
|
1327
|
-
}
|
|
1328
|
-
#endif
|
|
1329
1169
|
|
|
1330
1170
|
return _upb_Decoder_DecodeFieldNoFast(d, ptr, msg, mt);
|
|
1331
1171
|
}
|
|
@@ -1334,6 +1174,7 @@ UPB_NOINLINE
|
|
|
1334
1174
|
const char* _upb_Decoder_DecodeMessage(upb_Decoder* d, const char* ptr,
|
|
1335
1175
|
upb_Message* msg,
|
|
1336
1176
|
const upb_MiniTable* mt) {
|
|
1177
|
+
UPB_ASSERT(mt);
|
|
1337
1178
|
UPB_ASSERT(d->message_is_done == false);
|
|
1338
1179
|
|
|
1339
1180
|
do {
|
|
@@ -1361,10 +1202,10 @@ static upb_DecodeStatus upb_Decoder_Decode(upb_Decoder* const decoder,
|
|
|
1361
1202
|
upb_Message* const msg,
|
|
1362
1203
|
const upb_MiniTable* const m,
|
|
1363
1204
|
upb_Arena* const arena) {
|
|
1364
|
-
if (UPB_SETJMP(decoder->err) == 0) {
|
|
1365
|
-
decoder->
|
|
1205
|
+
if (UPB_SETJMP(decoder->err.buf) == 0) {
|
|
1206
|
+
decoder->err.code = _upb_Decoder_DecodeTop(decoder, buf, msg, m);
|
|
1366
1207
|
} else {
|
|
1367
|
-
UPB_ASSERT(decoder->
|
|
1208
|
+
UPB_ASSERT(decoder->err.code != kUpb_DecodeStatus_Ok);
|
|
1368
1209
|
}
|
|
1369
1210
|
|
|
1370
1211
|
return upb_Decoder_Destroy(decoder, arena);
|
|
@@ -1452,8 +1293,6 @@ const char* upb_DecodeStatus_String(upb_DecodeStatus status) {
|
|
|
1452
1293
|
return "Exceeded upb_DecodeOptions_MaxDepth";
|
|
1453
1294
|
case kUpb_DecodeStatus_MissingRequired:
|
|
1454
1295
|
return "Missing required field";
|
|
1455
|
-
case kUpb_DecodeStatus_UnlinkedSubMessage:
|
|
1456
|
-
return "Unlinked sub-message field was present";
|
|
1457
1296
|
default:
|
|
1458
1297
|
return "Unknown decode status";
|
|
1459
1298
|
}
|