grpc 1.27.0 → 1.28.0.pre2
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 +707 -629
- data/include/grpc/impl/codegen/grpc_types.h +5 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -0
- data/include/grpc/impl/codegen/sync.h +5 -3
- data/include/grpc/impl/codegen/sync_abseil.h +36 -0
- data/include/grpc/module.modulemap +3 -0
- data/include/grpc/support/sync_abseil.h +26 -0
- data/src/core/ext/filters/client_channel/client_channel.cc +47 -29
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +31 -47
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +4 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +21 -28
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +18 -21
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +9 -13
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -72
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +413 -422
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +43 -75
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +228 -286
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +2 -2
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +13 -14
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +5 -7
- data/src/core/ext/filters/client_channel/service_config.cc +91 -160
- data/src/core/ext/filters/client_channel/service_config.h +14 -21
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +581 -251
- data/src/core/ext/filters/client_channel/xds/xds_api.h +189 -151
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +133 -350
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +18 -39
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +3 -1
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +12 -9
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +559 -242
- data/src/core/ext/filters/client_channel/xds/xds_client.h +54 -34
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +53 -128
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +105 -132
- data/src/core/ext/filters/message_size/message_size_filter.cc +32 -35
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +3 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/writing.cc +1 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +22 -42
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +46 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +116 -29
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +4 -362
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +14 -1337
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +390 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +1411 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +29 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +60 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +48 -5
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +154 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +19 -15
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +46 -32
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +26 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +70 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +42 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +83 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +43 -7
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +7 -68
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +14 -201
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +240 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -71
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +3 -228
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +30 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +104 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +383 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +527 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +199 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +793 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +2936 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +227 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +725 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +296 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +1072 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +87 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +11 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +27 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +62 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +249 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +30 -27
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +64 -52
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +104 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +38 -34
- data/src/core/ext/upb-generated/validate/validate.upb.h +129 -99
- data/src/core/lib/channel/channel_trace.cc +32 -41
- data/src/core/lib/channel/channel_trace.h +3 -3
- data/src/core/lib/channel/channelz.cc +158 -248
- data/src/core/lib/channel/channelz.h +12 -15
- data/src/core/lib/channel/channelz_registry.cc +47 -74
- data/src/core/lib/channel/channelz_registry.h +4 -4
- data/src/core/lib/gpr/sync_abseil.cc +114 -0
- data/src/core/lib/gpr/sync_posix.cc +8 -5
- data/src/core/lib/gpr/sync_windows.cc +4 -2
- data/src/core/lib/gprpp/host_port.cc +1 -1
- data/src/core/lib/gprpp/inlined_vector.h +1 -210
- data/src/core/lib/gprpp/memory.h +2 -6
- data/src/core/lib/gprpp/optional.h +0 -41
- data/src/core/lib/gprpp/string_view.h +5 -114
- data/src/core/lib/iomgr/buffer_list.cc +36 -35
- data/src/core/lib/iomgr/error.h +4 -4
- data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -4
- data/src/core/lib/iomgr/load_file.cc +1 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +17 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- data/src/core/lib/iomgr/work_serializer.cc +155 -0
- data/src/core/lib/iomgr/work_serializer.h +65 -0
- data/src/core/lib/json/json.h +209 -79
- data/src/core/lib/json/json_reader.cc +469 -455
- data/src/core/lib/json/json_writer.cc +173 -169
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +10 -8
- data/src/core/lib/security/credentials/jwt/json_token.cc +26 -56
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -18
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +149 -159
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +37 -34
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +5 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +3 -15
- data/src/core/lib/security/security_connector/ssl_utils.cc +3 -1
- data/src/core/lib/security/security_connector/ssl_utils.h +0 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +24 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -1
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/security/util/json_util.cc +22 -15
- data/src/core/lib/security/util/json_util.h +2 -2
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/grpc_shadow_boringssl.h +1333 -1319
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +2 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +1 -1
- data/third_party/abseil-cpp/absl/base/config.h +10 -4
- data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +30 -9
- data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +7 -5
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +2 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +37 -0
- data/third_party/abseil-cpp/absl/base/options.h +2 -10
- data/third_party/abseil-cpp/absl/strings/charconv.cc +0 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +388 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +432 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +245 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +209 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +326 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +51 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +415 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +493 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +104 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +334 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +333 -0
- data/third_party/abseil-cpp/absl/strings/str_format.h +537 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +19 -11
- data/{src/boringssl → third_party/boringssl-with-bazel}/err_data.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bitstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bool.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_d2i_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_dup.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_i2d_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_mbstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_object.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_octet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_strnid.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_time.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_type.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utctm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utf8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_locl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_par.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn_pack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_string.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_dec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_enc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_fre.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_new.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_typ.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_utl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/time_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/base64/base64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio_mem.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/connect.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/fd.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/file.c +5 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/hexdump.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/pair.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/printf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket_helper.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/convert.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/buf/buf.c +10 -69
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/asn1_compat.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/ber.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbb.c +41 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbs.c +60 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/unicode.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/chacha.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/cipher_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/derive_key.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesccm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesctrhmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesgcmsiv.c +8 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_chacha20poly1305.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_null.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_tls.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/tls_cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cmac/cmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf_def.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-linux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-intel.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-ppc64le.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/crypto.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/curve25519/spake25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/check.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/params.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/digest_extra/digest_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_derive.c +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdh_extra/ecdh_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdsa_extra/ecdsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/engine/engine.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/err.c +6 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_dsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa.c +14 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519_asn1.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/pbkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/scrypt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ex_data.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/internal.h +5 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/key_wrap.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/mode_wrappers.c +0 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bcm.c +2 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/add.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/cmp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/exponentiation.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/generic.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/jacobi.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery_inv.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/mul.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/prime.c +11 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/random.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/shift.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/sqrt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/aead.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/cipher.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_aes.c +3 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/delocate.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digests.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/md32_common.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_montgomery.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/felem.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/oct.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p224-64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/scalar.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple_mul.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/util.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/wnaf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdh/ecdh.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdsa/ecdsa.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/fips_shared_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/is_fips.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md4/md4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/md5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cfb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ctr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/gcm.c +45 -193
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/internal.h +8 -18
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ofb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/ctrdrbg.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/rand.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/urandom.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/blinding.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/padding.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa.c +7 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa_impl.c +60 -51
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/self_check/self_check.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha256.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha512.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/kdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hkdf/hkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/hrss.c +210 -311
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/internal.h +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/internal.h +21 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/lhash/lhash.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/mem.c +70 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj.c +16 -21
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_dat.h +27 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_xref.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_all.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_info.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_lib.c +7 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_oth.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pk8.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pkey.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_xaux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/p5_pbev2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_arm.c +21 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_vec.c +34 -17
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/pool.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/deterministic.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/forkunsafe.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/rand_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/windows.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rc4/rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_c11.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_lock.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/siphash/siphash.c +3 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/stack/stack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_none.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_pthread.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_win.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_strex.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_verify.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/algorithm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/asn1_gen.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_dir.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_file.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/charmap.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/i2d_pr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/rsa_pss.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/vpm_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_att.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_cmp.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_d2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_def.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_lu.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_obj.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_r2x.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_req.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_set.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_trs.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_txt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_v3.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vfy.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vpm.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509cset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509name.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509rset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_algor.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_all.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_attrib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_exten.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_info.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_name.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pubkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_sig.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_val.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/ext_dat.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_cache.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_data.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_map.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_node.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_tree.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akeya.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_alt.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bitst.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_cpols.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_crld.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_enum.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_extku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_genn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ia5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_info.c +4 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ocsp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pci.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pmaps.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_prn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_purp.c +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_skey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_sxnet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_utl.c +11 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aead.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aes.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1t.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bio.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/blowfish.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bn.h +32 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buf.h +9 -9
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buffer.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bytestring.h +34 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cast.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cipher.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/conf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cpu.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/crypto.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/curve25519.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/des.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dh.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/digest.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dsa.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dtls1.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/e_os2.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec.h +11 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec_key.h +4 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdh.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdsa.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/engine.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/err.h +11 -9
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/evp.h +20 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ex_data.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hkdf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hrss.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/lhash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md5.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/mem.h +17 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/nid.h +9 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/objects.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslconf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslv.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ossl_typ.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pem.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs7.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs8.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/poly1305.h +5 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pool.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rand.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rc4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ripemd.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rsa.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/safestack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/sha.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/siphash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/span.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/srtp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl.h +10 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/stack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/thread.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/tls1.h +0 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/type_check.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509_vfy.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509v3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/bio_ssl.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_both.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_lib.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_pkt.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_srtp.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_method.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_record.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handoff.cc +126 -29
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake.cc +5 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_client.cc +24 -13
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_server.cc +1 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/internal.h +32 -26
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_both.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_lib.cc +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_pkt.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_aead_ctx.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_asn1.cc +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_buffer.cc +34 -15
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cert.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cipher.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_file.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_key_share.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_lib.cc +13 -14
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_privkey.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_session.cc +2 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_stat.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_transcript.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_versions.cc +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_x509.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_enc.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_lib.cc +11 -171
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_both.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_client.cc +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_enc.cc +5 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_server.cc +78 -101
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_method.cc +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_record.cc +7 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_32.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_tables.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_32.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_64.h +0 -0
- metadata +562 -491
- data/src/core/lib/iomgr/logical_thread.cc +0 -103
- data/src/core/lib/iomgr/logical_thread.h +0 -52
- data/src/core/lib/json/json.cc +0 -94
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -860
@@ -49,7 +49,7 @@ class BoringSslCachedSession : public SslCachedSession {
|
|
49
49
|
|
50
50
|
std::unique_ptr<SslCachedSession> SslCachedSession::Create(
|
51
51
|
SslSessionPtr session) {
|
52
|
-
return
|
52
|
+
return absl::make_unique<BoringSslCachedSession>(std::move(session));
|
53
53
|
}
|
54
54
|
|
55
55
|
} // namespace tsi
|
@@ -67,7 +67,7 @@ class OpenSslCachedSession : public SslCachedSession {
|
|
67
67
|
|
68
68
|
std::unique_ptr<SslCachedSession> SslCachedSession::Create(
|
69
69
|
SslSessionPtr session) {
|
70
|
-
return
|
70
|
+
return absl::make_unique<OpenSslCachedSession>(std::move(session));
|
71
71
|
}
|
72
72
|
|
73
73
|
} // namespace tsi
|
@@ -1122,7 +1122,8 @@ static void tsi_ssl_handshaker_factory_init(
|
|
1122
1122
|
tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
|
1123
1123
|
tsi_peer_property* property) {
|
1124
1124
|
BIO* bio = BIO_new(BIO_s_mem());
|
1125
|
-
|
1125
|
+
const auto peer_chain_len = sk_X509_num(peer_chain);
|
1126
|
+
for (auto i = decltype(peer_chain_len){0}; i < peer_chain_len; i++) {
|
1126
1127
|
if (!PEM_write_bio_X509(bio, sk_X509_value(peer_chain, i))) {
|
1127
1128
|
BIO_free(bio);
|
1128
1129
|
return TSI_INTERNAL_ERROR;
|
@@ -575,7 +575,7 @@
|
|
575
575
|
// When applying ABSL_ATTRIBUTE_PACKED only to specific structure members the
|
576
576
|
// natural alignment of structure members not annotated is preserved. Aligned
|
577
577
|
// member accesses are faster than non-aligned member accesses even if the
|
578
|
-
// targeted
|
578
|
+
// targeted microprocessor supports non-aligned accesses.
|
579
579
|
#if ABSL_HAVE_ATTRIBUTE(packed) || (defined(__GNUC__) && !defined(__clang__))
|
580
580
|
#define ABSL_ATTRIBUTE_PACKED __attribute__((__packed__))
|
581
581
|
#else
|
@@ -316,13 +316,19 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
316
316
|
#error ABSL_HAVE_EXCEPTIONS cannot be directly set.
|
317
317
|
|
318
318
|
#elif defined(__clang__)
|
319
|
-
|
320
|
-
|
321
|
-
//
|
322
|
-
|
319
|
+
|
320
|
+
#if __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 6)
|
321
|
+
// Clang >= 3.6
|
322
|
+
#if __has_feature(cxx_exceptions)
|
323
|
+
#define ABSL_HAVE_EXCEPTIONS 1
|
324
|
+
#endif // __has_feature(cxx_exceptions)
|
325
|
+
#else
|
326
|
+
// Clang < 3.6
|
327
|
+
// http://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html#the-exceptions-macro
|
323
328
|
#if defined(__EXCEPTIONS) && __has_feature(cxx_exceptions)
|
324
329
|
#define ABSL_HAVE_EXCEPTIONS 1
|
325
330
|
#endif // defined(__EXCEPTIONS) && __has_feature(cxx_exceptions)
|
331
|
+
#endif // __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 6)
|
326
332
|
|
327
333
|
// Handle remaining special cases and default to exceptions being supported.
|
328
334
|
#elif !(defined(__GNUC__) && (__GNUC__ < 5) && !defined(__EXCEPTIONS)) && \
|
@@ -20,16 +20,21 @@
|
|
20
20
|
#include <cstdint>
|
21
21
|
#include <utility>
|
22
22
|
|
23
|
+
#include "absl/base/attributes.h"
|
23
24
|
#include "absl/base/config.h"
|
24
25
|
|
25
|
-
#
|
26
|
-
#define ABSL_HAVE_WORKING_ATOMIC_POINTER 0
|
26
|
+
#if defined(_MSC_VER) && !defined(__clang__)
|
27
27
|
#define ABSL_HAVE_WORKING_CONSTEXPR_STATIC_INIT 0
|
28
28
|
#else
|
29
|
-
#define ABSL_HAVE_WORKING_ATOMIC_POINTER 1
|
30
29
|
#define ABSL_HAVE_WORKING_CONSTEXPR_STATIC_INIT 1
|
31
30
|
#endif
|
32
31
|
|
32
|
+
#if defined(_MSC_VER)
|
33
|
+
#define ABSL_HAVE_WORKING_ATOMIC_POINTER 0
|
34
|
+
#else
|
35
|
+
#define ABSL_HAVE_WORKING_ATOMIC_POINTER 1
|
36
|
+
#endif
|
37
|
+
|
33
38
|
namespace absl {
|
34
39
|
ABSL_NAMESPACE_BEGIN
|
35
40
|
namespace base_internal {
|
@@ -37,6 +42,15 @@ namespace base_internal {
|
|
37
42
|
template <typename T>
|
38
43
|
class AtomicHook;
|
39
44
|
|
45
|
+
// To workaround AtomicHook not being constant-initializable on some platforms,
|
46
|
+
// prefer to annotate instances with `ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES`
|
47
|
+
// instead of `ABSL_CONST_INIT`.
|
48
|
+
#if ABSL_HAVE_WORKING_CONSTEXPR_STATIC_INIT
|
49
|
+
#define ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES ABSL_CONST_INIT
|
50
|
+
#else
|
51
|
+
#define ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
|
52
|
+
#endif
|
53
|
+
|
40
54
|
// `AtomicHook` is a helper class, templatized on a raw function pointer type,
|
41
55
|
// for implementing Abseil customization hooks. It is a callable object that
|
42
56
|
// dispatches to the registered hook. Objects of type `AtomicHook` must have
|
@@ -45,8 +59,11 @@ class AtomicHook;
|
|
45
59
|
// A default constructed object performs a no-op (and returns a default
|
46
60
|
// constructed object) if no hook has been registered.
|
47
61
|
//
|
48
|
-
// Hooks can be pre-registered via constant initialization, for example
|
49
|
-
//
|
62
|
+
// Hooks can be pre-registered via constant initialization, for example:
|
63
|
+
//
|
64
|
+
// ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES static AtomicHook<void(*)()>
|
65
|
+
// my_hook(DefaultAction);
|
66
|
+
//
|
50
67
|
// and then changed at runtime via a call to `Store()`.
|
51
68
|
//
|
52
69
|
// Reads and writes guarantee memory_order_acquire/memory_order_release
|
@@ -65,11 +82,15 @@ class AtomicHook<ReturnType (*)(Args...)> {
|
|
65
82
|
#if ABSL_HAVE_WORKING_ATOMIC_POINTER && ABSL_HAVE_WORKING_CONSTEXPR_STATIC_INIT
|
66
83
|
explicit constexpr AtomicHook(FnPtr default_fn)
|
67
84
|
: hook_(default_fn), default_fn_(default_fn) {}
|
85
|
+
#elif ABSL_HAVE_WORKING_CONSTEXPR_STATIC_INIT
|
86
|
+
explicit constexpr AtomicHook(FnPtr default_fn)
|
87
|
+
: hook_(kUninitialized), default_fn_(default_fn) {}
|
68
88
|
#else
|
69
|
-
//
|
70
|
-
//
|
71
|
-
// to preserve
|
72
|
-
//
|
89
|
+
// As of January 2020, on all known versions of MSVC this constructor runs in
|
90
|
+
// the global constructor sequence. If `Store()` is called by a dynamic
|
91
|
+
// initializer, we want to preserve the value, even if this constructor runs
|
92
|
+
// after the call to `Store()`. If not, `hook_` will be
|
93
|
+
// zero-initialized by the linker and we have no need to set it.
|
73
94
|
// https://developercommunity.visualstudio.com/content/problem/336946/class-with-constexpr-constructor-not-using-static.html
|
74
95
|
explicit constexpr AtomicHook(FnPtr default_fn)
|
75
96
|
: /* hook_(deliberately omitted), */ default_fn_(default_fn) {
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// Copyright 2017 The Abseil Authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef ABSL_BASE_INTERNAL_ERRNO_SAVER_H_
|
16
|
+
#define ABSL_BASE_INTERNAL_ERRNO_SAVER_H_
|
17
|
+
|
18
|
+
#include <cerrno>
|
19
|
+
|
20
|
+
#include "absl/base/config.h"
|
21
|
+
|
22
|
+
namespace absl {
|
23
|
+
ABSL_NAMESPACE_BEGIN
|
24
|
+
namespace base_internal {
|
25
|
+
|
26
|
+
// `ErrnoSaver` captures the value of `errno` upon construction and restores it
|
27
|
+
// upon deletion. It is used in low-level code and must be super fast. Do not
|
28
|
+
// add instrumentation, even in debug modes.
|
29
|
+
class ErrnoSaver {
|
30
|
+
public:
|
31
|
+
ErrnoSaver() : saved_errno_(errno) {}
|
32
|
+
~ErrnoSaver() { errno = saved_errno_; }
|
33
|
+
int operator()() const { return saved_errno_; }
|
34
|
+
|
35
|
+
private:
|
36
|
+
const int saved_errno_;
|
37
|
+
};
|
38
|
+
|
39
|
+
} // namespace base_internal
|
40
|
+
ABSL_NAMESPACE_END
|
41
|
+
} // namespace absl
|
42
|
+
|
43
|
+
#endif // ABSL_BASE_INTERNAL_ERRNO_SAVER_H_
|
@@ -71,10 +71,12 @@
|
|
71
71
|
// Explicitly #error out when not ABSL_LOW_LEVEL_WRITE_SUPPORTED, except for a
|
72
72
|
// whitelisted set of platforms for which we expect not to be able to raw log.
|
73
73
|
|
74
|
-
|
75
|
-
absl::raw_logging_internal::LogPrefixHook>
|
76
|
-
|
77
|
-
|
74
|
+
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES static absl::base_internal::AtomicHook<
|
75
|
+
absl::raw_logging_internal::LogPrefixHook>
|
76
|
+
log_prefix_hook;
|
77
|
+
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES static absl::base_internal::AtomicHook<
|
78
|
+
absl::raw_logging_internal::AbortHook>
|
79
|
+
abort_hook;
|
78
80
|
|
79
81
|
#ifdef ABSL_LOW_LEVEL_WRITE_SUPPORTED
|
80
82
|
static const char kTruncated[] = " ... (message truncated)\n";
|
@@ -225,7 +227,7 @@ bool RawLoggingFullySupported() {
|
|
225
227
|
#endif // !ABSL_LOW_LEVEL_WRITE_SUPPORTED
|
226
228
|
}
|
227
229
|
|
228
|
-
|
230
|
+
ABSL_DLL ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
|
229
231
|
absl::base_internal::AtomicHook<InternalLogFunction>
|
230
232
|
internal_log_function(DefaultInternalLog);
|
231
233
|
|
@@ -170,7 +170,8 @@ using InternalLogFunction = void (*)(absl::LogSeverity severity,
|
|
170
170
|
const char* file, int line,
|
171
171
|
const std::string& message);
|
172
172
|
|
173
|
-
ABSL_DLL extern base_internal::AtomicHook<
|
173
|
+
ABSL_DLL ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES extern base_internal::AtomicHook<
|
174
|
+
InternalLogFunction>
|
174
175
|
internal_log_function;
|
175
176
|
|
176
177
|
void RegisterInternalLogFunction(InternalLogFunction func);
|
@@ -57,8 +57,8 @@ namespace absl {
|
|
57
57
|
ABSL_NAMESPACE_BEGIN
|
58
58
|
namespace base_internal {
|
59
59
|
|
60
|
-
|
61
|
-
|
60
|
+
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES static base_internal::AtomicHook<void (*)(
|
61
|
+
const void *lock, int64_t wait_cycles)>
|
62
62
|
submit_profile_data;
|
63
63
|
|
64
64
|
void RegisterSpinLockProfiler(void (*fn)(const void *contendedlock,
|
@@ -19,12 +19,12 @@
|
|
19
19
|
#include <unistd.h>
|
20
20
|
|
21
21
|
#include <atomic>
|
22
|
-
#include <cerrno>
|
23
22
|
#include <climits>
|
24
23
|
#include <cstdint>
|
25
24
|
#include <ctime>
|
26
25
|
|
27
26
|
#include "absl/base/attributes.h"
|
27
|
+
#include "absl/base/internal/errno_saver.h"
|
28
28
|
|
29
29
|
// The SpinLock lockword is `std::atomic<uint32_t>`. Here we assert that
|
30
30
|
// `std::atomic<uint32_t>` is bitwise equivalent of the `int` expected
|
@@ -51,12 +51,11 @@ extern "C" {
|
|
51
51
|
ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockDelay(
|
52
52
|
std::atomic<uint32_t> *w, uint32_t value, int loop,
|
53
53
|
absl::base_internal::SchedulingMode) {
|
54
|
-
|
54
|
+
absl::base_internal::ErrnoSaver errno_saver;
|
55
55
|
struct timespec tm;
|
56
56
|
tm.tv_sec = 0;
|
57
57
|
tm.tv_nsec = absl::base_internal::SpinLockSuggestedDelayNS(loop);
|
58
58
|
syscall(SYS_futex, w, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, value, &tm);
|
59
|
-
errno = save_errno;
|
60
59
|
}
|
61
60
|
|
62
61
|
ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockWake(std::atomic<uint32_t> *w,
|
@@ -15,10 +15,11 @@
|
|
15
15
|
// This file is a Posix-specific part of spinlock_wait.cc
|
16
16
|
|
17
17
|
#include <sched.h>
|
18
|
+
|
18
19
|
#include <atomic>
|
19
20
|
#include <ctime>
|
20
|
-
#include <cerrno>
|
21
21
|
|
22
|
+
#include "absl/base/internal/errno_saver.h"
|
22
23
|
#include "absl/base/internal/scheduling_mode.h"
|
23
24
|
#include "absl/base/port.h"
|
24
25
|
|
@@ -27,7 +28,7 @@ extern "C" {
|
|
27
28
|
ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockDelay(
|
28
29
|
std::atomic<uint32_t>* /* lock_word */, uint32_t /* value */, int loop,
|
29
30
|
absl::base_internal::SchedulingMode /* mode */) {
|
30
|
-
|
31
|
+
absl::base_internal::ErrnoSaver errno_saver;
|
31
32
|
if (loop == 0) {
|
32
33
|
} else if (loop == 1) {
|
33
34
|
sched_yield();
|
@@ -37,7 +38,6 @@ ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockDelay(
|
|
37
38
|
tm.tv_nsec = absl::base_internal::SpinLockSuggestedDelayNS(loop);
|
38
39
|
nanosleep(&tm, nullptr);
|
39
40
|
}
|
40
|
-
errno = save_errno;
|
41
41
|
}
|
42
42
|
|
43
43
|
ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockWake(
|
@@ -21,7 +21,12 @@
|
|
21
21
|
#endif
|
22
22
|
|
23
23
|
#if defined(__powerpc__) || defined(__ppc__)
|
24
|
+
#ifdef __GLIBC__
|
24
25
|
#include <sys/platform/ppc.h>
|
26
|
+
#elif defined(__FreeBSD__)
|
27
|
+
#include <sys/sysctl.h>
|
28
|
+
#include <sys/types.h>
|
29
|
+
#endif
|
25
30
|
#endif
|
26
31
|
|
27
32
|
#include "absl/base/internal/sysinfo.h"
|
@@ -57,11 +62,43 @@ double UnscaledCycleClock::Frequency() {
|
|
57
62
|
#elif defined(__powerpc__) || defined(__ppc__)
|
58
63
|
|
59
64
|
int64_t UnscaledCycleClock::Now() {
|
65
|
+
#ifdef __GLIBC__
|
60
66
|
return __ppc_get_timebase();
|
67
|
+
#else
|
68
|
+
#ifdef __powerpc64__
|
69
|
+
int64_t tbr;
|
70
|
+
asm volatile("mfspr %0, 268" : "=r"(tbr));
|
71
|
+
return tbr;
|
72
|
+
#else
|
73
|
+
int32_t tbu, tbl, tmp;
|
74
|
+
asm volatile(
|
75
|
+
"0:\n"
|
76
|
+
"mftbu %[hi32]\n"
|
77
|
+
"mftb %[lo32]\n"
|
78
|
+
"mftbu %[tmp]\n"
|
79
|
+
"cmpw %[tmp],%[hi32]\n"
|
80
|
+
"bne 0b\n"
|
81
|
+
: [ hi32 ] "=r"(tbu), [ lo32 ] "=r"(tbl), [ tmp ] "=r"(tmp));
|
82
|
+
return (static_cast<int64_t>(tbu) << 32) | tbl;
|
83
|
+
#endif
|
84
|
+
#endif
|
61
85
|
}
|
62
86
|
|
63
87
|
double UnscaledCycleClock::Frequency() {
|
88
|
+
#ifdef __GLIBC__
|
64
89
|
return __ppc_get_timebase_freq();
|
90
|
+
#elif defined(__FreeBSD__)
|
91
|
+
static once_flag init_timebase_frequency_once;
|
92
|
+
static double timebase_frequency = 0.0;
|
93
|
+
base_internal::LowLevelCallOnce(&init_timebase_frequency_once, [&]() {
|
94
|
+
size_t length = sizeof(timebase_frequency);
|
95
|
+
sysctlbyname("kern.timecounter.tc.timebase.frequency", &timebase_frequency,
|
96
|
+
&length, nullptr, 0);
|
97
|
+
});
|
98
|
+
return timebase_frequency;
|
99
|
+
#else
|
100
|
+
#error Must implement UnscaledCycleClock::Frequency()
|
101
|
+
#endif
|
65
102
|
}
|
66
103
|
|
67
104
|
#elif defined(__aarch64__)
|
@@ -123,14 +123,6 @@
|
|
123
123
|
// compiler flags passed by the end user. For more info, see
|
124
124
|
// https://abseil.io/about/design/dropin-types.
|
125
125
|
|
126
|
-
// A value of 2 means to detect the C++ version being used to compile Abseil,
|
127
|
-
// and use an alias only if a working std::optional is available. This option
|
128
|
-
// should not be used when your program is not built from source -- for example,
|
129
|
-
// if you are distributing Abseil in a binary package manager -- since in mode
|
130
|
-
// 2, absl::optional will name a different template class, with a different
|
131
|
-
// mangled name and binary layout, depending on the compiler flags passed by the
|
132
|
-
// end user.
|
133
|
-
//
|
134
126
|
// User code should not inspect this macro. To check in the preprocessor if
|
135
127
|
// absl::optional is a typedef of std::optional, use the feature macro
|
136
128
|
// ABSL_USES_STD_OPTIONAL.
|
@@ -213,7 +205,7 @@
|
|
213
205
|
// be changed to a new, unique identifier name. In particular "head" is not
|
214
206
|
// allowed.
|
215
207
|
|
216
|
-
#define ABSL_OPTION_USE_INLINE_NAMESPACE
|
217
|
-
#define ABSL_OPTION_INLINE_NAMESPACE_NAME
|
208
|
+
#define ABSL_OPTION_USE_INLINE_NAMESPACE 1
|
209
|
+
#define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_2020_02_25
|
218
210
|
|
219
211
|
#endif // ABSL_BASE_OPTIONS_H_
|
@@ -0,0 +1,388 @@
|
|
1
|
+
//
|
2
|
+
// POSIX spec:
|
3
|
+
// http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html
|
4
|
+
//
|
5
|
+
#include "absl/strings/internal/str_format/arg.h"
|
6
|
+
|
7
|
+
#include <cassert>
|
8
|
+
#include <cerrno>
|
9
|
+
#include <cstdlib>
|
10
|
+
#include <string>
|
11
|
+
#include <type_traits>
|
12
|
+
|
13
|
+
#include "absl/base/port.h"
|
14
|
+
#include "absl/strings/internal/str_format/float_conversion.h"
|
15
|
+
|
16
|
+
namespace absl {
|
17
|
+
ABSL_NAMESPACE_BEGIN
|
18
|
+
namespace str_format_internal {
|
19
|
+
namespace {
|
20
|
+
|
21
|
+
const char kDigit[2][32] = { "0123456789abcdef", "0123456789ABCDEF" };
|
22
|
+
|
23
|
+
// Reduce *capacity by s.size(), clipped to a 0 minimum.
|
24
|
+
void ReducePadding(string_view s, size_t *capacity) {
|
25
|
+
*capacity = Excess(s.size(), *capacity);
|
26
|
+
}
|
27
|
+
|
28
|
+
// Reduce *capacity by n, clipped to a 0 minimum.
|
29
|
+
void ReducePadding(size_t n, size_t *capacity) {
|
30
|
+
*capacity = Excess(n, *capacity);
|
31
|
+
}
|
32
|
+
|
33
|
+
template <typename T>
|
34
|
+
struct MakeUnsigned : std::make_unsigned<T> {};
|
35
|
+
template <>
|
36
|
+
struct MakeUnsigned<absl::int128> {
|
37
|
+
using type = absl::uint128;
|
38
|
+
};
|
39
|
+
template <>
|
40
|
+
struct MakeUnsigned<absl::uint128> {
|
41
|
+
using type = absl::uint128;
|
42
|
+
};
|
43
|
+
|
44
|
+
template <typename T>
|
45
|
+
struct IsSigned : std::is_signed<T> {};
|
46
|
+
template <>
|
47
|
+
struct IsSigned<absl::int128> : std::true_type {};
|
48
|
+
template <>
|
49
|
+
struct IsSigned<absl::uint128> : std::false_type {};
|
50
|
+
|
51
|
+
class ConvertedIntInfo {
|
52
|
+
public:
|
53
|
+
template <typename T>
|
54
|
+
ConvertedIntInfo(T v, ConversionChar conv) {
|
55
|
+
using Unsigned = typename MakeUnsigned<T>::type;
|
56
|
+
auto u = static_cast<Unsigned>(v);
|
57
|
+
if (IsNeg(v)) {
|
58
|
+
is_neg_ = true;
|
59
|
+
u = Unsigned{} - u;
|
60
|
+
} else {
|
61
|
+
is_neg_ = false;
|
62
|
+
}
|
63
|
+
UnsignedToStringRight(u, conv);
|
64
|
+
}
|
65
|
+
|
66
|
+
string_view digits() const {
|
67
|
+
return {end() - size_, static_cast<size_t>(size_)};
|
68
|
+
}
|
69
|
+
bool is_neg() const { return is_neg_; }
|
70
|
+
|
71
|
+
private:
|
72
|
+
template <typename T, bool IsSigned>
|
73
|
+
struct IsNegImpl {
|
74
|
+
static bool Eval(T v) { return v < 0; }
|
75
|
+
};
|
76
|
+
template <typename T>
|
77
|
+
struct IsNegImpl<T, false> {
|
78
|
+
static bool Eval(T) {
|
79
|
+
return false;
|
80
|
+
}
|
81
|
+
};
|
82
|
+
|
83
|
+
template <typename T>
|
84
|
+
bool IsNeg(T v) {
|
85
|
+
return IsNegImpl<T, IsSigned<T>::value>::Eval(v);
|
86
|
+
}
|
87
|
+
|
88
|
+
template <typename T>
|
89
|
+
void UnsignedToStringRight(T u, ConversionChar conv) {
|
90
|
+
char *p = end();
|
91
|
+
switch (FormatConversionCharRadix(conv)) {
|
92
|
+
default:
|
93
|
+
case 10:
|
94
|
+
for (; u; u /= 10)
|
95
|
+
*--p = static_cast<char>('0' + static_cast<size_t>(u % 10));
|
96
|
+
break;
|
97
|
+
case 8:
|
98
|
+
for (; u; u /= 8)
|
99
|
+
*--p = static_cast<char>('0' + static_cast<size_t>(u % 8));
|
100
|
+
break;
|
101
|
+
case 16: {
|
102
|
+
const char *digits = kDigit[FormatConversionCharIsUpper(conv) ? 1 : 0];
|
103
|
+
for (; u; u /= 16) *--p = digits[static_cast<size_t>(u % 16)];
|
104
|
+
break;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
size_ = static_cast<int>(end() - p);
|
108
|
+
}
|
109
|
+
|
110
|
+
const char *end() const { return storage_ + sizeof(storage_); }
|
111
|
+
char *end() { return storage_ + sizeof(storage_); }
|
112
|
+
|
113
|
+
bool is_neg_;
|
114
|
+
int size_;
|
115
|
+
// Max size: 128 bit value as octal -> 43 digits
|
116
|
+
char storage_[128 / 3 + 1];
|
117
|
+
};
|
118
|
+
|
119
|
+
// Note: 'o' conversions do not have a base indicator, it's just that
|
120
|
+
// the '#' flag is specified to modify the precision for 'o' conversions.
|
121
|
+
string_view BaseIndicator(const ConvertedIntInfo &info,
|
122
|
+
const ConversionSpec conv) {
|
123
|
+
bool alt = conv.flags().alt;
|
124
|
+
int radix = FormatConversionCharRadix(conv.conv());
|
125
|
+
if (conv.conv() == ConversionChar::p) alt = true; // always show 0x for %p.
|
126
|
+
// From the POSIX description of '#' flag:
|
127
|
+
// "For x or X conversion specifiers, a non-zero result shall have
|
128
|
+
// 0x (or 0X) prefixed to it."
|
129
|
+
if (alt && radix == 16 && !info.digits().empty()) {
|
130
|
+
if (FormatConversionCharIsUpper(conv.conv())) return "0X";
|
131
|
+
return "0x";
|
132
|
+
}
|
133
|
+
return {};
|
134
|
+
}
|
135
|
+
|
136
|
+
string_view SignColumn(bool neg, const ConversionSpec conv) {
|
137
|
+
if (FormatConversionCharIsSigned(conv.conv())) {
|
138
|
+
if (neg) return "-";
|
139
|
+
if (conv.flags().show_pos) return "+";
|
140
|
+
if (conv.flags().sign_col) return " ";
|
141
|
+
}
|
142
|
+
return {};
|
143
|
+
}
|
144
|
+
|
145
|
+
bool ConvertCharImpl(unsigned char v, const ConversionSpec conv,
|
146
|
+
FormatSinkImpl *sink) {
|
147
|
+
size_t fill = 0;
|
148
|
+
if (conv.width() >= 0) fill = conv.width();
|
149
|
+
ReducePadding(1, &fill);
|
150
|
+
if (!conv.flags().left) sink->Append(fill, ' ');
|
151
|
+
sink->Append(1, v);
|
152
|
+
if (conv.flags().left) sink->Append(fill, ' ');
|
153
|
+
return true;
|
154
|
+
}
|
155
|
+
|
156
|
+
bool ConvertIntImplInner(const ConvertedIntInfo &info,
|
157
|
+
const ConversionSpec conv, FormatSinkImpl *sink) {
|
158
|
+
// Print as a sequence of Substrings:
|
159
|
+
// [left_spaces][sign][base_indicator][zeroes][formatted][right_spaces]
|
160
|
+
size_t fill = 0;
|
161
|
+
if (conv.width() >= 0) fill = conv.width();
|
162
|
+
|
163
|
+
string_view formatted = info.digits();
|
164
|
+
ReducePadding(formatted, &fill);
|
165
|
+
|
166
|
+
string_view sign = SignColumn(info.is_neg(), conv);
|
167
|
+
ReducePadding(sign, &fill);
|
168
|
+
|
169
|
+
string_view base_indicator = BaseIndicator(info, conv);
|
170
|
+
ReducePadding(base_indicator, &fill);
|
171
|
+
|
172
|
+
int precision = conv.precision();
|
173
|
+
bool precision_specified = precision >= 0;
|
174
|
+
if (!precision_specified)
|
175
|
+
precision = 1;
|
176
|
+
|
177
|
+
if (conv.flags().alt && conv.conv() == ConversionChar::o) {
|
178
|
+
// From POSIX description of the '#' (alt) flag:
|
179
|
+
// "For o conversion, it increases the precision (if necessary) to
|
180
|
+
// force the first digit of the result to be zero."
|
181
|
+
if (formatted.empty() || *formatted.begin() != '0') {
|
182
|
+
int needed = static_cast<int>(formatted.size()) + 1;
|
183
|
+
precision = std::max(precision, needed);
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
size_t num_zeroes = Excess(formatted.size(), precision);
|
188
|
+
ReducePadding(num_zeroes, &fill);
|
189
|
+
|
190
|
+
size_t num_left_spaces = !conv.flags().left ? fill : 0;
|
191
|
+
size_t num_right_spaces = conv.flags().left ? fill : 0;
|
192
|
+
|
193
|
+
// From POSIX description of the '0' (zero) flag:
|
194
|
+
// "For d, i, o, u, x, and X conversion specifiers, if a precision
|
195
|
+
// is specified, the '0' flag is ignored."
|
196
|
+
if (!precision_specified && conv.flags().zero) {
|
197
|
+
num_zeroes += num_left_spaces;
|
198
|
+
num_left_spaces = 0;
|
199
|
+
}
|
200
|
+
|
201
|
+
sink->Append(num_left_spaces, ' ');
|
202
|
+
sink->Append(sign);
|
203
|
+
sink->Append(base_indicator);
|
204
|
+
sink->Append(num_zeroes, '0');
|
205
|
+
sink->Append(formatted);
|
206
|
+
sink->Append(num_right_spaces, ' ');
|
207
|
+
return true;
|
208
|
+
}
|
209
|
+
|
210
|
+
template <typename T>
|
211
|
+
bool ConvertIntImplInner(T v, const ConversionSpec conv, FormatSinkImpl *sink) {
|
212
|
+
ConvertedIntInfo info(v, conv.conv());
|
213
|
+
if (conv.flags().basic && (conv.conv() != ConversionChar::p)) {
|
214
|
+
if (info.is_neg()) sink->Append(1, '-');
|
215
|
+
if (info.digits().empty()) {
|
216
|
+
sink->Append(1, '0');
|
217
|
+
} else {
|
218
|
+
sink->Append(info.digits());
|
219
|
+
}
|
220
|
+
return true;
|
221
|
+
}
|
222
|
+
return ConvertIntImplInner(info, conv, sink);
|
223
|
+
}
|
224
|
+
|
225
|
+
template <typename T>
|
226
|
+
bool ConvertIntArg(T v, const ConversionSpec conv, FormatSinkImpl *sink) {
|
227
|
+
if (FormatConversionCharIsFloat(conv.conv())) {
|
228
|
+
return FormatConvertImpl(static_cast<double>(v), conv, sink).value;
|
229
|
+
}
|
230
|
+
if (conv.conv() == ConversionChar::c)
|
231
|
+
return ConvertCharImpl(static_cast<unsigned char>(v), conv, sink);
|
232
|
+
if (!FormatConversionCharIsIntegral(conv.conv())) return false;
|
233
|
+
if (!FormatConversionCharIsSigned(conv.conv()) && IsSigned<T>::value) {
|
234
|
+
using U = typename MakeUnsigned<T>::type;
|
235
|
+
return FormatConvertImpl(static_cast<U>(v), conv, sink).value;
|
236
|
+
}
|
237
|
+
return ConvertIntImplInner(v, conv, sink);
|
238
|
+
}
|
239
|
+
|
240
|
+
template <typename T>
|
241
|
+
bool ConvertFloatArg(T v, const ConversionSpec conv, FormatSinkImpl *sink) {
|
242
|
+
return FormatConversionCharIsFloat(conv.conv()) &&
|
243
|
+
ConvertFloatImpl(v, conv, sink);
|
244
|
+
}
|
245
|
+
|
246
|
+
inline bool ConvertStringArg(string_view v, const ConversionSpec conv,
|
247
|
+
FormatSinkImpl *sink) {
|
248
|
+
if (conv.conv() != ConversionChar::s) return false;
|
249
|
+
if (conv.flags().basic) {
|
250
|
+
sink->Append(v);
|
251
|
+
return true;
|
252
|
+
}
|
253
|
+
return sink->PutPaddedString(v, conv.width(), conv.precision(),
|
254
|
+
conv.flags().left);
|
255
|
+
}
|
256
|
+
|
257
|
+
} // namespace
|
258
|
+
|
259
|
+
// ==================== Strings ====================
|
260
|
+
ConvertResult<Conv::s> FormatConvertImpl(const std::string &v,
|
261
|
+
const ConversionSpec conv,
|
262
|
+
FormatSinkImpl *sink) {
|
263
|
+
return {ConvertStringArg(v, conv, sink)};
|
264
|
+
}
|
265
|
+
|
266
|
+
ConvertResult<Conv::s> FormatConvertImpl(string_view v,
|
267
|
+
const ConversionSpec conv,
|
268
|
+
FormatSinkImpl *sink) {
|
269
|
+
return {ConvertStringArg(v, conv, sink)};
|
270
|
+
}
|
271
|
+
|
272
|
+
ConvertResult<Conv::s | Conv::p> FormatConvertImpl(const char *v,
|
273
|
+
const ConversionSpec conv,
|
274
|
+
FormatSinkImpl *sink) {
|
275
|
+
if (conv.conv() == ConversionChar::p)
|
276
|
+
return {FormatConvertImpl(VoidPtr(v), conv, sink).value};
|
277
|
+
size_t len;
|
278
|
+
if (v == nullptr) {
|
279
|
+
len = 0;
|
280
|
+
} else if (conv.precision() < 0) {
|
281
|
+
len = std::strlen(v);
|
282
|
+
} else {
|
283
|
+
// If precision is set, we look for the NUL-terminator on the valid range.
|
284
|
+
len = std::find(v, v + conv.precision(), '\0') - v;
|
285
|
+
}
|
286
|
+
return {ConvertStringArg(string_view(v, len), conv, sink)};
|
287
|
+
}
|
288
|
+
|
289
|
+
// ==================== Raw pointers ====================
|
290
|
+
ConvertResult<Conv::p> FormatConvertImpl(VoidPtr v, const ConversionSpec conv,
|
291
|
+
FormatSinkImpl *sink) {
|
292
|
+
if (conv.conv() != ConversionChar::p) return {false};
|
293
|
+
if (!v.value) {
|
294
|
+
sink->Append("(nil)");
|
295
|
+
return {true};
|
296
|
+
}
|
297
|
+
return {ConvertIntImplInner(v.value, conv, sink)};
|
298
|
+
}
|
299
|
+
|
300
|
+
// ==================== Floats ====================
|
301
|
+
FloatingConvertResult FormatConvertImpl(float v, const ConversionSpec conv,
|
302
|
+
FormatSinkImpl *sink) {
|
303
|
+
return {ConvertFloatArg(v, conv, sink)};
|
304
|
+
}
|
305
|
+
FloatingConvertResult FormatConvertImpl(double v, const ConversionSpec conv,
|
306
|
+
FormatSinkImpl *sink) {
|
307
|
+
return {ConvertFloatArg(v, conv, sink)};
|
308
|
+
}
|
309
|
+
FloatingConvertResult FormatConvertImpl(long double v,
|
310
|
+
const ConversionSpec conv,
|
311
|
+
FormatSinkImpl *sink) {
|
312
|
+
return {ConvertFloatArg(v, conv, sink)};
|
313
|
+
}
|
314
|
+
|
315
|
+
// ==================== Chars ====================
|
316
|
+
IntegralConvertResult FormatConvertImpl(char v, const ConversionSpec conv,
|
317
|
+
FormatSinkImpl *sink) {
|
318
|
+
return {ConvertIntArg(v, conv, sink)};
|
319
|
+
}
|
320
|
+
IntegralConvertResult FormatConvertImpl(signed char v,
|
321
|
+
const ConversionSpec conv,
|
322
|
+
FormatSinkImpl *sink) {
|
323
|
+
return {ConvertIntArg(v, conv, sink)};
|
324
|
+
}
|
325
|
+
IntegralConvertResult FormatConvertImpl(unsigned char v,
|
326
|
+
const ConversionSpec conv,
|
327
|
+
FormatSinkImpl *sink) {
|
328
|
+
return {ConvertIntArg(v, conv, sink)};
|
329
|
+
}
|
330
|
+
|
331
|
+
// ==================== Ints ====================
|
332
|
+
IntegralConvertResult FormatConvertImpl(short v, // NOLINT
|
333
|
+
const ConversionSpec conv,
|
334
|
+
FormatSinkImpl *sink) {
|
335
|
+
return {ConvertIntArg(v, conv, sink)};
|
336
|
+
}
|
337
|
+
IntegralConvertResult FormatConvertImpl(unsigned short v, // NOLINT
|
338
|
+
const ConversionSpec conv,
|
339
|
+
FormatSinkImpl *sink) {
|
340
|
+
return {ConvertIntArg(v, conv, sink)};
|
341
|
+
}
|
342
|
+
IntegralConvertResult FormatConvertImpl(int v, const ConversionSpec conv,
|
343
|
+
FormatSinkImpl *sink) {
|
344
|
+
return {ConvertIntArg(v, conv, sink)};
|
345
|
+
}
|
346
|
+
IntegralConvertResult FormatConvertImpl(unsigned v, const ConversionSpec conv,
|
347
|
+
FormatSinkImpl *sink) {
|
348
|
+
return {ConvertIntArg(v, conv, sink)};
|
349
|
+
}
|
350
|
+
IntegralConvertResult FormatConvertImpl(long v, // NOLINT
|
351
|
+
const ConversionSpec conv,
|
352
|
+
FormatSinkImpl *sink) {
|
353
|
+
return {ConvertIntArg(v, conv, sink)};
|
354
|
+
}
|
355
|
+
IntegralConvertResult FormatConvertImpl(unsigned long v, // NOLINT
|
356
|
+
const ConversionSpec conv,
|
357
|
+
FormatSinkImpl *sink) {
|
358
|
+
return {ConvertIntArg(v, conv, sink)};
|
359
|
+
}
|
360
|
+
IntegralConvertResult FormatConvertImpl(long long v, // NOLINT
|
361
|
+
const ConversionSpec conv,
|
362
|
+
FormatSinkImpl *sink) {
|
363
|
+
return {ConvertIntArg(v, conv, sink)};
|
364
|
+
}
|
365
|
+
IntegralConvertResult FormatConvertImpl(unsigned long long v, // NOLINT
|
366
|
+
const ConversionSpec conv,
|
367
|
+
FormatSinkImpl *sink) {
|
368
|
+
return {ConvertIntArg(v, conv, sink)};
|
369
|
+
}
|
370
|
+
IntegralConvertResult FormatConvertImpl(absl::int128 v,
|
371
|
+
const ConversionSpec conv,
|
372
|
+
FormatSinkImpl *sink) {
|
373
|
+
return {ConvertIntArg(v, conv, sink)};
|
374
|
+
}
|
375
|
+
IntegralConvertResult FormatConvertImpl(absl::uint128 v,
|
376
|
+
const ConversionSpec conv,
|
377
|
+
FormatSinkImpl *sink) {
|
378
|
+
return {ConvertIntArg(v, conv, sink)};
|
379
|
+
}
|
380
|
+
|
381
|
+
ABSL_INTERNAL_FORMAT_DISPATCH_OVERLOADS_EXPAND_();
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
} // namespace str_format_internal
|
386
|
+
|
387
|
+
ABSL_NAMESPACE_END
|
388
|
+
} // namespace absl
|