grpc 1.71.0 → 1.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +78 -75
- data/include/grpc/event_engine/memory_request.h +3 -3
- data/include/grpc/impl/channel_arg_names.h +70 -50
- data/include/grpc/support/workaround_list.h +1 -4
- data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
- data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
- data/src/core/{lib/transport → call}/call_destination.h +4 -4
- data/src/core/{lib/transport → call}/call_filters.cc +2 -2
- data/src/core/{lib/transport → call}/call_filters.h +25 -6
- data/src/core/{lib/channel → call}/call_finalization.h +3 -3
- data/src/core/{lib/transport → call}/call_spine.cc +1 -1
- data/src/core/{lib/transport → call}/call_spine.h +68 -26
- data/src/core/{lib/transport → call}/call_state.cc +1 -1
- data/src/core/{lib/transport → call}/call_state.h +3 -3
- data/src/core/{lib/surface → call}/client_call.cc +9 -7
- data/src/core/{lib/surface → call}/client_call.h +4 -4
- data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
- data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
- data/src/core/{lib/transport → call}/interception_chain.h +7 -7
- data/src/core/{lib/transport → call}/message.cc +1 -1
- data/src/core/{lib/transport → call}/message.h +7 -3
- data/src/core/{lib/transport → call}/metadata.cc +2 -2
- data/src/core/{lib/transport → call}/metadata.h +4 -4
- data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
- data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
- data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
- data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
- data/src/core/{lib/transport → call}/metadata_info.h +4 -4
- data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
- data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
- data/src/core/call/request_buffer.h +3 -3
- data/src/core/call/security_context.cc +125 -0
- data/src/core/call/security_context.h +114 -0
- data/src/core/{lib/surface → call}/server_call.cc +3 -3
- data/src/core/{lib/surface → call}/server_call.h +5 -5
- data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
- data/src/core/{lib/channel → call}/status_util.cc +1 -1
- data/src/core/{lib/channel → call}/status_util.h +3 -3
- data/src/core/client_channel/client_channel.cc +24 -16
- data/src/core/client_channel/client_channel.h +4 -3
- data/src/core/client_channel/client_channel_filter.cc +10 -20
- data/src/core/client_channel/client_channel_filter.h +1 -1
- data/src/core/client_channel/client_channel_internal.h +1 -1
- data/src/core/client_channel/config_selector.h +2 -2
- data/src/core/client_channel/direct_channel.cc +2 -2
- data/src/core/client_channel/dynamic_filters.cc +0 -1
- data/src/core/client_channel/dynamic_filters.h +0 -1
- data/src/core/client_channel/lb_metadata.h +1 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
- data/src/core/client_channel/load_balanced_call_destination.h +1 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
- data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
- data/src/core/client_channel/retry_interceptor.h +1 -1
- data/src/core/client_channel/retry_service_config.cc +1 -1
- data/src/core/client_channel/retry_service_config.h +1 -1
- data/src/core/client_channel/retry_throttle.cc +30 -34
- data/src/core/client_channel/retry_throttle.h +10 -2
- data/src/core/client_channel/subchannel.cc +7 -8
- data/src/core/client_channel/subchannel.h +1 -2
- data/src/core/client_channel/subchannel_stream_client.cc +14 -11
- data/src/core/client_channel/subchannel_stream_client.h +2 -2
- data/src/core/config/core_configuration.h +2 -2
- data/src/core/credentials/call/call_credentials.h +157 -0
- data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
- data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
- data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
- data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
- data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
- data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
- data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
- data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
- data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
- data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
- data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
- data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
- data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
- data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
- data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
- data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
- data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
- data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
- data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
- data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
- data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
- data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
- data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
- data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
- data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
- data/src/core/handshaker/handshaker.cc +0 -8
- data/src/core/handshaker/security/security_handshaker.cc +1 -1
- data/src/core/handshaker/security/security_handshaker.h +1 -1
- data/src/core/lib/channel/channel_args.h +49 -30
- data/src/core/lib/channel/channel_stack.h +1 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/connected_channel.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.h +3 -3
- data/src/core/lib/debug/trace_flags.cc +2 -4
- data/src/core/lib/debug/trace_flags.h +1 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
- data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
- data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
- data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
- data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
- data/src/core/lib/event_engine/shim.cc +9 -16
- data/src/core/lib/event_engine/shim.h +11 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
- data/src/core/lib/event_engine/windows/win_socket.h +3 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
- data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
- data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
- data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
- data/src/core/lib/experiments/experiments.cc +174 -21
- data/src/core/lib/experiments/experiments.h +70 -13
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
- data/src/core/lib/iomgr/error.cc +27 -43
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
- data/src/core/lib/iomgr/polling_entity.cc +2 -7
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
- data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
- data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +58 -31
- data/src/core/lib/iomgr/tcp_posix.h +10 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
- data/src/core/lib/promise/all_ok.h +31 -0
- data/src/core/lib/promise/loop.h +8 -5
- data/src/core/lib/promise/map.h +65 -2
- data/src/core/lib/promise/party.h +5 -1
- data/src/core/lib/promise/poll.h +22 -20
- data/src/core/lib/promise/promise.h +2 -2
- data/src/core/lib/promise/status_flag.h +23 -11
- data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.h +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/slice/slice.h +6 -0
- data/src/core/lib/surface/call.cc +20 -18
- data/src/core/lib/surface/call_utils.cc +3 -3
- data/src/core/lib/surface/call_utils.h +3 -3
- data/src/core/lib/surface/channel.h +2 -2
- data/src/core/lib/surface/channel_init.h +2 -2
- data/src/core/lib/surface/completion_queue.cc +77 -17
- data/src/core/lib/surface/filter_stack_call.cc +40 -27
- data/src/core/lib/surface/filter_stack_call.h +1 -1
- data/src/core/lib/surface/init.cc +2 -3
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +27 -23
- data/src/core/lib/surface/legacy_channel.h +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +65 -11
- data/src/core/lib/transport/error_utils.h +2 -2
- data/src/core/lib/transport/status_conversion.cc +16 -14
- data/src/core/lib/transport/status_conversion.h +5 -4
- data/src/core/lib/transport/transport.h +5 -5
- data/src/core/lib/transport/transport_op_string.cc +1 -1
- data/src/core/load_balancing/delegating_helper.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
- data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
- data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
- data/src/core/load_balancing/rls/rls.cc +31 -37
- data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
- data/src/core/load_balancing/xds/cds.cc +3 -10
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
- data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
- data/src/core/resolver/xds/xds_resolver.cc +2 -2
- data/src/core/server/server.cc +7 -4
- data/src/core/server/server.h +1 -1
- data/src/core/server/server_call_tracer_filter.cc +1 -1
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +5 -5
- data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
- data/src/core/telemetry/call_tracer.cc +2 -4
- data/src/core/telemetry/call_tracer.h +3 -3
- data/src/core/telemetry/metrics.cc +30 -12
- data/src/core/telemetry/metrics.h +15 -3
- data/src/core/telemetry/stats_data.cc +75 -2
- data/src/core/telemetry/stats_data.h +46 -4
- data/src/core/telemetry/tcp_tracer.h +90 -84
- data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
- data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/util/check_class_size.h +48 -0
- data/src/core/util/gcp_metadata_query.cc +1 -1
- data/src/core/util/http_client/httpcli.cc +3 -3
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
- data/src/core/util/load_file.cc +26 -14
- data/src/core/util/status_helper.cc +86 -63
- data/src/core/util/status_helper.h +9 -26
- data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.h +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
- data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
- data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
- data/src/core/xds/grpc/xds_client_grpc.h +4 -2
- data/src/core/xds/grpc/xds_cluster.h +3 -3
- data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
- data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
- data/src/core/xds/grpc/xds_http_filter.h +1 -1
- data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
- data/src/core/xds/grpc/xds_routing.h +1 -1
- data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
- data/src/core/xds/grpc/xds_server_grpc.h +23 -13
- data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
- data/src/core/xds/xds_client/lrs_client.cc +6 -5
- data/src/core/xds/xds_client/lrs_client.h +7 -7
- data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
- data/src/core/xds/xds_client/xds_client.cc +25 -23
- data/src/core/xds/xds_client/xds_client.h +3 -1
- data/src/core/xds/xds_client/xds_resource_type.h +1 -2
- data/src/core/xds/xds_client/xds_transport.h +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
- data/third_party/upb/upb/base/internal/log2.h +3 -1
- data/third_party/upb/upb/base/string_view.h +10 -0
- data/third_party/upb/upb/hash/common.c +5 -1
- data/third_party/upb/upb/json/decode.c +2 -2
- data/third_party/upb/upb/json/decode.h +0 -1
- data/third_party/upb/upb/mem/alloc.h +5 -0
- data/third_party/upb/upb/mem/arena.c +296 -142
- data/third_party/upb/upb/mem/arena.h +47 -11
- data/third_party/upb/upb/mem/arena.hpp +4 -20
- data/third_party/upb/upb/mem/internal/arena.h +4 -6
- data/third_party/upb/upb/message/accessors.h +41 -0
- data/third_party/upb/upb/message/compat.c +11 -14
- data/third_party/upb/upb/message/compat.h +4 -3
- data/third_party/upb/upb/message/copy.c +35 -30
- data/third_party/upb/upb/message/internal/accessors.h +139 -10
- data/third_party/upb/upb/message/internal/extension.c +28 -25
- data/third_party/upb/upb/message/internal/extension.h +21 -5
- data/third_party/upb/upb/message/internal/iterator.c +58 -0
- data/third_party/upb/upb/message/internal/iterator.h +29 -0
- data/third_party/upb/upb/message/internal/map.h +2 -3
- data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
- data/third_party/upb/upb/message/internal/message.c +48 -29
- data/third_party/upb/upb/message/internal/message.h +154 -24
- data/third_party/upb/upb/message/map_sorter.c +20 -8
- data/third_party/upb/upb/message/message.c +90 -38
- data/third_party/upb/upb/message/message.h +58 -2
- data/third_party/upb/upb/message/value.h +9 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
- data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
- data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
- data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
- data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
- data/third_party/upb/upb/mini_table/message.c +21 -13
- data/third_party/upb/upb/port/atomic.h +134 -7
- data/third_party/upb/upb/port/def.inc +140 -38
- data/third_party/upb/upb/port/undef.inc +11 -1
- data/third_party/upb/upb/reflection/def.hpp +5 -1
- data/third_party/upb/upb/reflection/def_pool.c +10 -3
- data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
- data/third_party/upb/upb/reflection/file_def.c +12 -5
- data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message.c +19 -16
- data/third_party/upb/upb/reflection/message.h +3 -1
- data/third_party/upb/upb/text/encode.c +1 -13
- data/third_party/upb/upb/text/internal/encode.c +25 -6
- data/third_party/upb/upb/text/internal/encode.h +4 -0
- data/third_party/upb/upb/wire/decode.c +60 -45
- data/third_party/upb/upb/wire/decode.h +4 -2
- data/third_party/upb/upb/wire/encode.c +77 -42
- data/third_party/upb/upb/wire/encode.h +2 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
- data/third_party/upb/upb/wire/internal/decoder.h +4 -11
- data/third_party/utf8_range/utf8_range.c +15 -275
- data/third_party/utf8_range/utf8_range_neon.inc +117 -0
- data/third_party/utf8_range/utf8_range_sse.inc +272 -0
- data/third_party/zlib/deflate.c +40 -15
- data/third_party/zlib/deflate.h +33 -2
- data/third_party/zlib/gzguts.h +2 -6
- data/third_party/zlib/inflate.c +1 -1
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/inftrees.h +2 -2
- data/third_party/zlib/trees.c +18 -4
- data/third_party/zlib/zconf.h +1 -9
- data/third_party/zlib/zlib.h +12 -12
- data/third_party/zlib/zutil.h +4 -25
- metadata +155 -145
- data/include/grpc/grpc_cronet.h +0 -37
- data/src/core/lib/transport/http2_errors.h +0 -43
- data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
- data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -11,8 +11,12 @@
|
|
11
11
|
#include <stddef.h>
|
12
12
|
|
13
13
|
#include "upb/mem/arena.h"
|
14
|
+
#include "upb/message/internal/array.h"
|
15
|
+
#include "upb/message/internal/map.h"
|
16
|
+
#include "upb/message/internal/types.h"
|
14
17
|
#include "upb/message/value.h"
|
15
18
|
#include "upb/mini_table/extension.h"
|
19
|
+
#include "upb/mini_table/internal/field.h"
|
16
20
|
|
17
21
|
// Must be last.
|
18
22
|
#include "upb/port/def.inc"
|
@@ -41,16 +45,28 @@ upb_Extension* UPB_PRIVATE(_upb_Message_GetOrCreateExtension)(
|
|
41
45
|
struct upb_Message* msg, const upb_MiniTableExtension* ext,
|
42
46
|
upb_Arena* arena);
|
43
47
|
|
44
|
-
// Returns an array of extensions for this message.
|
45
|
-
// Note: the array is ordered in reverse relative to the order of creation.
|
46
|
-
const upb_Extension* UPB_PRIVATE(_upb_Message_Getexts)(
|
47
|
-
const struct upb_Message* msg, size_t* count);
|
48
|
-
|
49
48
|
// Returns an extension for a message with a given mini table,
|
50
49
|
// or NULL if no extension exists with this mini table.
|
51
50
|
const upb_Extension* UPB_PRIVATE(_upb_Message_Getext)(
|
52
51
|
const struct upb_Message* msg, const upb_MiniTableExtension* ext);
|
53
52
|
|
53
|
+
UPB_INLINE bool UPB_PRIVATE(_upb_Extension_IsEmpty)(const upb_Extension* ext) {
|
54
|
+
switch (
|
55
|
+
UPB_PRIVATE(_upb_MiniTableField_Mode)(&ext->ext->UPB_PRIVATE(field))) {
|
56
|
+
case kUpb_FieldMode_Scalar:
|
57
|
+
return false;
|
58
|
+
case kUpb_FieldMode_Array:
|
59
|
+
return upb_Array_Size(ext->data.array_val) == 0;
|
60
|
+
case kUpb_FieldMode_Map:
|
61
|
+
return _upb_Map_Size(ext->data.map_val) == 0;
|
62
|
+
}
|
63
|
+
UPB_UNREACHABLE();
|
64
|
+
}
|
65
|
+
|
66
|
+
// Replaces the unknown field at iter with the provided extension.
|
67
|
+
void upb_Message_ReplaceUnknownWithExtension(struct upb_Message* msg,
|
68
|
+
uintptr_t iter,
|
69
|
+
const upb_Extension* ext);
|
54
70
|
#ifdef __cplusplus
|
55
71
|
} /* extern "C" */
|
56
72
|
#endif
|
@@ -0,0 +1,58 @@
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
2
|
+
// Copyright 2024 Google LLC. All rights reserved.
|
3
|
+
//
|
4
|
+
// Use of this source code is governed by a BSD-style
|
5
|
+
// license that can be found in the LICENSE file or at
|
6
|
+
// https://developers.google.com/open-source/licenses/bsd
|
7
|
+
|
8
|
+
#include "upb/message/internal/iterator.h" // IWYU pragma: keep
|
9
|
+
|
10
|
+
#include <stddef.h>
|
11
|
+
|
12
|
+
#include "upb/message/accessors.h"
|
13
|
+
#include "upb/message/array.h"
|
14
|
+
#include "upb/message/internal/accessors.h"
|
15
|
+
#include "upb/message/map.h"
|
16
|
+
#include "upb/message/message.h"
|
17
|
+
#include "upb/mini_table/field.h"
|
18
|
+
#include "upb/mini_table/message.h"
|
19
|
+
|
20
|
+
// Must be last.
|
21
|
+
#include "upb/port/def.inc"
|
22
|
+
|
23
|
+
bool UPB_PRIVATE(_upb_Message_NextBaseField)(const upb_Message* msg,
|
24
|
+
const upb_MiniTable* m,
|
25
|
+
const upb_MiniTableField** out_f,
|
26
|
+
upb_MessageValue* out_v,
|
27
|
+
size_t* iter) {
|
28
|
+
const size_t count = upb_MiniTable_FieldCount(m);
|
29
|
+
size_t i = *iter;
|
30
|
+
|
31
|
+
while (++i < count) {
|
32
|
+
const upb_MiniTableField* f = upb_MiniTable_GetFieldByIndex(m, i);
|
33
|
+
const void* src = UPB_PRIVATE(_upb_Message_DataPtr)(msg, f);
|
34
|
+
|
35
|
+
upb_MessageValue val;
|
36
|
+
UPB_PRIVATE(_upb_MiniTableField_DataCopy)(f, &val, src);
|
37
|
+
|
38
|
+
// Skip field if unset or empty.
|
39
|
+
if (upb_MiniTableField_HasPresence(f)) {
|
40
|
+
if (!upb_Message_HasBaseField(msg, f)) continue;
|
41
|
+
} else {
|
42
|
+
if (UPB_PRIVATE(_upb_MiniTableField_DataIsZero)(f, src)) continue;
|
43
|
+
|
44
|
+
if (upb_MiniTableField_IsArray(f)) {
|
45
|
+
if (upb_Array_Size(val.array_val) == 0) continue;
|
46
|
+
} else if (upb_MiniTableField_IsMap(f)) {
|
47
|
+
if (upb_Map_Size(val.map_val) == 0) continue;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
*out_f = f;
|
52
|
+
*out_v = val;
|
53
|
+
*iter = i;
|
54
|
+
return true;
|
55
|
+
}
|
56
|
+
|
57
|
+
return false;
|
58
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
2
|
+
// Copyright 2024 Google LLC. All rights reserved.
|
3
|
+
//
|
4
|
+
// Use of this source code is governed by a BSD-style
|
5
|
+
// license that can be found in the LICENSE file or at
|
6
|
+
// https://developers.google.com/open-source/licenses/bsd
|
7
|
+
|
8
|
+
#ifndef THIRD_PARTY_UPB_UPB_MESSAGE_INTERNAL_ITERATOR_H_
|
9
|
+
#define THIRD_PARTY_UPB_UPB_MESSAGE_INTERNAL_ITERATOR_H_
|
10
|
+
|
11
|
+
#include <stddef.h>
|
12
|
+
#include <stdint.h>
|
13
|
+
|
14
|
+
#include "upb/message/message.h"
|
15
|
+
#include "upb/message/value.h"
|
16
|
+
#include "upb/mini_table/field.h"
|
17
|
+
#include "upb/mini_table/message.h"
|
18
|
+
|
19
|
+
// Must be last.
|
20
|
+
#include "upb/port/def.inc"
|
21
|
+
|
22
|
+
#define kUpb_BaseField_Begin ((size_t)-1)
|
23
|
+
bool UPB_PRIVATE(_upb_Message_NextBaseField)(const upb_Message* msg,
|
24
|
+
const upb_MiniTable* m,
|
25
|
+
const upb_MiniTableField** out_f,
|
26
|
+
upb_MessageValue* out_v,
|
27
|
+
uintptr_t* iter);
|
28
|
+
|
29
|
+
#endif // THIRD_PARTY_UPB_UPB_MESSAGE_INTERNAL_ITERATOR_H_
|
@@ -95,14 +95,13 @@ UPB_INLINE void _upb_map_fromvalue(upb_value val, void* out, size_t size) {
|
|
95
95
|
}
|
96
96
|
}
|
97
97
|
|
98
|
-
UPB_INLINE
|
98
|
+
UPB_INLINE bool _upb_map_next(const struct upb_Map* map, size_t* iter) {
|
99
99
|
upb_strtable_iter it;
|
100
100
|
it.t = &map->table;
|
101
101
|
it.index = *iter;
|
102
102
|
upb_strtable_next(&it);
|
103
103
|
*iter = it.index;
|
104
|
-
|
105
|
-
return (void*)str_tabent(&it);
|
104
|
+
return !upb_strtable_done(&it);
|
106
105
|
}
|
107
106
|
|
108
107
|
UPB_INLINE void _upb_Map_Clear(struct upb_Map* map) {
|
@@ -18,6 +18,7 @@
|
|
18
18
|
#include "upb/message/internal/extension.h"
|
19
19
|
#include "upb/message/internal/map.h"
|
20
20
|
#include "upb/message/internal/map_entry.h"
|
21
|
+
#include "upb/message/internal/message.h"
|
21
22
|
|
22
23
|
// Must be last.
|
23
24
|
#include "upb/port/def.inc"
|
@@ -80,8 +81,8 @@ UPB_INLINE void _upb_mapsorter_popmap(_upb_mapsorter* s,
|
|
80
81
|
bool _upb_mapsorter_pushmap(_upb_mapsorter* s, upb_FieldType key_type,
|
81
82
|
const struct upb_Map* map, _upb_sortedmap* sorted);
|
82
83
|
|
83
|
-
bool _upb_mapsorter_pushexts(_upb_mapsorter* s, const
|
84
|
-
|
84
|
+
bool _upb_mapsorter_pushexts(_upb_mapsorter* s, const upb_Message_Internal* in,
|
85
|
+
_upb_sortedmap* sorted);
|
85
86
|
|
86
87
|
#ifdef __cplusplus
|
87
88
|
} /* extern "C" */
|
@@ -8,6 +8,8 @@
|
|
8
8
|
#include "upb/message/internal/message.h"
|
9
9
|
|
10
10
|
#include <math.h>
|
11
|
+
#include <stddef.h>
|
12
|
+
#include <stdint.h>
|
11
13
|
#include <string.h>
|
12
14
|
|
13
15
|
#include "upb/base/internal/log2.h"
|
@@ -17,49 +19,66 @@
|
|
17
19
|
// Must be last.
|
18
20
|
#include "upb/port/def.inc"
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
// The latest win32 SDKs have an invalid definition of NAN.
|
23
|
+
// https://developercommunity.visualstudio.com/t/NAN-is-no-longer-compile-time-constant-i/10688907
|
24
|
+
//
|
25
|
+
// Unfortunately, the `0.0 / 0.0` workaround doesn't work in Clang under C23, so
|
26
|
+
// try __builtin_nan first, if that exists.
|
27
|
+
#ifdef _WIN32
|
28
|
+
#ifdef __has_builtin
|
29
|
+
#if __has_builtin(__builtin_nan)
|
30
|
+
#define UPB_NAN __builtin_nan("0")
|
31
|
+
#endif
|
32
|
+
#if __has_builtin(__builtin_inf)
|
33
|
+
#define UPB_INFINITY __builtin_inf()
|
34
|
+
#endif
|
35
|
+
#endif
|
36
|
+
#ifndef UPB_NAN
|
37
|
+
#define UPB_NAN 0.0 / 0.0
|
38
|
+
#endif
|
39
|
+
#ifndef UPB_INFINITY
|
40
|
+
#define UPB_INFINITY 1.0 / 0.0
|
41
|
+
#endif
|
42
|
+
#else
|
43
|
+
// For !_WIN32, assume math.h works.
|
44
|
+
#define UPB_NAN NAN
|
45
|
+
#define UPB_INFINITY INFINITY
|
46
|
+
#endif
|
23
47
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
48
|
+
const float kUpb_FltInfinity = UPB_INFINITY;
|
49
|
+
const double kUpb_Infinity = UPB_INFINITY;
|
50
|
+
const double kUpb_NaN = UPB_NAN;
|
51
|
+
|
52
|
+
static size_t _upb_Message_SizeOfInternal(uint32_t count) {
|
53
|
+
return UPB_SIZEOF_FLEX(upb_Message_Internal, aux_data, count);
|
54
|
+
}
|
28
55
|
|
56
|
+
bool UPB_PRIVATE(_upb_Message_ReserveSlot)(struct upb_Message* msg,
|
57
|
+
upb_Arena* a) {
|
58
|
+
UPB_ASSERT(!upb_Message_IsFrozen(msg));
|
29
59
|
upb_Message_Internal* in = UPB_PRIVATE(_upb_Message_GetInternal)(msg);
|
30
60
|
if (!in) {
|
31
61
|
// No internal data, allocate from scratch.
|
32
|
-
|
33
|
-
in = upb_Arena_Malloc(a,
|
62
|
+
uint32_t capacity = 4;
|
63
|
+
in = upb_Arena_Malloc(a, _upb_Message_SizeOfInternal(capacity));
|
34
64
|
if (!in) return false;
|
35
|
-
|
36
|
-
in->
|
37
|
-
in->unknown_end = overhead;
|
38
|
-
in->ext_begin = size;
|
65
|
+
in->size = 0;
|
66
|
+
in->capacity = capacity;
|
39
67
|
UPB_PRIVATE(_upb_Message_SetInternal)(msg, in);
|
40
|
-
} else if (in->
|
68
|
+
} else if (in->capacity == in->size) {
|
41
69
|
// Internal data is too small, reallocate.
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
in = upb_Arena_Realloc(a, in, in->size, new_size);
|
70
|
+
uint32_t new_capacity = upb_RoundUpToPowerOfTwo(in->size + 1);
|
71
|
+
in = upb_Arena_Realloc(a, in, _upb_Message_SizeOfInternal(in->capacity),
|
72
|
+
_upb_Message_SizeOfInternal(new_capacity));
|
46
73
|
if (!in) return false;
|
47
|
-
|
48
|
-
if (ext_bytes) {
|
49
|
-
// Need to move extension data to the end.
|
50
|
-
char* ptr = (char*)in;
|
51
|
-
memmove(ptr + new_ext_begin, ptr + in->ext_begin, ext_bytes);
|
52
|
-
}
|
53
|
-
in->ext_begin = new_ext_begin;
|
54
|
-
in->size = new_size;
|
74
|
+
in->capacity = new_capacity;
|
55
75
|
UPB_PRIVATE(_upb_Message_SetInternal)(msg, in);
|
56
76
|
}
|
57
|
-
|
58
|
-
UPB_ASSERT(in->ext_begin - in->unknown_end >= need);
|
77
|
+
UPB_ASSERT(in->capacity - in->size >= 1);
|
59
78
|
return true;
|
60
79
|
}
|
61
80
|
|
62
|
-
#
|
81
|
+
#ifdef UPB_TRACING_ENABLED
|
63
82
|
static void (*_message_trace_handler)(const upb_MiniTable*, const upb_Arena*);
|
64
83
|
|
65
84
|
void upb_Message_LogNewMessage(const upb_MiniTable* m, const upb_Arena* arena) {
|
@@ -15,11 +15,15 @@
|
|
15
15
|
#ifndef UPB_MESSAGE_INTERNAL_MESSAGE_H_
|
16
16
|
#define UPB_MESSAGE_INTERNAL_MESSAGE_H_
|
17
17
|
|
18
|
+
#include <stdint.h>
|
18
19
|
#include <stdlib.h>
|
19
20
|
#include <string.h>
|
20
21
|
|
22
|
+
#include "upb/base/string_view.h"
|
21
23
|
#include "upb/mem/arena.h"
|
22
24
|
#include "upb/message/internal/extension.h"
|
25
|
+
#include "upb/message/internal/types.h"
|
26
|
+
#include "upb/mini_table/extension.h"
|
23
27
|
#include "upb/mini_table/message.h"
|
24
28
|
|
25
29
|
// Must be last.
|
@@ -36,27 +40,58 @@ extern const double kUpb_NaN;
|
|
36
40
|
// Internal members of a upb_Message that track unknown fields and/or
|
37
41
|
// extensions. We can change this without breaking binary compatibility.
|
38
42
|
|
43
|
+
typedef struct upb_TaggedAuxPtr {
|
44
|
+
uintptr_t ptr;
|
45
|
+
} upb_TaggedAuxPtr;
|
46
|
+
|
47
|
+
UPB_INLINE bool upb_TaggedAuxPtr_IsNull(upb_TaggedAuxPtr ptr) {
|
48
|
+
return ptr.ptr == 0;
|
49
|
+
}
|
50
|
+
|
51
|
+
UPB_INLINE bool upb_TaggedAuxPtr_IsExtension(upb_TaggedAuxPtr ptr) {
|
52
|
+
return ptr.ptr & 1;
|
53
|
+
}
|
54
|
+
|
55
|
+
UPB_INLINE bool upb_TaggedAuxPtr_IsUnknown(upb_TaggedAuxPtr ptr) {
|
56
|
+
return (ptr.ptr != 0) && ((ptr.ptr & 1) == 0);
|
57
|
+
}
|
58
|
+
|
59
|
+
UPB_INLINE upb_Extension* upb_TaggedAuxPtr_Extension(upb_TaggedAuxPtr ptr) {
|
60
|
+
UPB_ASSERT(upb_TaggedAuxPtr_IsExtension(ptr));
|
61
|
+
return (upb_Extension*)(ptr.ptr & ~1ULL);
|
62
|
+
}
|
63
|
+
|
64
|
+
UPB_INLINE upb_StringView* upb_TaggedAuxPtr_UnknownData(upb_TaggedAuxPtr ptr) {
|
65
|
+
UPB_ASSERT(!upb_TaggedAuxPtr_IsExtension(ptr));
|
66
|
+
return (upb_StringView*)(ptr.ptr);
|
67
|
+
}
|
68
|
+
|
69
|
+
UPB_INLINE upb_TaggedAuxPtr upb_TaggedAuxPtr_Null(void) {
|
70
|
+
upb_TaggedAuxPtr ptr;
|
71
|
+
ptr.ptr = 0;
|
72
|
+
return ptr;
|
73
|
+
}
|
74
|
+
|
75
|
+
UPB_INLINE upb_TaggedAuxPtr
|
76
|
+
upb_TaggedAuxPtr_MakeExtension(const upb_Extension* e) {
|
77
|
+
upb_TaggedAuxPtr ptr;
|
78
|
+
ptr.ptr = (uintptr_t)e | 1;
|
79
|
+
return ptr;
|
80
|
+
}
|
81
|
+
|
82
|
+
UPB_INLINE upb_TaggedAuxPtr
|
83
|
+
upb_TaggedAuxPtr_MakeUnknownData(const upb_StringView* sv) {
|
84
|
+
upb_TaggedAuxPtr ptr;
|
85
|
+
ptr.ptr = (uintptr_t)sv;
|
86
|
+
return ptr;
|
87
|
+
}
|
88
|
+
|
39
89
|
typedef struct upb_Message_Internal {
|
40
|
-
// Total
|
41
|
-
// Must be aligned to 8, which is alignof(upb_Extension)
|
90
|
+
// Total number of entries set in aux_data
|
42
91
|
uint32_t size;
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
* Unknown data grows forward from the beginning to unknown_end.
|
47
|
-
* Extension data grows backward from size to ext_begin.
|
48
|
-
* When the two meet, we're out of data and have to realloc.
|
49
|
-
*
|
50
|
-
* If we imagine that the final member of this struct is:
|
51
|
-
* char data[size - overhead]; // overhead = sizeof(upb_Message_Internal)
|
52
|
-
*
|
53
|
-
* Then we have:
|
54
|
-
* unknown data: data[0 .. (unknown_end - overhead)]
|
55
|
-
* extensions data: data[(ext_begin - overhead) .. (size - overhead)] */
|
56
|
-
uint32_t unknown_end;
|
57
|
-
uint32_t ext_begin;
|
58
|
-
// Data follows, as if there were an array:
|
59
|
-
// char data[size - sizeof(upb_Message_Internal)];
|
92
|
+
uint32_t capacity;
|
93
|
+
// Tagged pointers to upb_StringView or upb_Extension
|
94
|
+
upb_TaggedAuxPtr aux_data[];
|
60
95
|
} upb_Message_Internal;
|
61
96
|
|
62
97
|
#ifdef UPB_TRACING_ENABLED
|
@@ -83,14 +118,109 @@ UPB_INLINE struct upb_Message* _upb_Message_New(const upb_MiniTable* m,
|
|
83
118
|
// Discards the unknown fields for this message only.
|
84
119
|
void _upb_Message_DiscardUnknown_shallow(struct upb_Message* msg);
|
85
120
|
|
86
|
-
// Adds unknown data (serialized protobuf data) to the given message.
|
87
|
-
//
|
121
|
+
// Adds unknown data (serialized protobuf data) to the given message. The data
|
122
|
+
// must represent one or more complete and well formed proto fields.
|
123
|
+
// If alias is set, will keep a view to the provided data; otherwise a copy is
|
124
|
+
// made.
|
88
125
|
bool UPB_PRIVATE(_upb_Message_AddUnknown)(struct upb_Message* msg,
|
89
126
|
const char* data, size_t len,
|
90
|
-
upb_Arena* arena);
|
127
|
+
upb_Arena* arena, bool alias);
|
91
128
|
|
92
|
-
|
93
|
-
|
129
|
+
// Adds unknown data (serialized protobuf data) to the given message.
|
130
|
+
// The data is copied into the message instance. Data when concatenated together
|
131
|
+
// must represent one or more complete and well formed proto fields, but the
|
132
|
+
// individual spans may point only to partial fields.
|
133
|
+
bool UPB_PRIVATE(_upb_Message_AddUnknownV)(struct upb_Message* msg,
|
134
|
+
upb_Arena* arena,
|
135
|
+
upb_StringView data[], size_t count);
|
136
|
+
|
137
|
+
// Ensures at least one slot is available in the aux_data of this message.
|
138
|
+
// Returns false if a reallocation is needed to satisfy the request, and fails.
|
139
|
+
bool UPB_PRIVATE(_upb_Message_ReserveSlot)(struct upb_Message* msg,
|
140
|
+
upb_Arena* arena);
|
141
|
+
|
142
|
+
#define kUpb_Message_UnknownBegin 0
|
143
|
+
#define kUpb_Message_ExtensionBegin 0
|
144
|
+
|
145
|
+
UPB_INLINE bool upb_Message_NextUnknown(const struct upb_Message* msg,
|
146
|
+
upb_StringView* data, uintptr_t* iter) {
|
147
|
+
const upb_Message_Internal* in = UPB_PRIVATE(_upb_Message_GetInternal)(msg);
|
148
|
+
size_t i = *iter;
|
149
|
+
if (in) {
|
150
|
+
while (i < in->size) {
|
151
|
+
upb_TaggedAuxPtr tagged_ptr = in->aux_data[i++];
|
152
|
+
if (upb_TaggedAuxPtr_IsUnknown(tagged_ptr)) {
|
153
|
+
*data = *upb_TaggedAuxPtr_UnknownData(tagged_ptr);
|
154
|
+
*iter = i;
|
155
|
+
return true;
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
data->size = 0;
|
160
|
+
data->data = NULL;
|
161
|
+
*iter = i;
|
162
|
+
return false;
|
163
|
+
}
|
164
|
+
|
165
|
+
UPB_INLINE bool upb_Message_HasUnknown(const struct upb_Message* msg) {
|
166
|
+
upb_StringView data;
|
167
|
+
uintptr_t iter = kUpb_Message_UnknownBegin;
|
168
|
+
return upb_Message_NextUnknown(msg, &data, &iter);
|
169
|
+
}
|
170
|
+
|
171
|
+
UPB_INLINE bool upb_Message_NextExtension(const struct upb_Message* msg,
|
172
|
+
const upb_MiniTableExtension** out_e,
|
173
|
+
upb_MessageValue* out_v,
|
174
|
+
uintptr_t* iter) {
|
175
|
+
const upb_Message_Internal* in = UPB_PRIVATE(_upb_Message_GetInternal)(msg);
|
176
|
+
uintptr_t i = *iter;
|
177
|
+
if (in) {
|
178
|
+
while (i < in->size) {
|
179
|
+
upb_TaggedAuxPtr tagged_ptr = in->aux_data[i++];
|
180
|
+
if (upb_TaggedAuxPtr_IsExtension(tagged_ptr)) {
|
181
|
+
const upb_Extension* ext = upb_TaggedAuxPtr_Extension(tagged_ptr);
|
182
|
+
|
183
|
+
// Empty repeated fields or maps semantically don't exist.
|
184
|
+
if (UPB_PRIVATE(_upb_Extension_IsEmpty)(ext)) continue;
|
185
|
+
|
186
|
+
*out_e = ext->ext;
|
187
|
+
*out_v = ext->data;
|
188
|
+
*iter = i;
|
189
|
+
return true;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
*iter = i;
|
194
|
+
|
195
|
+
return false;
|
196
|
+
}
|
197
|
+
|
198
|
+
UPB_INLINE bool UPB_PRIVATE(_upb_Message_NextExtensionReverse)(
|
199
|
+
const struct upb_Message* msg, const upb_MiniTableExtension** out_e,
|
200
|
+
upb_MessageValue* out_v, uintptr_t* iter) {
|
201
|
+
upb_Message_Internal* in = UPB_PRIVATE(_upb_Message_GetInternal)(msg);
|
202
|
+
if (!in) return false;
|
203
|
+
uintptr_t i = *iter;
|
204
|
+
uint32_t size = in->size;
|
205
|
+
while (i < size) {
|
206
|
+
upb_TaggedAuxPtr tagged_ptr = in->aux_data[size - 1 - i];
|
207
|
+
i++;
|
208
|
+
if (!upb_TaggedAuxPtr_IsExtension(tagged_ptr)) {
|
209
|
+
continue;
|
210
|
+
}
|
211
|
+
const upb_Extension* ext = upb_TaggedAuxPtr_Extension(tagged_ptr);
|
212
|
+
|
213
|
+
// Empty repeated fields or maps semantically don't exist.
|
214
|
+
if (UPB_PRIVATE(_upb_Extension_IsEmpty)(ext)) continue;
|
215
|
+
|
216
|
+
*out_e = ext->ext;
|
217
|
+
*out_v = ext->data;
|
218
|
+
*iter = i;
|
219
|
+
return true;
|
220
|
+
}
|
221
|
+
*iter = i;
|
222
|
+
return false;
|
223
|
+
}
|
94
224
|
|
95
225
|
#ifdef __cplusplus
|
96
226
|
} /* extern "C" */
|
@@ -8,14 +8,18 @@
|
|
8
8
|
#include "upb/message/internal/map_sorter.h"
|
9
9
|
|
10
10
|
#include <stdint.h>
|
11
|
+
#include <stdlib.h>
|
11
12
|
#include <string.h>
|
12
13
|
|
13
14
|
#include "upb/base/descriptor_constants.h"
|
14
15
|
#include "upb/base/internal/log2.h"
|
15
16
|
#include "upb/base/string_view.h"
|
17
|
+
#include "upb/hash/common.h"
|
16
18
|
#include "upb/mem/alloc.h"
|
19
|
+
#include "upb/message/internal/extension.h"
|
20
|
+
#include "upb/message/internal/map.h"
|
21
|
+
#include "upb/message/internal/message.h"
|
17
22
|
#include "upb/message/map.h"
|
18
|
-
#include "upb/message/message.h"
|
19
23
|
#include "upb/mini_table/extension.h"
|
20
24
|
|
21
25
|
// Must be last.
|
@@ -100,7 +104,7 @@ static bool _upb_mapsorter_resize(_upb_mapsorter* s, _upb_sortedmap* sorted,
|
|
100
104
|
|
101
105
|
if (sorted->end > s->cap) {
|
102
106
|
const int oldsize = s->cap * sizeof(*s->entries);
|
103
|
-
s->cap =
|
107
|
+
s->cap = upb_RoundUpToPowerOfTwo(sorted->end);
|
104
108
|
const int newsize = s->cap * sizeof(*s->entries);
|
105
109
|
s->entries = upb_grealloc(s->entries, oldsize, newsize);
|
106
110
|
if (!s->entries) return false;
|
@@ -144,14 +148,22 @@ static int _upb_mapsorter_cmpext(const void* _a, const void* _b) {
|
|
144
148
|
return a_num < b_num ? -1 : 1;
|
145
149
|
}
|
146
150
|
|
147
|
-
bool _upb_mapsorter_pushexts(_upb_mapsorter* s, const
|
148
|
-
|
151
|
+
bool _upb_mapsorter_pushexts(_upb_mapsorter* s, const upb_Message_Internal* in,
|
152
|
+
_upb_sortedmap* sorted) {
|
153
|
+
size_t count = 0;
|
154
|
+
for (size_t i = 0; i < in->size; i++) {
|
155
|
+
count += upb_TaggedAuxPtr_IsExtension(in->aux_data[i]);
|
156
|
+
}
|
149
157
|
if (!_upb_mapsorter_resize(s, sorted, count)) return false;
|
150
|
-
|
151
|
-
|
152
|
-
|
158
|
+
if (count == 0) return true;
|
159
|
+
const upb_Extension** entry =
|
160
|
+
(const upb_Extension**)&s->entries[sorted->start];
|
161
|
+
for (size_t i = 0; i < in->size; i++) {
|
162
|
+
upb_TaggedAuxPtr tagged_ptr = in->aux_data[i];
|
163
|
+
if (upb_TaggedAuxPtr_IsExtension(tagged_ptr)) {
|
164
|
+
*entry++ = upb_TaggedAuxPtr_Extension(tagged_ptr);
|
165
|
+
}
|
153
166
|
}
|
154
|
-
|
155
167
|
qsort(&s->entries[sorted->start], count, sizeof(*s->entries),
|
156
168
|
_upb_mapsorter_cmpext);
|
157
169
|
return true;
|