grpc 1.30.0 → 1.31.1

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.

Files changed (383) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +560 -619
  3. data/include/grpc/grpc_security.h +8 -0
  4. data/include/grpc/grpc_security_constants.h +3 -0
  5. data/include/grpc/impl/codegen/grpc_types.h +7 -5
  6. data/include/grpc/impl/codegen/port_platform.h +0 -32
  7. data/src/core/ext/filters/client_channel/backend_metric.cc +12 -9
  8. data/src/core/ext/filters/client_channel/client_channel.cc +406 -261
  9. data/src/core/ext/filters/client_channel/config_selector.cc +62 -0
  10. data/src/core/ext/filters/client_channel/config_selector.h +93 -0
  11. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -2
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +2 -0
  13. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +6 -5
  14. data/src/core/ext/filters/client_channel/http_proxy.cc +6 -4
  15. data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +39 -23
  17. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +4 -6
  18. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -4
  19. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +381 -72
  20. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -5
  21. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +5 -2
  22. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +6 -5
  23. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +8 -6
  24. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +9 -7
  25. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +7 -5
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -48
  27. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
  28. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +21 -18
  29. data/src/core/ext/filters/client_channel/resolver_registry.cc +13 -14
  30. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +6 -7
  31. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +33 -28
  32. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +39 -20
  33. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
  34. data/src/core/ext/filters/client_channel/subchannel.cc +1 -1
  35. data/src/core/ext/filters/client_channel/xds/xds_api.cc +327 -123
  36. data/src/core/ext/filters/client_channel/xds/xds_api.h +72 -7
  37. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +12 -23
  38. data/src/core/ext/filters/client_channel/xds/xds_client.cc +112 -33
  39. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +10 -10
  40. data/src/core/ext/filters/http/client/http_client_filter.cc +5 -5
  41. data/src/core/ext/filters/http/http_filters_plugin.cc +2 -1
  42. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +74 -33
  43. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
  44. data/src/core/ext/filters/message_size/message_size_filter.cc +56 -80
  45. data/src/core/ext/filters/message_size/message_size_filter.h +6 -0
  46. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +383 -347
  47. data/src/core/ext/transport/chttp2/server/chttp2_server.h +6 -2
  48. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +1 -1
  49. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -13
  50. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +7 -8
  51. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +19 -4
  52. data/src/core/ext/transport/chttp2/transport/flow_control.cc +22 -27
  53. data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -16
  54. data/src/core/ext/transport/chttp2/transport/frame_data.cc +9 -12
  55. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -6
  56. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
  57. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
  58. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -7
  59. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -29
  61. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
  62. data/src/core/ext/transport/chttp2/transport/internal.h +13 -0
  63. data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
  64. data/src/core/ext/transport/chttp2/transport/writing.cc +9 -14
  65. data/src/core/ext/transport/inproc/inproc_transport.cc +35 -15
  66. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -1
  67. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +3 -4
  68. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -1
  69. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +80 -69
  70. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +24 -23
  71. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +66 -56
  72. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1 -2
  73. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +2 -2
  74. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +317 -311
  75. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +42 -34
  76. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +7 -7
  77. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +79 -61
  78. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +55 -49
  79. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +9 -8
  80. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +1 -1
  81. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +163 -169
  82. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +51 -45
  83. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +4 -5
  84. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +107 -100
  85. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +137 -117
  86. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +9 -9
  87. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +105 -87
  88. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +12 -13
  89. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -1
  90. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +95 -101
  91. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +1 -2
  92. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -1
  93. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +49 -65
  94. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -1
  95. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +49 -42
  96. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +70 -62
  97. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +1 -2
  98. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +81 -65
  99. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -1
  100. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +1 -1
  101. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +91 -80
  102. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +9 -10
  103. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +1 -2
  104. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +36 -31
  105. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -1
  106. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +7 -7
  107. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +648 -696
  108. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +16 -15
  109. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +1 -2
  110. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -1
  111. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +95 -88
  112. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +234 -199
  113. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +5 -5
  114. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +13 -13
  115. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +1 -2
  116. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +20 -18
  117. data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
  118. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +18 -17
  119. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +14 -14
  120. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +23 -23
  121. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
  122. data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
  123. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +7 -8
  124. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +36 -35
  125. data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -1
  126. data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -1
  127. data/src/core/ext/upb-generated/google/api/http.upb.h +29 -28
  128. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +5 -6
  129. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +3 -3
  130. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +412 -386
  131. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +5 -6
  132. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -2
  133. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +1 -1
  134. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -54
  135. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +5 -6
  136. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -28
  137. data/src/core/ext/upb-generated/google/rpc/status.upb.h +8 -8
  138. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +1 -1
  139. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +32 -45
  140. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +4 -4
  141. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +157 -178
  142. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +14 -13
  143. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -7
  144. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +59 -56
  145. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +11 -12
  146. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -1
  147. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +5 -6
  148. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +6 -6
  149. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +41 -68
  150. data/src/core/ext/upb-generated/validate/validate.upb.h +536 -535
  151. data/src/core/lib/channel/channel_trace.cc +2 -6
  152. data/src/core/lib/channel/channelz.cc +5 -15
  153. data/src/core/lib/gpr/log_linux.cc +6 -8
  154. data/src/core/lib/gpr/log_posix.cc +6 -8
  155. data/src/core/lib/gpr/string.cc +10 -9
  156. data/src/core/lib/gpr/string.h +4 -2
  157. data/src/core/lib/gprpp/global_config_env.cc +8 -6
  158. data/src/core/lib/http/httpcli.cc +13 -10
  159. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  160. data/src/core/lib/iomgr/cfstream_handle.cc +1 -0
  161. data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
  162. data/src/core/lib/iomgr/error_cfstream.cc +9 -8
  163. data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -6
  164. data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -21
  165. data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
  166. data/src/core/lib/iomgr/ev_posix.cc +2 -0
  167. data/src/core/lib/iomgr/iomgr.cc +10 -0
  168. data/src/core/lib/iomgr/iomgr.h +10 -0
  169. data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
  170. data/src/core/lib/iomgr/port.h +1 -21
  171. data/src/core/lib/iomgr/resolve_address_custom.cc +13 -18
  172. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -8
  173. data/src/core/lib/iomgr/resource_quota.cc +34 -31
  174. data/src/core/lib/iomgr/sockaddr_utils.cc +7 -5
  175. data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
  176. data/src/core/lib/iomgr/socket_utils_common_posix.cc +95 -55
  177. data/src/core/lib/iomgr/socket_windows.cc +4 -5
  178. data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -11
  179. data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
  180. data/src/core/lib/iomgr/tcp_client_posix.cc +27 -36
  181. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
  182. data/src/core/lib/iomgr/tcp_custom.cc +1 -1
  183. data/src/core/lib/iomgr/tcp_custom.h +1 -1
  184. data/src/core/lib/iomgr/tcp_server.cc +3 -4
  185. data/src/core/lib/iomgr/tcp_server.h +7 -5
  186. data/src/core/lib/iomgr/tcp_server_custom.cc +6 -14
  187. data/src/core/lib/iomgr/tcp_server_posix.cc +34 -41
  188. data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
  189. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -7
  190. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -9
  191. data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
  192. data/src/core/lib/iomgr/timer_generic.cc +13 -12
  193. data/src/core/lib/iomgr/udp_server.cc +24 -23
  194. data/src/core/lib/iomgr/udp_server.h +5 -2
  195. data/src/core/lib/iomgr/unix_sockets_posix.cc +9 -14
  196. data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
  197. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +5 -2
  198. data/src/core/lib/json/json_reader.cc +20 -21
  199. data/src/core/lib/security/credentials/credentials.h +5 -3
  200. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
  201. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -9
  202. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
  203. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +19 -28
  204. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -6
  205. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -0
  206. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -0
  207. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -0
  208. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +10 -10
  209. data/src/core/lib/security/security_connector/security_connector.cc +2 -0
  210. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  211. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -11
  212. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
  213. data/src/core/lib/security/security_connector/ssl_utils.cc +44 -23
  214. data/src/core/lib/security/security_connector/ssl_utils.h +6 -2
  215. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +27 -24
  216. data/src/core/lib/security/transport/auth_filters.h +0 -5
  217. data/src/core/lib/security/transport/client_auth_filter.cc +10 -9
  218. data/src/core/lib/security/util/json_util.cc +12 -13
  219. data/src/core/lib/slice/slice.cc +38 -1
  220. data/src/core/lib/slice/slice_internal.h +1 -0
  221. data/src/core/lib/surface/call.cc +40 -41
  222. data/src/core/lib/surface/completion_queue.cc +271 -14
  223. data/src/core/lib/surface/completion_queue.h +8 -0
  224. data/src/core/lib/surface/init.cc +2 -0
  225. data/src/core/lib/surface/server.cc +565 -632
  226. data/src/core/lib/surface/server.h +34 -12
  227. data/src/core/lib/surface/version.cc +2 -2
  228. data/src/core/lib/transport/transport.h +6 -0
  229. data/src/core/lib/uri/uri_parser.cc +8 -15
  230. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  231. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -13
  232. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -0
  233. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
  234. data/src/core/tsi/ssl_transport_security.cc +108 -11
  235. data/src/core/tsi/ssl_transport_security.h +14 -2
  236. data/src/core/tsi/transport_security_interface.h +5 -0
  237. data/src/ruby/bin/math_services_pb.rb +4 -4
  238. data/src/ruby/ext/grpc/extconf.rb +5 -2
  239. data/src/ruby/ext/grpc/rb_call.c +3 -2
  240. data/src/ruby/ext/grpc/rb_call.h +4 -0
  241. data/src/ruby/ext/grpc/rb_call_credentials.c +57 -12
  242. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  243. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  244. data/src/ruby/lib/grpc/generic/client_stub.rb +1 -1
  245. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  246. data/src/ruby/lib/grpc/version.rb +1 -1
  247. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +2 -2
  248. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +5 -0
  249. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +28 -12
  250. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
  251. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +2 -0
  252. data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
  253. data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
  254. data/src/ruby/spec/pb/codegen/package_option_spec.rb +25 -1
  255. data/src/ruby/spec/support/services.rb +10 -4
  256. data/src/ruby/spec/user_agent_spec.rb +74 -0
  257. data/third_party/boringssl-with-bazel/err_data.c +89 -83
  258. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
  259. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +3 -3
  260. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +1 -1
  261. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -3
  262. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
  263. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
  264. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -1
  265. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
  266. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
  267. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
  268. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
  269. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +1 -0
  270. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
  271. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
  272. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +143 -0
  273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
  274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +11 -1
  275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -1
  276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
  277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
  278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
  279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
  280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
  281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
  282. data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -15
  283. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
  284. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -5
  285. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +0 -29
  286. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +116 -363
  287. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +7 -45
  288. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +4 -4
  289. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +8 -0
  290. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
  291. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
  292. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +13 -6
  293. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +10 -0
  294. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +41 -0
  295. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +4 -1
  296. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +28 -9
  297. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
  298. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +35 -13
  299. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -154
  300. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +28 -6
  301. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +5 -0
  302. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +74 -35
  303. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
  304. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
  305. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
  306. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
  307. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +33 -16
  308. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -10
  309. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +789 -715
  310. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +3 -3
  311. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -2
  312. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -2
  313. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +9 -0
  314. data/third_party/boringssl-with-bazel/src/ssl/internal.h +17 -14
  315. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -7
  316. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +28 -0
  317. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +4 -24
  318. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
  319. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -24
  320. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +31 -21
  321. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +12 -9
  322. data/third_party/re2/re2/bitmap256.h +117 -0
  323. data/third_party/re2/re2/bitstate.cc +385 -0
  324. data/third_party/re2/re2/compile.cc +1279 -0
  325. data/third_party/re2/re2/dfa.cc +2130 -0
  326. data/third_party/re2/re2/filtered_re2.cc +121 -0
  327. data/third_party/re2/re2/filtered_re2.h +109 -0
  328. data/third_party/re2/re2/mimics_pcre.cc +197 -0
  329. data/third_party/re2/re2/nfa.cc +713 -0
  330. data/third_party/re2/re2/onepass.cc +623 -0
  331. data/third_party/re2/re2/parse.cc +2464 -0
  332. data/third_party/re2/re2/perl_groups.cc +119 -0
  333. data/third_party/re2/re2/pod_array.h +55 -0
  334. data/third_party/re2/re2/prefilter.cc +710 -0
  335. data/third_party/re2/re2/prefilter.h +108 -0
  336. data/third_party/re2/re2/prefilter_tree.cc +407 -0
  337. data/third_party/re2/re2/prefilter_tree.h +139 -0
  338. data/third_party/re2/re2/prog.cc +988 -0
  339. data/third_party/re2/re2/prog.h +436 -0
  340. data/third_party/re2/re2/re2.cc +1362 -0
  341. data/third_party/re2/re2/re2.h +1002 -0
  342. data/third_party/re2/re2/regexp.cc +980 -0
  343. data/third_party/re2/re2/regexp.h +659 -0
  344. data/third_party/re2/re2/set.cc +154 -0
  345. data/third_party/re2/re2/set.h +80 -0
  346. data/third_party/re2/re2/simplify.cc +657 -0
  347. data/third_party/re2/re2/sparse_array.h +392 -0
  348. data/third_party/re2/re2/sparse_set.h +264 -0
  349. data/third_party/re2/re2/stringpiece.cc +65 -0
  350. data/third_party/re2/re2/stringpiece.h +210 -0
  351. data/third_party/re2/re2/tostring.cc +351 -0
  352. data/third_party/re2/re2/unicode_casefold.cc +582 -0
  353. data/third_party/re2/re2/unicode_casefold.h +78 -0
  354. data/third_party/re2/re2/unicode_groups.cc +6269 -0
  355. data/third_party/re2/re2/unicode_groups.h +67 -0
  356. data/third_party/re2/re2/walker-inl.h +246 -0
  357. data/third_party/re2/util/benchmark.h +156 -0
  358. data/third_party/re2/util/flags.h +26 -0
  359. data/third_party/re2/util/logging.h +109 -0
  360. data/third_party/re2/util/malloc_counter.h +19 -0
  361. data/third_party/re2/util/mix.h +41 -0
  362. data/third_party/re2/util/mutex.h +148 -0
  363. data/third_party/re2/util/pcre.cc +1025 -0
  364. data/third_party/re2/util/pcre.h +681 -0
  365. data/third_party/re2/util/rune.cc +260 -0
  366. data/third_party/re2/util/strutil.cc +149 -0
  367. data/third_party/re2/util/strutil.h +21 -0
  368. data/third_party/re2/util/test.h +50 -0
  369. data/third_party/re2/util/utf.h +44 -0
  370. data/third_party/re2/util/util.h +42 -0
  371. data/third_party/upb/upb/decode.c +467 -504
  372. data/third_party/upb/upb/encode.c +163 -121
  373. data/third_party/upb/upb/msg.c +130 -64
  374. data/third_party/upb/upb/msg.h +418 -14
  375. data/third_party/upb/upb/port_def.inc +35 -6
  376. data/third_party/upb/upb/port_undef.inc +8 -1
  377. data/third_party/upb/upb/table.c +53 -75
  378. data/third_party/upb/upb/table.int.h +11 -43
  379. data/third_party/upb/upb/upb.c +148 -124
  380. data/third_party/upb/upb/upb.h +65 -147
  381. data/third_party/upb/upb/upb.hpp +86 -0
  382. metadata +90 -30
  383. data/third_party/upb/upb/generated_util.h +0 -105
@@ -21,6 +21,7 @@
21
21
  * This file is private and must not be included by users!
22
22
  */
23
23
  #include <stdint.h>
24
+ #include <stddef.h>
24
25
 
25
26
  #if UINTPTR_MAX == 0xffffffff
26
27
  #define UPB_SIZE(size32, size64) size32
@@ -28,17 +29,21 @@
28
29
  #define UPB_SIZE(size32, size64) size64
29
30
  #endif
30
31
 
31
- #define UPB_FIELD_AT(msg, fieldtype, offset) \
32
- *(fieldtype*)((const char*)(msg) + offset)
32
+ /* If we always read/write as a consistent type to each address, this shouldn't
33
+ * violate aliasing.
34
+ */
35
+ #define UPB_PTR_AT(msg, ofs, type) ((type*)((char*)(msg) + (ofs)))
33
36
 
34
37
  #define UPB_READ_ONEOF(msg, fieldtype, offset, case_offset, case_val, default) \
35
- UPB_FIELD_AT(msg, int, case_offset) == case_val \
36
- ? UPB_FIELD_AT(msg, fieldtype, offset) \
38
+ *UPB_PTR_AT(msg, case_offset, int) == case_val \
39
+ ? *UPB_PTR_AT(msg, offset, fieldtype) \
37
40
  : default
38
41
 
39
42
  #define UPB_WRITE_ONEOF(msg, fieldtype, offset, value, case_offset, case_val) \
40
- UPB_FIELD_AT(msg, int, case_offset) = case_val; \
41
- UPB_FIELD_AT(msg, fieldtype, offset) = value;
43
+ *UPB_PTR_AT(msg, case_offset, int) = case_val; \
44
+ *UPB_PTR_AT(msg, offset, fieldtype) = value;
45
+
46
+ #define UPB_MAPTYPE_STRING 0
42
47
 
43
48
  /* UPB_INLINE: inline if possible, emit standalone code if required. */
44
49
  #ifdef __cplusplus
@@ -49,6 +54,11 @@
49
54
  #define UPB_INLINE static
50
55
  #endif
51
56
 
57
+ #define UPB_ALIGN_UP(size, align) (((size) + (align) - 1) / (align) * (align))
58
+ #define UPB_ALIGN_DOWN(size, align) ((size) / (align) * (align))
59
+ #define UPB_ALIGN_MALLOC(size) UPB_ALIGN_UP(size, 16)
60
+ #define UPB_ALIGN_OF(type) offsetof (struct { char c; type member; }, member)
61
+
52
62
  /* Hints to the compiler about likely/unlikely branches. */
53
63
  #if defined (__GNUC__) || defined(__clang__)
54
64
  #define UPB_LIKELY(x) __builtin_expect((x),1)
@@ -123,6 +133,20 @@ int msvc_vsnprintf(char* s, size_t n, const char* format, va_list arg);
123
133
 
124
134
  #define UPB_UNUSED(var) (void)var
125
135
 
136
+ /* UPB_ASSUME(): in release mode, we tell the compiler to assume this is true.
137
+ */
138
+ #ifdef NDEBUG
139
+ #ifdef __GNUC__
140
+ #define UPB_ASSUME(expr) if (!(expr)) __builtin_unreachable()
141
+ #elif defined _MSC_VER
142
+ #define UPB_ASSUME(expr) if (!(expr)) __assume(0)
143
+ #else
144
+ #define UPB_ASSUME(expr) do {} if (false && (expr))
145
+ #endif
146
+ #else
147
+ #define UPB_ASSUME(expr) assert(expr)
148
+ #endif
149
+
126
150
  /* UPB_ASSERT(): in release mode, we use the expression without letting it be
127
151
  * evaluated. This prevents "unused variable" warnings. */
128
152
  #ifdef NDEBUG
@@ -148,3 +172,8 @@ int msvc_vsnprintf(char* s, size_t n, const char* format, va_list arg);
148
172
  #else
149
173
  #define UPB_INFINITY (1.0 / 0.0)
150
174
  #endif
175
+ #ifdef NAN
176
+ #define UPB_NAN NAN
177
+ #else
178
+ #define UPB_NAN (0.0 / 0.0)
179
+ #endif
@@ -1,20 +1,27 @@
1
1
  /* See port_def.inc. This should #undef all macros #defined there. */
2
2
 
3
+ #undef UPB_MAPTYPE_STRING
3
4
  #undef UPB_SIZE
4
- #undef UPB_FIELD_AT
5
+ #undef UPB_PTR_AT
5
6
  #undef UPB_READ_ONEOF
6
7
  #undef UPB_WRITE_ONEOF
7
8
  #undef UPB_INLINE
9
+ #undef UPB_ALIGN_UP
10
+ #undef UPB_ALIGN_DOWN
11
+ #undef UPB_ALIGN_MALLOC
12
+ #undef UPB_ALIGN_OF
8
13
  #undef UPB_FORCEINLINE
9
14
  #undef UPB_NOINLINE
10
15
  #undef UPB_NORETURN
11
16
  #undef UPB_MAX
12
17
  #undef UPB_MIN
13
18
  #undef UPB_UNUSED
19
+ #undef UPB_ASSUME
14
20
  #undef UPB_ASSERT
15
21
  #undef UPB_ASSERT_DEBUGVAR
16
22
  #undef UPB_UNREACHABLE
17
23
  #undef UPB_INFINITY
24
+ #undef UPB_NAN
18
25
  #undef UPB_MSVC_VSNPRINTF
19
26
  #undef _upb_snprintf
20
27
  #undef _upb_vsnprintf
@@ -16,12 +16,6 @@
16
16
  #define ARRAY_SIZE(x) \
17
17
  ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
18
18
 
19
- static void upb_check_alloc(upb_table *t, upb_alloc *a) {
20
- UPB_UNUSED(t);
21
- UPB_UNUSED(a);
22
- UPB_ASSERT_DEBUGVAR(t->alloc == a);
23
- }
24
-
25
19
  static const double MAX_LOAD = 0.85;
26
20
 
27
21
  /* The minimum utilization of the array part of a mixed hash/array table. This
@@ -100,17 +94,12 @@ static bool isfull(upb_table *t) {
100
94
  }
101
95
  }
102
96
 
103
- static bool init(upb_table *t, upb_ctype_t ctype, uint8_t size_lg2,
104
- upb_alloc *a) {
97
+ static bool init(upb_table *t, uint8_t size_lg2, upb_alloc *a) {
105
98
  size_t bytes;
106
99
 
107
100
  t->count = 0;
108
- t->ctype = ctype;
109
101
  t->size_lg2 = size_lg2;
110
102
  t->mask = upb_table_size(t) ? upb_table_size(t) - 1 : 0;
111
- #ifndef NDEBUG
112
- t->alloc = a;
113
- #endif
114
103
  bytes = upb_table_size(t) * sizeof(upb_tabent);
115
104
  if (bytes > 0) {
116
105
  t->entries = upb_malloc(a, bytes);
@@ -123,7 +112,6 @@ static bool init(upb_table *t, upb_ctype_t ctype, uint8_t size_lg2,
123
112
  }
124
113
 
125
114
  static void uninit(upb_table *t, upb_alloc *a) {
126
- upb_check_alloc(t, a);
127
115
  upb_free(a, mutable_entries(t));
128
116
  }
129
117
 
@@ -159,7 +147,7 @@ static bool lookup(const upb_table *t, lookupkey_t key, upb_value *v,
159
147
  const upb_tabent *e = findentry(t, key, hash, eql);
160
148
  if (e) {
161
149
  if (v) {
162
- _upb_value_setval(v, e->val.val, t->ctype);
150
+ _upb_value_setval(v, e->val.val);
163
151
  }
164
152
  return true;
165
153
  } else {
@@ -175,7 +163,6 @@ static void insert(upb_table *t, lookupkey_t key, upb_tabkey tabkey,
175
163
  upb_tabent *our_e;
176
164
 
177
165
  UPB_ASSERT(findentry(t, key, hash, eql) == NULL);
178
- UPB_ASSERT_DEBUGVAR(val.ctype == t->ctype);
179
166
 
180
167
  t->count++;
181
168
  mainpos_e = getentry_mutable(t, hash);
@@ -221,7 +208,7 @@ static bool rm(upb_table *t, lookupkey_t key, upb_value *val,
221
208
  if (eql(chain->key, key)) {
222
209
  /* Element to remove is at the head of its chain. */
223
210
  t->count--;
224
- if (val) _upb_value_setval(val, chain->val.val, t->ctype);
211
+ if (val) _upb_value_setval(val, chain->val.val);
225
212
  if (removed) *removed = chain->key;
226
213
  if (chain->next) {
227
214
  upb_tabent *move = (upb_tabent*)chain->next;
@@ -241,7 +228,7 @@ static bool rm(upb_table *t, lookupkey_t key, upb_value *val,
241
228
  /* Found element to remove. */
242
229
  upb_tabent *rm = (upb_tabent*)chain->next;
243
230
  t->count--;
244
- if (val) _upb_value_setval(val, chain->next->val.val, t->ctype);
231
+ if (val) _upb_value_setval(val, chain->next->val.val);
245
232
  if (removed) *removed = rm->key;
246
233
  rm->key = 0; /* Make the slot empty. */
247
234
  chain->next = rm->next;
@@ -256,7 +243,7 @@ static bool rm(upb_table *t, lookupkey_t key, upb_value *val,
256
243
  static size_t next(const upb_table *t, size_t i) {
257
244
  do {
258
245
  if (++i >= upb_table_size(t))
259
- return SIZE_MAX;
246
+ return SIZE_MAX - 1; /* Distinct from -1. */
260
247
  } while(upb_tabent_isempty(&t->entries[i]));
261
248
 
262
249
  return i;
@@ -276,7 +263,7 @@ static upb_tabkey strcopy(lookupkey_t k2, upb_alloc *a) {
276
263
  char *str = upb_malloc(a, k2.str.len + sizeof(uint32_t) + 1);
277
264
  if (str == NULL) return 0;
278
265
  memcpy(str, &len, sizeof(uint32_t));
279
- memcpy(str + sizeof(uint32_t), k2.str.str, k2.str.len);
266
+ if (k2.str.len) memcpy(str + sizeof(uint32_t), k2.str.str, k2.str.len);
280
267
  str[sizeof(uint32_t) + k2.str.len] = '\0';
281
268
  return (uintptr_t)str;
282
269
  }
@@ -290,11 +277,18 @@ static uint32_t strhash(upb_tabkey key) {
290
277
  static bool streql(upb_tabkey k1, lookupkey_t k2) {
291
278
  uint32_t len;
292
279
  char *str = upb_tabstr(k1, &len);
293
- return len == k2.str.len && memcmp(str, k2.str.str, len) == 0;
280
+ return len == k2.str.len && (len == 0 || memcmp(str, k2.str.str, len) == 0);
294
281
  }
295
282
 
296
283
  bool upb_strtable_init2(upb_strtable *t, upb_ctype_t ctype, upb_alloc *a) {
297
- return init(&t->t, ctype, 2, a);
284
+ UPB_UNUSED(ctype); /* TODO(haberman): rm */
285
+ return init(&t->t, 2, a);
286
+ }
287
+
288
+ void upb_strtable_clear(upb_strtable *t) {
289
+ size_t bytes = upb_table_size(&t->t) * sizeof(upb_tabent);
290
+ t->t.count = 0;
291
+ memset((char*)t->t.entries, 0, bytes);
298
292
  }
299
293
 
300
294
  void upb_strtable_uninit2(upb_strtable *t, upb_alloc *a) {
@@ -308,18 +302,14 @@ bool upb_strtable_resize(upb_strtable *t, size_t size_lg2, upb_alloc *a) {
308
302
  upb_strtable new_table;
309
303
  upb_strtable_iter i;
310
304
 
311
- upb_check_alloc(&t->t, a);
312
-
313
- if (!init(&new_table.t, t->t.ctype, size_lg2, a))
305
+ if (!init(&new_table.t, size_lg2, a))
314
306
  return false;
315
307
  upb_strtable_begin(&i, t);
316
308
  for ( ; !upb_strtable_done(&i); upb_strtable_next(&i)) {
309
+ upb_strview key = upb_strtable_iter_key(&i);
317
310
  upb_strtable_insert3(
318
- &new_table,
319
- upb_strtable_iter_key(&i),
320
- upb_strtable_iter_keylength(&i),
321
- upb_strtable_iter_value(&i),
322
- a);
311
+ &new_table, key.data, key.size,
312
+ upb_strtable_iter_value(&i), a);
323
313
  }
324
314
  upb_strtable_uninit2(t, a);
325
315
  *t = new_table;
@@ -332,8 +322,6 @@ bool upb_strtable_insert3(upb_strtable *t, const char *k, size_t len,
332
322
  upb_tabkey tabkey;
333
323
  uint32_t hash;
334
324
 
335
- upb_check_alloc(&t->t, a);
336
-
337
325
  if (isfull(&t->t)) {
338
326
  /* Need to resize. New table of double the size, add old elements to it. */
339
327
  if (!upb_strtable_resize(t, t->t.size_lg2 + 1, a)) {
@@ -361,7 +349,10 @@ bool upb_strtable_remove3(upb_strtable *t, const char *key, size_t len,
361
349
  uint32_t hash = upb_murmur_hash2(key, len, 0);
362
350
  upb_tabkey tabkey;
363
351
  if (rm(&t->t, strkey2(key, len), val, &tabkey, hash, &streql)) {
364
- upb_free(alloc, (void*)tabkey);
352
+ if (alloc) {
353
+ /* Arena-based allocs don't need to free and won't pass this. */
354
+ upb_free(alloc, (void*)tabkey);
355
+ }
365
356
  return true;
366
357
  } else {
367
358
  return false;
@@ -370,10 +361,6 @@ bool upb_strtable_remove3(upb_strtable *t, const char *key, size_t len,
370
361
 
371
362
  /* Iteration */
372
363
 
373
- static const upb_tabent *str_tabent(const upb_strtable_iter *i) {
374
- return &i->t->t.entries[i->index];
375
- }
376
-
377
364
  void upb_strtable_begin(upb_strtable_iter *i, const upb_strtable *t) {
378
365
  i->t = t;
379
366
  i->index = begin(&t->t);
@@ -389,21 +376,18 @@ bool upb_strtable_done(const upb_strtable_iter *i) {
389
376
  upb_tabent_isempty(str_tabent(i));
390
377
  }
391
378
 
392
- const char *upb_strtable_iter_key(const upb_strtable_iter *i) {
393
- UPB_ASSERT(!upb_strtable_done(i));
394
- return upb_tabstr(str_tabent(i)->key, NULL);
395
- }
396
-
397
- size_t upb_strtable_iter_keylength(const upb_strtable_iter *i) {
379
+ upb_strview upb_strtable_iter_key(const upb_strtable_iter *i) {
380
+ upb_strview key;
398
381
  uint32_t len;
399
382
  UPB_ASSERT(!upb_strtable_done(i));
400
- upb_tabstr(str_tabent(i)->key, &len);
401
- return len;
383
+ key.data = upb_tabstr(str_tabent(i)->key, &len);
384
+ key.size = len;
385
+ return key;
402
386
  }
403
387
 
404
388
  upb_value upb_strtable_iter_value(const upb_strtable_iter *i) {
405
389
  UPB_ASSERT(!upb_strtable_done(i));
406
- return _upb_value_val(str_tabent(i)->val.val, i->t->t.ctype);
390
+ return _upb_value_val(str_tabent(i)->val.val);
407
391
  }
408
392
 
409
393
  void upb_strtable_iter_setdone(upb_strtable_iter *i) {
@@ -469,11 +453,11 @@ static void check(upb_inttable *t) {
469
453
  #endif
470
454
  }
471
455
 
472
- bool upb_inttable_sizedinit(upb_inttable *t, upb_ctype_t ctype,
473
- size_t asize, int hsize_lg2, upb_alloc *a) {
456
+ bool upb_inttable_sizedinit(upb_inttable *t, size_t asize, int hsize_lg2,
457
+ upb_alloc *a) {
474
458
  size_t array_bytes;
475
459
 
476
- if (!init(&t->t, ctype, hsize_lg2, a)) return false;
460
+ if (!init(&t->t, hsize_lg2, a)) return false;
477
461
  /* Always make the array part at least 1 long, so that we know key 0
478
462
  * won't be in the hash part, which simplifies things. */
479
463
  t->array_size = UPB_MAX(1, asize);
@@ -490,7 +474,8 @@ bool upb_inttable_sizedinit(upb_inttable *t, upb_ctype_t ctype,
490
474
  }
491
475
 
492
476
  bool upb_inttable_init2(upb_inttable *t, upb_ctype_t ctype, upb_alloc *a) {
493
- return upb_inttable_sizedinit(t, ctype, 0, 4, a);
477
+ UPB_UNUSED(ctype); /* TODO(haberman): rm */
478
+ return upb_inttable_sizedinit(t, 0, 4, a);
494
479
  }
495
480
 
496
481
  void upb_inttable_uninit2(upb_inttable *t, upb_alloc *a) {
@@ -504,8 +489,6 @@ bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val,
504
489
  tabval.val = val.val;
505
490
  UPB_ASSERT(upb_arrhas(tabval)); /* This will reject (uint64_t)-1. Fix this. */
506
491
 
507
- upb_check_alloc(&t->t, a);
508
-
509
492
  if (key < t->array_size) {
510
493
  UPB_ASSERT(!upb_arrhas(t->array[key]));
511
494
  t->array_count++;
@@ -516,7 +499,7 @@ bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val,
516
499
  size_t i;
517
500
  upb_table new_table;
518
501
 
519
- if (!init(&new_table, t->t.ctype, t->t.size_lg2 + 1, a)) {
502
+ if (!init(&new_table, t->t.size_lg2 + 1, a)) {
520
503
  return false;
521
504
  }
522
505
 
@@ -525,7 +508,7 @@ bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val,
525
508
  uint32_t hash;
526
509
  upb_value v;
527
510
 
528
- _upb_value_setval(&v, e->val.val, t->t.ctype);
511
+ _upb_value_setval(&v, e->val.val);
529
512
  hash = upb_inthash(e->key);
530
513
  insert(&new_table, intkey(e->key), e->key, v, hash, &inthash, &inteql);
531
514
  }
@@ -544,7 +527,7 @@ bool upb_inttable_insert2(upb_inttable *t, uintptr_t key, upb_value val,
544
527
  bool upb_inttable_lookup(const upb_inttable *t, uintptr_t key, upb_value *v) {
545
528
  const upb_tabval *table_v = inttable_val_const(t, key);
546
529
  if (!table_v) return false;
547
- if (v) _upb_value_setval(v, table_v->val, t->t.ctype);
530
+ if (v) _upb_value_setval(v, table_v->val);
548
531
  return true;
549
532
  }
550
533
 
@@ -562,7 +545,7 @@ bool upb_inttable_remove(upb_inttable *t, uintptr_t key, upb_value *val) {
562
545
  upb_tabval empty = UPB_TABVALUE_EMPTY_INIT;
563
546
  t->array_count--;
564
547
  if (val) {
565
- _upb_value_setval(val, t->array[key].val, t->t.ctype);
548
+ _upb_value_setval(val, t->array[key].val);
566
549
  }
567
550
  mutable_array(t)[key] = empty;
568
551
  success = true;
@@ -577,7 +560,6 @@ bool upb_inttable_remove(upb_inttable *t, uintptr_t key, upb_value *val) {
577
560
  }
578
561
 
579
562
  bool upb_inttable_push2(upb_inttable *t, upb_value val, upb_alloc *a) {
580
- upb_check_alloc(&t->t, a);
581
563
  return upb_inttable_insert2(t, upb_inttable_count(t), val, a);
582
564
  }
583
565
 
@@ -590,7 +572,6 @@ upb_value upb_inttable_pop(upb_inttable *t) {
590
572
 
591
573
  bool upb_inttable_insertptr2(upb_inttable *t, const void *key, upb_value val,
592
574
  upb_alloc *a) {
593
- upb_check_alloc(&t->t, a);
594
575
  return upb_inttable_insert2(t, (uintptr_t)key, val, a);
595
576
  }
596
577
 
@@ -615,8 +596,6 @@ void upb_inttable_compact2(upb_inttable *t, upb_alloc *a) {
615
596
  int size_lg2;
616
597
  upb_inttable new_t;
617
598
 
618
- upb_check_alloc(&t->t, a);
619
-
620
599
  upb_inttable_begin(&i, t);
621
600
  for (; !upb_inttable_done(&i); upb_inttable_next(&i)) {
622
601
  uintptr_t key = upb_inttable_iter_key(&i);
@@ -649,7 +628,7 @@ void upb_inttable_compact2(upb_inttable *t, upb_alloc *a) {
649
628
  size_t hash_size = hash_count ? (hash_count / MAX_LOAD) + 1 : 0;
650
629
  int hashsize_lg2 = log2ceil(hash_size);
651
630
 
652
- upb_inttable_sizedinit(&new_t, t->t.ctype, arr_size, hashsize_lg2, a);
631
+ upb_inttable_sizedinit(&new_t, arr_size, hashsize_lg2, a);
653
632
  upb_inttable_begin(&i, t);
654
633
  for (; !upb_inttable_done(&i); upb_inttable_next(&i)) {
655
634
  uintptr_t k = upb_inttable_iter_key(&i);
@@ -715,8 +694,7 @@ uintptr_t upb_inttable_iter_key(const upb_inttable_iter *i) {
715
694
  upb_value upb_inttable_iter_value(const upb_inttable_iter *i) {
716
695
  UPB_ASSERT(!upb_inttable_done(i));
717
696
  return _upb_value_val(
718
- i->array_part ? i->t->array[i->index].val : int_tabent(i)->val.val,
719
- i->t->t.ctype);
697
+ i->array_part ? i->t->array[i->index].val : int_tabent(i)->val.val);
720
698
  }
721
699
 
722
700
  void upb_inttable_iter_setdone(upb_inttable_iter *i) {
@@ -810,8 +788,8 @@ uint32_t upb_murmur_hash2(const void * key, size_t len, uint32_t seed) {
810
788
  int32_t sr;
811
789
 
812
790
  switch(align) {
813
- case 1: t |= data[2] << 16;
814
- case 2: t |= data[1] << 8;
791
+ case 1: t |= data[2] << 16; /* fallthrough */
792
+ case 2: t |= data[1] << 8; /* fallthrough */
815
793
  case 3: t |= data[0];
816
794
  }
817
795
 
@@ -849,9 +827,9 @@ uint32_t upb_murmur_hash2(const void * key, size_t len, uint32_t seed) {
849
827
  uint32_t k;
850
828
 
851
829
  switch(align) {
852
- case 3: d |= data[2] << 16;
853
- case 2: d |= data[1] << 8;
854
- case 1: d |= data[0];
830
+ case 3: d |= data[2] << 16; /* fallthrough */
831
+ case 2: d |= data[1] << 8; /* fallthrough */
832
+ case 1: d |= data[0]; /* fallthrough */
855
833
  }
856
834
 
857
835
  k = (t >> sr) | (d << sl);
@@ -864,15 +842,15 @@ uint32_t upb_murmur_hash2(const void * key, size_t len, uint32_t seed) {
864
842
  * Handle tail bytes */
865
843
 
866
844
  switch(len) {
867
- case 3: h ^= data[2] << 16;
868
- case 2: h ^= data[1] << 8;
869
- case 1: h ^= data[0]; h *= m;
845
+ case 3: h ^= data[2] << 16; /* fallthrough */
846
+ case 2: h ^= data[1] << 8; /* fallthrough */
847
+ case 1: h ^= data[0]; h *= m; /* fallthrough */
870
848
  };
871
849
  } else {
872
850
  switch(len) {
873
- case 3: d |= data[2] << 16;
874
- case 2: d |= data[1] << 8;
875
- case 1: d |= data[0];
851
+ case 3: d |= data[2] << 16; /* fallthrough */
852
+ case 2: d |= data[1] << 8; /* fallthrough */
853
+ case 1: d |= data[0]; /* fallthrough */
876
854
  case 0: h ^= (t >> sr) | (d << sl); h *= m;
877
855
  }
878
856
  }
@@ -896,8 +874,8 @@ uint32_t upb_murmur_hash2(const void * key, size_t len, uint32_t seed) {
896
874
  * Handle tail bytes */
897
875
 
898
876
  switch(len) {
899
- case 3: h ^= data[2] << 16;
900
- case 2: h ^= data[1] << 8;
877
+ case 3: h ^= data[2] << 16; /* fallthrough */
878
+ case 2: h ^= data[1] << 8; /* fallthrough */
901
879
  case 1: h ^= data[0]; h *= m;
902
880
  };
903
881