grpc 1.40.0 → 1.41.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +27 -36
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/endpoint_config.h +6 -11
- data/include/grpc/event_engine/event_engine.h +63 -58
- data/include/grpc/event_engine/port.h +1 -3
- data/include/grpc/event_engine/slice_allocator.h +6 -1
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +10 -4
- data/include/grpc/grpc_posix.h +5 -2
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -0
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +4 -5
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +26 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +2 -0
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +24 -52
- data/src/core/ext/filters/client_channel/client_channel.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +8 -7
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +2 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +2 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +15 -18
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +10 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +11 -44
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +14 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -3
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +36 -30
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -6
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -13
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +7 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +5 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +9 -13
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +29 -12
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +10 -6
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +60 -37
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +2 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +24 -30
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -1
- data/src/core/ext/transport/chttp2/transport/context_list.h +1 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +39 -23
- data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +36 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +272 -666
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +236 -70
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +776 -1037
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +48 -169
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +159 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +130 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +20 -30
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +7 -3
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +32 -28
- data/src/core/ext/transport/inproc/inproc_transport.cc +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +96 -96
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +221 -89
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -48
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +151 -61
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +99 -99
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +171 -69
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +126 -127
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +229 -101
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +82 -82
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +201 -81
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +24 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +62 -62
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +131 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +51 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +62 -62
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +141 -57
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +57 -22
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +174 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -37
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +61 -25
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +40 -40
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +41 -29
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +141 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +46 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +88 -29
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +18 -18
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +281 -277
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +569 -248
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +115 -116
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +191 -77
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +46 -32
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +118 -34
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +44 -42
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +108 -55
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +42 -42
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +61 -25
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +41 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +11 -5
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +58 -58
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +111 -45
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +68 -68
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +121 -49
- data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
- data/src/core/ext/upb-generated/google/api/http.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +153 -153
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +271 -109
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +91 -37
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +60 -60
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +101 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +91 -37
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +31 -13
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +13 -13
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +11 -5
- data/src/core/ext/upb-generated/validate/validate.upb.c +220 -220
- data/src/core/ext/upb-generated/validate/validate.upb.h +231 -93
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +11 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +384 -382
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +94 -63
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +30 -19
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +791 -780
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +96 -100
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +133 -115
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +178 -173
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +103 -103
- data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
- data/src/core/ext/xds/xds_api.cc +788 -910
- data/src/core/ext/xds/xds_api.h +16 -33
- data/src/core/ext/xds/xds_bootstrap.cc +27 -52
- data/src/core/ext/xds/xds_client.cc +69 -30
- data/src/core/ext/xds/xds_client_stats.cc +16 -15
- data/src/core/ext/xds/xds_client_stats.h +6 -6
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -3
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +1 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +10 -10
- data/src/core/lib/address_utils/parse_address.cc +4 -8
- data/src/core/lib/address_utils/sockaddr_utils.cc +2 -2
- data/src/core/lib/channel/channel_args.cc +2 -1
- data/src/core/lib/channel/channel_stack.cc +5 -3
- data/src/core/lib/channel/channel_stack_builder.cc +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +0 -8
- data/src/core/lib/channel/channel_trace.cc +4 -3
- data/src/core/lib/channel/channel_trace.h +1 -0
- data/src/core/lib/channel/channelz.cc +40 -36
- data/src/core/lib/channel/channelz.h +27 -27
- data/src/core/lib/channel/channelz_registry.cc +7 -6
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/handshaker.cc +2 -1
- data/src/core/lib/channel/handshaker.h +1 -2
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/status_util.h +2 -2
- data/src/core/lib/compression/algorithm_metadata.h +1 -0
- data/src/core/lib/compression/compression_args.cc +2 -1
- data/src/core/lib/compression/compression_internal.cc +2 -4
- data/src/core/lib/compression/message_compress.cc +2 -2
- data/src/core/lib/compression/stream_compression.cc +2 -1
- data/src/core/lib/compression/stream_compression.h +2 -1
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/config/core_configuration.cc +54 -0
- data/src/core/lib/config/core_configuration.h +108 -0
- data/src/core/lib/debug/stats.h +1 -0
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +2 -1
- data/src/core/lib/event_engine/endpoint_config.cc +0 -1
- data/src/core/lib/event_engine/event_engine.cc +3 -3
- data/src/core/lib/event_engine/sockaddr.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +3 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +7 -6
- data/src/core/lib/gpr/sync_posix.cc +3 -3
- data/src/core/lib/gpr/time.cc +3 -2
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +120 -41
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gprpp/arena.cc +2 -1
- data/src/core/lib/gprpp/arena.h +5 -5
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +166 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +7 -7
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +8 -5
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/memory.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +18 -18
- data/src/core/lib/gprpp/status_helper.cc +4 -4
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +1 -0
- data/src/core/lib/http/httpcli.cc +9 -9
- data/src/core/lib/http/httpcli.h +3 -0
- data/src/core/lib/http/httpcli_security_connector.cc +5 -8
- data/src/core/lib/http/parser.h +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +2 -1
- data/src/core/lib/iomgr/buffer_list.h +1 -2
- data/src/core/lib/iomgr/call_combiner.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/combiner.cc +3 -2
- data/src/core/lib/iomgr/combiner.h +1 -0
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +0 -4
- data/src/core/lib/iomgr/endpoint.h +1 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -20
- data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +15 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
- data/src/core/lib/iomgr/error.h +23 -9
- data/src/core/lib/iomgr/error_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error_internal.h +1 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +14 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -22
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -25
- data/src/core/lib/iomgr/ev_posix.cc +1 -2
- data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -22
- data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine/iomgr.cc +17 -18
- data/src/core/lib/iomgr/event_engine/iomgr.h +20 -2
- data/src/core/lib/iomgr/event_engine/resolver.cc +2 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +53 -24
- data/src/core/lib/iomgr/exec_ctx.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.h +11 -19
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +10 -9
- data/src/core/lib/iomgr/executor/mpmcqueue.h +4 -3
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
- data/src/core/lib/iomgr/executor/threadpool.h +2 -1
- data/src/core/lib/iomgr/executor.cc +5 -6
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
- data/src/core/lib/iomgr/iocp_windows.cc +1 -0
- data/src/core/lib/iomgr/iomgr.h +2 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +2 -2
- data/src/core/lib/iomgr/iomgr_custom.h +2 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/pollset_custom.cc +3 -4
- data/src/core/lib/iomgr/pollset_custom.h +2 -2
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/port.h +0 -5
- data/src/core/lib/iomgr/python_util.h +1 -0
- data/src/core/lib/iomgr/resolve_address.cc +2 -1
- data/src/core/lib/iomgr/resolve_address.h +0 -4
- data/src/core/lib/iomgr/resolve_address_custom.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +2 -4
- data/src/core/lib/iomgr/resolve_address_windows.cc +6 -8
- data/src/core/lib/iomgr/resource_quota.cc +127 -42
- data/src/core/lib/iomgr/resource_quota.h +66 -17
- data/src/core/lib/iomgr/sockaddr.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.h +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.cc +4 -2
- data/src/core/lib/iomgr/tcp_client.h +4 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -19
- data/src/core/lib/iomgr/tcp_client_custom.cc +9 -17
- data/src/core/lib/iomgr/tcp_client_posix.cc +24 -9
- data/src/core/lib/iomgr/tcp_client_posix.h +5 -2
- data/src/core/lib/iomgr/tcp_client_windows.cc +14 -6
- data/src/core/lib/iomgr/tcp_custom.cc +11 -23
- data/src/core/lib/iomgr/tcp_custom.h +2 -1
- data/src/core/lib/iomgr/tcp_posix.cc +29 -59
- data/src/core/lib/iomgr/tcp_posix.h +11 -12
- data/src/core/lib/iomgr/tcp_server.cc +6 -4
- data/src/core/lib/iomgr/tcp_server.h +12 -9
- data/src/core/lib/iomgr/tcp_server_custom.cc +15 -33
- data/src/core/lib/iomgr/tcp_server_posix.cc +20 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -9
- data/src/core/lib/iomgr/tcp_windows.cc +6 -25
- data/src/core/lib/iomgr/tcp_windows.h +2 -1
- data/src/core/lib/iomgr/timer.cc +1 -0
- data/src/core/lib/iomgr/timer.h +1 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +8 -38
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +1 -2
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -5
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
- data/src/core/lib/iomgr/work_serializer.cc +4 -4
- data/src/core/lib/iomgr/work_serializer.h +1 -1
- data/src/core/lib/json/json_reader.cc +9 -17
- data/src/core/lib/json/json_util.h +18 -26
- data/src/core/lib/matchers/matchers.h +0 -1
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -4
- data/src/core/lib/security/authorization/evaluate_args.cc +2 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +159 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
- data/src/core/lib/security/context/security_context.cc +7 -6
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -3
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +13 -26
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +13 -22
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -4
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +55 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +31 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -7
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +2 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -6
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +9 -14
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +4 -6
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -14
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +5 -4
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/util/json_util.cc +6 -8
- data/src/core/lib/slice/percent_encoding.cc +73 -30
- data/src/core/lib/slice/percent_encoding.h +29 -28
- data/src/core/lib/slice/slice.cc +2 -3
- data/src/core/lib/slice/slice_buffer.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +9 -8
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +22 -9
- data/src/core/lib/surface/channel.h +14 -2
- data/src/core/lib/surface/channel_ping.cc +1 -2
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +54 -64
- data/src/core/lib/surface/completion_queue_factory.cc +2 -1
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +4 -9
- data/src/core/lib/surface/init.h +0 -1
- data/src/core/lib/surface/init_secure.cc +23 -4
- data/src/core/lib/surface/lame_client.cc +6 -5
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +17 -33
- data/src/core/lib/surface/server.h +11 -13
- data/src/core/lib/surface/validate_metadata.cc +44 -16
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +1 -0
- data/src/core/lib/transport/connectivity_state.cc +8 -5
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +1 -0
- data/src/core/lib/transport/metadata.cc +10 -10
- data/src/core/lib/transport/metadata.h +13 -11
- data/src/core/lib/transport/metadata_batch.h +8 -0
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +14 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -2
- data/src/core/tsi/alts/crypt/gsec.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +11 -9
- data/src/core/tsi/ssl_transport_security.h +3 -1
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +10 -8
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_server.c +6 -5
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/err_data.c +294 -292
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +20 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +23 -2
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +45 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +160 -74
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +25 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +58 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +184 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +44 -2
- data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +24 -11
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -68
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +17 -9
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +25 -6
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +0 -49
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -6
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +9 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +2 -2
- data/third_party/upb/upb/decode.c +129 -60
- data/third_party/upb/upb/decode.h +32 -4
- data/third_party/upb/upb/decode_fast.c +513 -500
- data/third_party/upb/upb/decode_fast.h +27 -0
- data/third_party/upb/upb/{decode.int.h → decode_internal.h} +38 -8
- data/third_party/upb/upb/def.c +171 -181
- data/third_party/upb/upb/def.h +41 -19
- data/third_party/upb/upb/def.hpp +29 -0
- data/third_party/upb/upb/encode.c +49 -16
- data/third_party/upb/upb/encode.h +29 -2
- data/third_party/upb/upb/msg.c +169 -28
- data/third_party/upb/upb/msg.h +75 -580
- data/third_party/upb/upb/msg_internal.h +687 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -1
- data/third_party/upb/upb/reflection.c +29 -37
- data/third_party/upb/upb/reflection.h +36 -8
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +211 -86
- data/third_party/upb/upb/{table.int.h → table_internal.h} +56 -180
- data/third_party/upb/upb/text_encode.c +32 -4
- data/third_party/upb/upb/text_encode.h +26 -0
- data/third_party/upb/upb/upb.c +59 -8
- data/third_party/upb/upb/upb.h +36 -6
- data/third_party/upb/upb/upb.hpp +24 -0
- data/third_party/upb/upb/upb_internal.h +58 -0
- metadata +58 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.cc +0 -30
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/pollset_uv.cc +0 -95
- data/src/core/lib/iomgr/pollset_uv.h +0 -36
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/tcp_uv.cc +0 -421
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/upb.int.h +0 -29
data/third_party/upb/upb/def.c
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2009-2021, Google LLC
|
3
|
+
* All rights reserved.
|
4
|
+
*
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
6
|
+
* modification, are permitted provided that the following conditions are met:
|
7
|
+
* * Redistributions of source code must retain the above copyright
|
8
|
+
* notice, this list of conditions and the following disclaimer.
|
9
|
+
* * Redistributions in binary form must reproduce the above copyright
|
10
|
+
* notice, this list of conditions and the following disclaimer in the
|
11
|
+
* documentation and/or other materials provided with the distribution.
|
12
|
+
* * Neither the name of Google LLC nor the
|
13
|
+
* names of its contributors may be used to endorse or promote products
|
14
|
+
* derived from this software without specific prior written permission.
|
15
|
+
*
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
* DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY
|
20
|
+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
21
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
22
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
23
|
+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
24
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
25
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
*/
|
1
27
|
|
2
28
|
#include "upb/def.h"
|
3
29
|
|
@@ -8,6 +34,9 @@
|
|
8
34
|
#include <string.h>
|
9
35
|
|
10
36
|
#include "google/protobuf/descriptor.upb.h"
|
37
|
+
#include "upb/reflection.h"
|
38
|
+
|
39
|
+
/* Must be last. */
|
11
40
|
#include "upb/port_def.inc"
|
12
41
|
|
13
42
|
typedef struct {
|
@@ -37,7 +66,6 @@ struct upb_fielddef {
|
|
37
66
|
uint32_t number_;
|
38
67
|
uint16_t index_;
|
39
68
|
uint16_t layout_index;
|
40
|
-
uint32_t selector_base; /* Used to index into a upb::Handlers table. */
|
41
69
|
bool is_extension_;
|
42
70
|
bool lazy_;
|
43
71
|
bool packed_;
|
@@ -50,8 +78,6 @@ struct upb_msgdef {
|
|
50
78
|
const upb_msglayout *layout;
|
51
79
|
const upb_filedef *file;
|
52
80
|
const char *full_name;
|
53
|
-
uint32_t selector_count;
|
54
|
-
uint32_t submsg_field_count;
|
55
81
|
|
56
82
|
/* Tables for looking up fields by number and name. */
|
57
83
|
upb_inttable itof;
|
@@ -181,30 +207,6 @@ int cmp_fields(const void *p1, const void *p2) {
|
|
181
207
|
return field_rank(f1) - field_rank(f2);
|
182
208
|
}
|
183
209
|
|
184
|
-
/* A few implementation details of handlers. We put these here to avoid
|
185
|
-
* a def -> handlers dependency. */
|
186
|
-
|
187
|
-
#define UPB_STATIC_SELECTOR_COUNT 3 /* Warning: also in upb/handlers.h. */
|
188
|
-
|
189
|
-
static uint32_t upb_handlers_selectorbaseoffset(const upb_fielddef *f) {
|
190
|
-
return upb_fielddef_isseq(f) ? 2 : 0;
|
191
|
-
}
|
192
|
-
|
193
|
-
static uint32_t upb_handlers_selectorcount(const upb_fielddef *f) {
|
194
|
-
uint32_t ret = 1;
|
195
|
-
if (upb_fielddef_isseq(f)) ret += 2; /* STARTSEQ/ENDSEQ */
|
196
|
-
if (upb_fielddef_isstring(f)) ret += 2; /* [STRING]/STARTSTR/ENDSTR */
|
197
|
-
if (upb_fielddef_issubmsg(f)) {
|
198
|
-
/* ENDSUBMSG (STARTSUBMSG is at table beginning) */
|
199
|
-
ret += 0;
|
200
|
-
if (upb_fielddef_lazy(f)) {
|
201
|
-
/* STARTSTR/ENDSTR/STRING (for lazy) */
|
202
|
-
ret += 3;
|
203
|
-
}
|
204
|
-
}
|
205
|
-
return ret;
|
206
|
-
}
|
207
|
-
|
208
210
|
static void upb_status_setoom(upb_status *status) {
|
209
211
|
upb_status_seterrmsg(status, "out of memory");
|
210
212
|
}
|
@@ -296,8 +298,7 @@ bool upb_enumdef_ntoi(const upb_enumdef *def, const char *name,
|
|
296
298
|
|
297
299
|
const char *upb_enumdef_iton(const upb_enumdef *def, int32_t num) {
|
298
300
|
upb_value v;
|
299
|
-
return
|
300
|
-
upb_value_getcstr(v) : NULL;
|
301
|
+
return upb_inttable_lookup(&def->iton, num, &v) ? upb_value_getcstr(v) : NULL;
|
301
302
|
}
|
302
303
|
|
303
304
|
const char *upb_enum_iter_name(upb_enum_iter *iter) {
|
@@ -386,10 +387,6 @@ const char *upb_fielddef_jsonname(const upb_fielddef *f) {
|
|
386
387
|
return f->json_name;
|
387
388
|
}
|
388
389
|
|
389
|
-
uint32_t upb_fielddef_selectorbase(const upb_fielddef *f) {
|
390
|
-
return f->selector_base;
|
391
|
-
}
|
392
|
-
|
393
390
|
const upb_filedef *upb_fielddef_file(const upb_fielddef *f) {
|
394
391
|
return f->file;
|
395
392
|
}
|
@@ -407,6 +404,23 @@ const upb_oneofdef *upb_fielddef_realcontainingoneof(const upb_fielddef *f) {
|
|
407
404
|
return f->oneof;
|
408
405
|
}
|
409
406
|
|
407
|
+
upb_msgval upb_fielddef_default(const upb_fielddef *f) {
|
408
|
+
UPB_ASSERT(!upb_fielddef_issubmsg(f));
|
409
|
+
upb_msgval ret;
|
410
|
+
if (upb_fielddef_isstring(f)) {
|
411
|
+
str_t *str = f->defaultval.str;
|
412
|
+
if (str) {
|
413
|
+
ret.str_val.data = str->str;
|
414
|
+
ret.str_val.size = str->len;
|
415
|
+
} else {
|
416
|
+
ret.str_val.size = 0;
|
417
|
+
}
|
418
|
+
} else {
|
419
|
+
memcpy(&ret, &f->defaultval, 8);
|
420
|
+
}
|
421
|
+
return ret;
|
422
|
+
}
|
423
|
+
|
410
424
|
static void chkdefaulttype(const upb_fielddef *f, int ctype) {
|
411
425
|
UPB_UNUSED(f);
|
412
426
|
UPB_UNUSED(ctype);
|
@@ -535,18 +549,10 @@ upb_syntax_t upb_msgdef_syntax(const upb_msgdef *m) {
|
|
535
549
|
return m->file->syntax;
|
536
550
|
}
|
537
551
|
|
538
|
-
size_t upb_msgdef_selectorcount(const upb_msgdef *m) {
|
539
|
-
return m->selector_count;
|
540
|
-
}
|
541
|
-
|
542
|
-
uint32_t upb_msgdef_submsgfieldcount(const upb_msgdef *m) {
|
543
|
-
return m->submsg_field_count;
|
544
|
-
}
|
545
|
-
|
546
552
|
const upb_fielddef *upb_msgdef_itof(const upb_msgdef *m, uint32_t i) {
|
547
553
|
upb_value val;
|
548
|
-
return
|
549
|
-
|
554
|
+
return upb_inttable_lookup(&m->itof, i, &val) ? upb_value_getconstptr(val)
|
555
|
+
: NULL;
|
550
556
|
}
|
551
557
|
|
552
558
|
const upb_fielddef *upb_msgdef_ntof(const upb_msgdef *m, const char *name,
|
@@ -754,8 +760,8 @@ const upb_fielddef *upb_oneofdef_ntof(const upb_oneofdef *o,
|
|
754
760
|
|
755
761
|
const upb_fielddef *upb_oneofdef_itof(const upb_oneofdef *o, uint32_t num) {
|
756
762
|
upb_value val;
|
757
|
-
return
|
758
|
-
|
763
|
+
return upb_inttable_lookup(&o->itof, num, &val) ? upb_value_getptr(val)
|
764
|
+
: NULL;
|
759
765
|
}
|
760
766
|
|
761
767
|
void upb_oneof_begin(upb_oneof_iter *iter, const upb_oneofdef *o) {
|
@@ -835,7 +841,6 @@ void upb_symtab_free(upb_symtab *s) {
|
|
835
841
|
|
836
842
|
upb_symtab *upb_symtab_new(void) {
|
837
843
|
upb_symtab *s = upb_gmalloc(sizeof(*s));
|
838
|
-
upb_alloc *alloc;
|
839
844
|
|
840
845
|
if (!s) {
|
841
846
|
return NULL;
|
@@ -843,10 +848,9 @@ upb_symtab *upb_symtab_new(void) {
|
|
843
848
|
|
844
849
|
s->arena = upb_arena_new();
|
845
850
|
s->bytes_loaded = 0;
|
846
|
-
alloc = upb_arena_alloc(s->arena);
|
847
851
|
|
848
|
-
if (!
|
849
|
-
!
|
852
|
+
if (!upb_strtable_init(&s->syms, 32, s->arena) ||
|
853
|
+
!upb_strtable_init(&s->files, 4, s->arena)) {
|
850
854
|
upb_arena_free(s->arena);
|
851
855
|
upb_gfree(s);
|
852
856
|
s = NULL;
|
@@ -902,14 +906,13 @@ int upb_symtab_filecount(const upb_symtab *s) {
|
|
902
906
|
typedef struct {
|
903
907
|
upb_symtab *symtab;
|
904
908
|
upb_filedef *file; /* File we are building. */
|
905
|
-
upb_arena *
|
906
|
-
upb_alloc *alloc; /* Alloc of file_arena, for tables. */
|
909
|
+
upb_arena *arena; /* Allocate defs here. */
|
907
910
|
const upb_msglayout **layouts; /* NULL if we should build layouts. */
|
908
911
|
upb_status *status; /* Record errors here. */
|
909
912
|
jmp_buf err; /* longjmp() on error. */
|
910
913
|
} symtab_addctx;
|
911
914
|
|
912
|
-
UPB_NORETURN UPB_NOINLINE
|
915
|
+
UPB_NORETURN UPB_NOINLINE UPB_PRINTF(2, 3)
|
913
916
|
static void symtab_errf(symtab_addctx *ctx, const char *fmt, ...) {
|
914
917
|
va_list argp;
|
915
918
|
va_start(argp, fmt);
|
@@ -925,7 +928,7 @@ static void symtab_oomerr(symtab_addctx *ctx) {
|
|
925
928
|
}
|
926
929
|
|
927
930
|
void *symtab_alloc(symtab_addctx *ctx, size_t bytes) {
|
928
|
-
void *ret = upb_arena_malloc(ctx->
|
931
|
+
void *ret = upb_arena_malloc(ctx->arena, bytes);
|
929
932
|
if (!ret) symtab_oomerr(ctx);
|
930
933
|
return ret;
|
931
934
|
}
|
@@ -1015,13 +1018,44 @@ static int field_number_cmp(const void *p1, const void *p2) {
|
|
1015
1018
|
return f1->number - f2->number;
|
1016
1019
|
}
|
1017
1020
|
|
1018
|
-
static void assign_layout_indices(const upb_msgdef *m,
|
1021
|
+
static void assign_layout_indices(const upb_msgdef *m, upb_msglayout *l,
|
1022
|
+
upb_msglayout_field *fields) {
|
1019
1023
|
int i;
|
1020
1024
|
int n = upb_msgdef_numfields(m);
|
1025
|
+
int dense_below = 0;
|
1021
1026
|
for (i = 0; i < n; i++) {
|
1022
1027
|
upb_fielddef *f = (upb_fielddef*)upb_msgdef_itof(m, fields[i].number);
|
1023
1028
|
UPB_ASSERT(f);
|
1024
1029
|
f->layout_index = i;
|
1030
|
+
if (i < UINT8_MAX && fields[i].number == i + 1 &&
|
1031
|
+
(i == 0 || fields[i-1].number == i)) {
|
1032
|
+
dense_below = i + 1;
|
1033
|
+
}
|
1034
|
+
}
|
1035
|
+
l->dense_below = dense_below;
|
1036
|
+
}
|
1037
|
+
|
1038
|
+
static void fill_fieldlayout(upb_msglayout_field *field, const upb_fielddef *f) {
|
1039
|
+
field->number = upb_fielddef_number(f);
|
1040
|
+
field->descriptortype = upb_fielddef_descriptortype(f);
|
1041
|
+
|
1042
|
+
if (field->descriptortype == UPB_DTYPE_STRING &&
|
1043
|
+
f->file->syntax == UPB_SYNTAX_PROTO2) {
|
1044
|
+
/* See TableDescriptorType() in upbc/generator.cc for details and
|
1045
|
+
* rationale. */
|
1046
|
+
field->descriptortype = UPB_DTYPE_BYTES;
|
1047
|
+
}
|
1048
|
+
|
1049
|
+
if (upb_fielddef_ismap(f)) {
|
1050
|
+
field->mode = _UPB_MODE_MAP;
|
1051
|
+
} else if (upb_fielddef_isseq(f)) {
|
1052
|
+
field->mode = _UPB_MODE_ARRAY;
|
1053
|
+
} else {
|
1054
|
+
field->mode = _UPB_MODE_SCALAR;
|
1055
|
+
}
|
1056
|
+
|
1057
|
+
if (upb_fielddef_packed(f)) {
|
1058
|
+
field->mode |= _UPB_MODE_IS_PACKED;
|
1025
1059
|
}
|
1026
1060
|
}
|
1027
1061
|
|
@@ -1032,13 +1066,21 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1032
1066
|
upb_msg_field_iter it;
|
1033
1067
|
upb_msg_oneof_iter oit;
|
1034
1068
|
size_t hasbit;
|
1035
|
-
size_t
|
1069
|
+
size_t field_count = upb_msgdef_numfields(m);
|
1070
|
+
size_t submsg_count = 0;
|
1036
1071
|
const upb_msglayout **submsgs;
|
1037
1072
|
upb_msglayout_field *fields;
|
1038
1073
|
|
1039
1074
|
memset(l, 0, sizeof(*l) + sizeof(_upb_fasttable_entry));
|
1040
1075
|
|
1041
|
-
|
1076
|
+
/* Count sub-messages. */
|
1077
|
+
for (size_t i = 0; i < field_count; i++) {
|
1078
|
+
if (upb_fielddef_issubmsg(&m->fields[i])) {
|
1079
|
+
submsg_count++;
|
1080
|
+
}
|
1081
|
+
}
|
1082
|
+
|
1083
|
+
fields = symtab_alloc(ctx, field_count * sizeof(*fields));
|
1042
1084
|
submsgs = symtab_alloc(ctx, submsg_count * sizeof(*submsgs));
|
1043
1085
|
|
1044
1086
|
l->field_count = upb_msgdef_numfields(m);
|
@@ -1058,8 +1100,8 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1058
1100
|
const upb_fielddef *val = upb_msgdef_itof(m, 2);
|
1059
1101
|
fields[0].number = 1;
|
1060
1102
|
fields[1].number = 2;
|
1061
|
-
fields[0].
|
1062
|
-
fields[1].
|
1103
|
+
fields[0].mode = _UPB_MODE_SCALAR;
|
1104
|
+
fields[1].mode = _UPB_MODE_SCALAR;
|
1063
1105
|
fields[0].presence = 0;
|
1064
1106
|
fields[1].presence = 0;
|
1065
1107
|
fields[0].descriptortype = upb_fielddef_descriptortype(key);
|
@@ -1095,22 +1137,7 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1095
1137
|
upb_fielddef* f = upb_msg_iter_field(&it);
|
1096
1138
|
upb_msglayout_field *field = &fields[upb_fielddef_index(f)];
|
1097
1139
|
|
1098
|
-
field
|
1099
|
-
field->descriptortype = upb_fielddef_descriptortype(f);
|
1100
|
-
field->label = upb_fielddef_label(f);
|
1101
|
-
|
1102
|
-
if (field->descriptortype == UPB_DTYPE_STRING &&
|
1103
|
-
f->file->syntax == UPB_SYNTAX_PROTO2) {
|
1104
|
-
/* See TableDescriptorType() in upbc/generator.cc for details and
|
1105
|
-
* rationale. */
|
1106
|
-
field->descriptortype = UPB_DTYPE_BYTES;
|
1107
|
-
}
|
1108
|
-
|
1109
|
-
if (upb_fielddef_ismap(f)) {
|
1110
|
-
field->label = _UPB_LABEL_MAP;
|
1111
|
-
} else if (upb_fielddef_packed(f)) {
|
1112
|
-
field->label = _UPB_LABEL_PACKED;
|
1113
|
-
}
|
1140
|
+
fill_fieldlayout(field, f);
|
1114
1141
|
|
1115
1142
|
if (upb_fielddef_issubmsg(f)) {
|
1116
1143
|
const upb_msgdef *subm = upb_fielddef_msgsubdef(f);
|
@@ -1186,54 +1213,11 @@ static void make_layout(symtab_addctx *ctx, const upb_msgdef *m) {
|
|
1186
1213
|
|
1187
1214
|
/* Sort fields by number. */
|
1188
1215
|
qsort(fields, upb_msgdef_numfields(m), sizeof(*fields), field_number_cmp);
|
1189
|
-
assign_layout_indices(m, fields);
|
1190
|
-
}
|
1191
|
-
|
1192
|
-
static void assign_msg_indices(symtab_addctx *ctx, upb_msgdef *m) {
|
1193
|
-
/* Sort fields. upb internally relies on UPB_TYPE_MESSAGE fields having the
|
1194
|
-
* lowest indexes, but we do not publicly guarantee this. */
|
1195
|
-
upb_msg_field_iter j;
|
1196
|
-
int i;
|
1197
|
-
uint32_t selector;
|
1198
|
-
int n = upb_msgdef_numfields(m);
|
1199
|
-
upb_fielddef **fields;
|
1200
|
-
|
1201
|
-
if (n == 0) {
|
1202
|
-
m->selector_count = UPB_STATIC_SELECTOR_COUNT;
|
1203
|
-
m->submsg_field_count = 0;
|
1204
|
-
return;
|
1205
|
-
}
|
1206
|
-
|
1207
|
-
fields = upb_gmalloc(n * sizeof(*fields));
|
1208
|
-
|
1209
|
-
m->submsg_field_count = 0;
|
1210
|
-
for(i = 0, upb_msg_field_begin(&j, m);
|
1211
|
-
!upb_msg_field_done(&j);
|
1212
|
-
upb_msg_field_next(&j), i++) {
|
1213
|
-
upb_fielddef *f = upb_msg_iter_field(&j);
|
1214
|
-
UPB_ASSERT(f->msgdef == m);
|
1215
|
-
if (upb_fielddef_issubmsg(f)) {
|
1216
|
-
m->submsg_field_count++;
|
1217
|
-
}
|
1218
|
-
fields[i] = f;
|
1219
|
-
}
|
1220
|
-
|
1221
|
-
qsort(fields, n, sizeof(*fields), cmp_fields);
|
1222
|
-
|
1223
|
-
selector = UPB_STATIC_SELECTOR_COUNT + m->submsg_field_count;
|
1224
|
-
for (i = 0; i < n; i++) {
|
1225
|
-
upb_fielddef *f = fields[i];
|
1226
|
-
f->index_ = i;
|
1227
|
-
f->selector_base = selector + upb_handlers_selectorbaseoffset(f);
|
1228
|
-
selector += upb_handlers_selectorcount(f);
|
1229
|
-
}
|
1230
|
-
m->selector_count = selector;
|
1231
|
-
|
1232
|
-
upb_gfree(fields);
|
1216
|
+
assign_layout_indices(m, l, fields);
|
1233
1217
|
}
|
1234
1218
|
|
1235
1219
|
static char *strviewdup(symtab_addctx *ctx, upb_strview view) {
|
1236
|
-
return upb_strdup2(view.data, view.size, ctx->
|
1220
|
+
return upb_strdup2(view.data, view.size, ctx->arena);
|
1237
1221
|
}
|
1238
1222
|
|
1239
1223
|
static bool streql2(const char *a, size_t n, const char *b) {
|
@@ -1344,9 +1328,9 @@ static void symtab_add(symtab_addctx *ctx, const char *name, upb_value v) {
|
|
1344
1328
|
if (upb_strtable_lookup(&ctx->symtab->syms, name, NULL)) {
|
1345
1329
|
symtab_errf(ctx, "duplicate symbol '%s'", name);
|
1346
1330
|
}
|
1347
|
-
upb_alloc *alloc = upb_arena_alloc(ctx->symtab->arena);
|
1348
1331
|
size_t len = strlen(name);
|
1349
|
-
CHK_OOM(
|
1332
|
+
CHK_OOM(upb_strtable_insert(&ctx->symtab->syms, name, len, v,
|
1333
|
+
ctx->symtab->arena));
|
1350
1334
|
}
|
1351
1335
|
|
1352
1336
|
/* Given a symbol and the base symbol inside which it is defined, find the
|
@@ -1379,7 +1363,8 @@ static const void *symtab_resolve(symtab_addctx *ctx, const upb_fielddef *f,
|
|
1379
1363
|
}
|
1380
1364
|
|
1381
1365
|
notfound:
|
1382
|
-
symtab_errf(ctx, "couldn't resolve name '
|
1366
|
+
symtab_errf(ctx, "couldn't resolve name '" UPB_STRVIEW_FORMAT "'",
|
1367
|
+
UPB_STRVIEW_ARGS(sym));
|
1383
1368
|
}
|
1384
1369
|
|
1385
1370
|
static void create_oneofdef(
|
@@ -1397,10 +1382,10 @@ static void create_oneofdef(
|
|
1397
1382
|
|
1398
1383
|
v = pack_def(o, UPB_DEFTYPE_ONEOF);
|
1399
1384
|
symtab_add(ctx, o->full_name, v);
|
1400
|
-
CHK_OOM(
|
1385
|
+
CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, v, ctx->arena));
|
1401
1386
|
|
1402
|
-
CHK_OOM(
|
1403
|
-
CHK_OOM(
|
1387
|
+
CHK_OOM(upb_inttable_init(&o->itof, ctx->arena));
|
1388
|
+
CHK_OOM(upb_strtable_init(&o->ntof, 4, ctx->arena));
|
1404
1389
|
}
|
1405
1390
|
|
1406
1391
|
static str_t *newstr(symtab_addctx *ctx, const char *data, size_t len) {
|
@@ -1456,8 +1441,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1456
1441
|
break;
|
1457
1442
|
}
|
1458
1443
|
case UPB_TYPE_INT64: {
|
1459
|
-
|
1460
|
-
int64_t val = strtol(str, &end, 0);
|
1444
|
+
long long val = strtoll(str, &end, 0);
|
1461
1445
|
if (val > INT64_MAX || val < INT64_MIN || errno == ERANGE || *end) {
|
1462
1446
|
goto invalid;
|
1463
1447
|
}
|
@@ -1473,8 +1457,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1473
1457
|
break;
|
1474
1458
|
}
|
1475
1459
|
case UPB_TYPE_UINT64: {
|
1476
|
-
|
1477
|
-
uint64_t val = strtoul(str, &end, 0);
|
1460
|
+
unsigned long long val = strtoull(str, &end, 0);
|
1478
1461
|
if (val > UINT64_MAX || errno == ERANGE || *end) {
|
1479
1462
|
goto invalid;
|
1480
1463
|
}
|
@@ -1490,8 +1473,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1490
1473
|
break;
|
1491
1474
|
}
|
1492
1475
|
case UPB_TYPE_FLOAT: {
|
1493
|
-
|
1494
|
-
float val = strtod(str, &end);
|
1476
|
+
float val = strtof(str, &end);
|
1495
1477
|
if (errno == ERANGE || *end) {
|
1496
1478
|
goto invalid;
|
1497
1479
|
}
|
@@ -1523,7 +1505,7 @@ static void parse_default(symtab_addctx *ctx, const char *str, size_t len,
|
|
1523
1505
|
return;
|
1524
1506
|
|
1525
1507
|
invalid:
|
1526
|
-
symtab_errf(ctx, "Invalid default '%.*s' for field %
|
1508
|
+
symtab_errf(ctx, "Invalid default '%.*s' for field %s", (int)len, str,
|
1527
1509
|
upb_fielddef_fullname(f));
|
1528
1510
|
}
|
1529
1511
|
|
@@ -1557,7 +1539,6 @@ static void set_default_default(symtab_addctx *ctx, upb_fielddef *f) {
|
|
1557
1539
|
static void create_fielddef(
|
1558
1540
|
symtab_addctx *ctx, const char *prefix, upb_msgdef *m,
|
1559
1541
|
const google_protobuf_FieldDescriptorProto *field_proto) {
|
1560
|
-
upb_alloc *alloc = ctx->alloc;
|
1561
1542
|
upb_fielddef *f;
|
1562
1543
|
const google_protobuf_FieldOptions *options;
|
1563
1544
|
upb_strview name;
|
@@ -1593,7 +1574,8 @@ static void create_fielddef(
|
|
1593
1574
|
upb_value v, field_v, json_v;
|
1594
1575
|
size_t json_size;
|
1595
1576
|
|
1596
|
-
f = (upb_fielddef*)&m->fields[m->field_count
|
1577
|
+
f = (upb_fielddef*)&m->fields[m->field_count];
|
1578
|
+
f->index_ = m->field_count++;
|
1597
1579
|
f->msgdef = m;
|
1598
1580
|
f->is_extension_ = false;
|
1599
1581
|
|
@@ -1614,12 +1596,12 @@ static void create_fielddef(
|
|
1614
1596
|
v = upb_value_constptr(f);
|
1615
1597
|
json_size = strlen(json_name);
|
1616
1598
|
|
1617
|
-
CHK_OOM(
|
1618
|
-
|
1619
|
-
CHK_OOM(
|
1599
|
+
CHK_OOM(upb_strtable_insert(&m->ntof, name.data, name.size, field_v,
|
1600
|
+
ctx->arena));
|
1601
|
+
CHK_OOM(upb_inttable_insert(&m->itof, field_number, v, ctx->arena));
|
1620
1602
|
|
1621
1603
|
if (strcmp(shortname, json_name) != 0) {
|
1622
|
-
|
1604
|
+
upb_strtable_insert(&m->ntof, json_name, json_size, json_v, ctx->arena);
|
1623
1605
|
}
|
1624
1606
|
|
1625
1607
|
if (ctx->layouts) {
|
@@ -1682,15 +1664,16 @@ static void create_fielddef(
|
|
1682
1664
|
symtab_errf(ctx, "oneof_index out of range (%s)", f->full_name);
|
1683
1665
|
}
|
1684
1666
|
|
1685
|
-
oneof = (upb_oneofdef*)&m->oneofs[oneof_index];
|
1667
|
+
oneof = (upb_oneofdef *)&m->oneofs[oneof_index];
|
1686
1668
|
f->oneof = oneof;
|
1687
1669
|
|
1688
1670
|
oneof->field_count++;
|
1689
1671
|
if (f->proto3_optional_) {
|
1690
1672
|
oneof->synthetic = true;
|
1691
1673
|
}
|
1692
|
-
CHK_OOM(
|
1693
|
-
CHK_OOM(
|
1674
|
+
CHK_OOM(upb_inttable_insert(&oneof->itof, f->number_, v, ctx->arena));
|
1675
|
+
CHK_OOM(
|
1676
|
+
upb_strtable_insert(&oneof->ntof, name.data, name.size, v, ctx->arena));
|
1694
1677
|
} else {
|
1695
1678
|
f->oneof = NULL;
|
1696
1679
|
if (f->proto3_optional_) {
|
@@ -1733,8 +1716,8 @@ static void create_enumdef(
|
|
1733
1716
|
symtab_add(ctx, e->full_name, pack_def(e, UPB_DEFTYPE_ENUM));
|
1734
1717
|
|
1735
1718
|
values = google_protobuf_EnumDescriptorProto_value(enum_proto, &n);
|
1736
|
-
CHK_OOM(
|
1737
|
-
CHK_OOM(
|
1719
|
+
CHK_OOM(upb_strtable_init(&e->ntoi, n, ctx->arena));
|
1720
|
+
CHK_OOM(upb_inttable_init(&e->iton, ctx->arena));
|
1738
1721
|
|
1739
1722
|
e->file = ctx->file;
|
1740
1723
|
e->defaultval = 0;
|
@@ -1761,16 +1744,15 @@ static void create_enumdef(
|
|
1761
1744
|
}
|
1762
1745
|
|
1763
1746
|
CHK_OOM(name2)
|
1764
|
-
CHK_OOM(
|
1765
|
-
upb_strtable_insert3(&e->ntoi, name2, strlen(name2), v, ctx->alloc));
|
1747
|
+
CHK_OOM(upb_strtable_insert(&e->ntoi, name2, strlen(name2), v, ctx->arena));
|
1766
1748
|
|
1767
1749
|
if (!upb_inttable_lookup(&e->iton, num, NULL)) {
|
1768
1750
|
upb_value v = upb_value_cstr(name2);
|
1769
|
-
CHK_OOM(
|
1751
|
+
CHK_OOM(upb_inttable_insert(&e->iton, num, v, ctx->arena));
|
1770
1752
|
}
|
1771
1753
|
}
|
1772
1754
|
|
1773
|
-
|
1755
|
+
upb_inttable_compact(&e->iton, ctx->arena);
|
1774
1756
|
}
|
1775
1757
|
|
1776
1758
|
static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
@@ -1794,9 +1776,8 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
|
1794
1776
|
oneofs = google_protobuf_DescriptorProto_oneof_decl(msg_proto, &n_oneof);
|
1795
1777
|
fields = google_protobuf_DescriptorProto_field(msg_proto, &n_field);
|
1796
1778
|
|
1797
|
-
CHK_OOM(
|
1798
|
-
CHK_OOM(
|
1799
|
-
ctx->alloc));
|
1779
|
+
CHK_OOM(upb_inttable_init(&m->itof, ctx->arena));
|
1780
|
+
CHK_OOM(upb_strtable_init(&m->ntof, n_oneof + n_field, ctx->arena));
|
1800
1781
|
|
1801
1782
|
m->file = ctx->file;
|
1802
1783
|
m->map_entry = false;
|
@@ -1828,10 +1809,9 @@ static void create_msgdef(symtab_addctx *ctx, const char *prefix,
|
|
1828
1809
|
create_fielddef(ctx, m->full_name, m, fields[i]);
|
1829
1810
|
}
|
1830
1811
|
|
1831
|
-
assign_msg_indices(ctx, m);
|
1832
1812
|
finalize_oneofs(ctx, m);
|
1833
1813
|
assign_msg_wellknowntype(m);
|
1834
|
-
|
1814
|
+
upb_inttable_compact(&m->itof, ctx->arena);
|
1835
1815
|
|
1836
1816
|
/* This message is built. Now build nested messages and enums. */
|
1837
1817
|
|
@@ -1943,13 +1923,18 @@ static void build_filedef(
|
|
1943
1923
|
const upb_strview* strs;
|
1944
1924
|
size_t i, n;
|
1945
1925
|
|
1946
|
-
|
1926
|
+
file->symtab = ctx->symtab;
|
1947
1927
|
|
1928
|
+
/* One pass to count and allocate. */
|
1929
|
+
file->msg_count = 0;
|
1930
|
+
file->enum_count = 0;
|
1931
|
+
file->ext_count = 0;
|
1932
|
+
count_types_in_file(file_proto, file);
|
1948
1933
|
file->msgs = symtab_alloc(ctx, sizeof(*file->msgs) * file->msg_count);
|
1949
1934
|
file->enums = symtab_alloc(ctx, sizeof(*file->enums) * file->enum_count);
|
1950
1935
|
file->exts = symtab_alloc(ctx, sizeof(*file->exts) * file->ext_count);
|
1951
1936
|
|
1952
|
-
/*
|
1937
|
+
/* In the second pass we increment these as defs are added. */
|
1953
1938
|
file->msg_count = 0;
|
1954
1939
|
file->enum_count = 0;
|
1955
1940
|
file->ext_count = 0;
|
@@ -2060,61 +2045,61 @@ static void build_filedef(
|
|
2060
2045
|
}
|
2061
2046
|
|
2062
2047
|
static void remove_filedef(upb_symtab *s, upb_filedef *file) {
|
2063
|
-
upb_alloc *alloc = upb_arena_alloc(s->arena);
|
2064
2048
|
int i;
|
2065
2049
|
for (i = 0; i < file->msg_count; i++) {
|
2066
2050
|
const char *name = file->msgs[i].full_name;
|
2067
|
-
|
2051
|
+
upb_strtable_remove(&s->syms, name, strlen(name), NULL);
|
2068
2052
|
}
|
2069
2053
|
for (i = 0; i < file->enum_count; i++) {
|
2070
2054
|
const char *name = file->enums[i].full_name;
|
2071
|
-
|
2055
|
+
upb_strtable_remove(&s->syms, name, strlen(name), NULL);
|
2072
2056
|
}
|
2073
2057
|
for (i = 0; i < file->ext_count; i++) {
|
2074
2058
|
const char *name = file->exts[i].full_name;
|
2075
|
-
|
2059
|
+
upb_strtable_remove(&s->syms, name, strlen(name), NULL);
|
2076
2060
|
}
|
2077
2061
|
}
|
2078
2062
|
|
2079
2063
|
static const upb_filedef *_upb_symtab_addfile(
|
2080
2064
|
upb_symtab *s, const google_protobuf_FileDescriptorProto *file_proto,
|
2081
2065
|
const upb_msglayout **layouts, upb_status *status) {
|
2082
|
-
upb_arena *file_arena = upb_arena_new();
|
2083
|
-
upb_filedef *file;
|
2084
2066
|
symtab_addctx ctx;
|
2067
|
+
upb_strview name = google_protobuf_FileDescriptorProto_name(file_proto);
|
2085
2068
|
|
2086
|
-
if (
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2069
|
+
if (upb_strtable_lookup2(&s->files, name.data, name.size, NULL)) {
|
2070
|
+
upb_status_seterrf(status, "duplicate file name (%.*s)",
|
2071
|
+
UPB_STRVIEW_ARGS(name));
|
2072
|
+
return NULL;
|
2073
|
+
}
|
2090
2074
|
|
2091
|
-
ctx.file = file;
|
2092
2075
|
ctx.symtab = s;
|
2093
|
-
ctx.file_arena = file_arena;
|
2094
|
-
ctx.alloc = upb_arena_alloc(file_arena);
|
2095
2076
|
ctx.layouts = layouts;
|
2096
2077
|
ctx.status = status;
|
2078
|
+
ctx.file = NULL;
|
2079
|
+
ctx.arena = upb_arena_new();
|
2097
2080
|
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2081
|
+
if (!ctx.arena) {
|
2082
|
+
upb_status_setoom(status);
|
2083
|
+
return NULL;
|
2084
|
+
}
|
2102
2085
|
|
2103
2086
|
if (UPB_UNLIKELY(UPB_SETJMP(ctx.err))) {
|
2104
2087
|
UPB_ASSERT(!upb_ok(status));
|
2105
|
-
|
2106
|
-
|
2088
|
+
if (ctx.file) {
|
2089
|
+
remove_filedef(s, ctx.file);
|
2090
|
+
ctx.file = NULL;
|
2091
|
+
}
|
2107
2092
|
} else {
|
2108
|
-
|
2109
|
-
|
2110
|
-
|
2093
|
+
ctx.file = symtab_alloc(&ctx, sizeof(*ctx.file));
|
2094
|
+
build_filedef(&ctx, ctx.file, file_proto);
|
2095
|
+
upb_strtable_insert(&s->files, name.data, name.size,
|
2096
|
+
upb_value_constptr(ctx.file), ctx.arena);
|
2111
2097
|
UPB_ASSERT(upb_ok(status));
|
2112
|
-
upb_arena_fuse(s->arena,
|
2098
|
+
upb_arena_fuse(s->arena, ctx.arena);
|
2113
2099
|
}
|
2114
2100
|
|
2115
|
-
|
2116
|
-
|
2117
|
-
return file;
|
2101
|
+
upb_arena_free(ctx.arena);
|
2102
|
+
return ctx.file;
|
2118
2103
|
}
|
2119
2104
|
|
2120
2105
|
const upb_filedef *upb_symtab_addfile(
|
@@ -2147,7 +2132,8 @@ bool _upb_symtab_loaddefinit(upb_symtab *s, const upb_def_init *init) {
|
|
2147
2132
|
}
|
2148
2133
|
|
2149
2134
|
file = google_protobuf_FileDescriptorProto_parse_ex(
|
2150
|
-
init->descriptor.data, init->descriptor.size,
|
2135
|
+
init->descriptor.data, init->descriptor.size, NULL, UPB_DECODE_ALIAS,
|
2136
|
+
arena);
|
2151
2137
|
s->bytes_loaded += init->descriptor.size;
|
2152
2138
|
|
2153
2139
|
if (!file) {
|
@@ -2175,4 +2161,8 @@ size_t _upb_symtab_bytesloaded(const upb_symtab *s) {
|
|
2175
2161
|
return s->bytes_loaded;
|
2176
2162
|
}
|
2177
2163
|
|
2164
|
+
upb_arena *_upb_symtab_arena(const upb_symtab *s) {
|
2165
|
+
return s->arena;
|
2166
|
+
}
|
2167
|
+
|
2178
2168
|
#undef CHK_OOM
|