From b437dc0c6804132396fb5efff7f3ade399772611 Mon Sep 17 00:00:00 2001 From: Arjun Roy Date: Tue, 16 Jul 2019 14:11:21 -0700 Subject: [PATCH] Reduce instruction count for CH2 metadata ops. 1) Statically pre-compute static slice indices to save some ALU ops when linking batched metadata. 2) Change some asserts to debug_asserts since they can provably not be triggered with the current implementation. 3) Save some slice comparison cycles inside CH2 parsing. --- .../chttp2/transport/incoming_metadata.cc | 3 +- .../ext/transport/chttp2/transport/parsing.cc | 28 +- src/core/lib/slice/slice_internal.h | 11 + src/core/lib/transport/metadata_batch.cc | 2 +- src/core/lib/transport/static_metadata.cc | 1321 +++++++++-------- src/core/lib/transport/static_metadata.h | 24 +- tools/codegen/core/gen_static_metadata.py | 37 +- 7 files changed, 731 insertions(+), 695 deletions(-) diff --git a/src/core/ext/transport/chttp2/transport/incoming_metadata.cc b/src/core/ext/transport/chttp2/transport/incoming_metadata.cc index 02623c978d7..d04630d726b 100644 --- a/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +++ b/src/core/ext/transport/chttp2/transport/incoming_metadata.cc @@ -38,7 +38,8 @@ grpc_error* grpc_chttp2_incoming_metadata_buffer_add( storage = static_cast( buffer->arena->Alloc(sizeof(grpc_linked_mdelem))); } - return grpc_metadata_batch_add_tail(&buffer->batch, storage, elem); + storage->md = elem; + return grpc_metadata_batch_link_tail(&buffer->batch, storage); } grpc_error* grpc_chttp2_incoming_metadata_buffer_replace_or_add( diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc index 4e6ff60caf8..796f63573c0 100644 --- a/src/core/ext/transport/chttp2/transport/parsing.cc +++ b/src/core/ext/transport/chttp2/transport/parsing.cc @@ -108,7 +108,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, /* fallthrough */ dts_fh_0: case GRPC_DTS_FH_0: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_frame_size = (static_cast(*cur)) << 16; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_1; @@ -116,7 +116,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_1: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_frame_size |= (static_cast(*cur)) << 8; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_2; @@ -124,7 +124,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_2: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_frame_size |= *cur; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_3; @@ -132,7 +132,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_3: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_frame_type = *cur; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_4; @@ -140,7 +140,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_4: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_frame_flags = *cur; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_5; @@ -148,7 +148,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_5: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_stream_id = ((static_cast(*cur)) & 0x7f) << 24; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_6; @@ -156,7 +156,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_6: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_stream_id |= (static_cast(*cur)) << 16; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_7; @@ -164,7 +164,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_7: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_stream_id |= (static_cast(*cur)) << 8; if (++cur == end) { t->deframe_state = GRPC_DTS_FH_8; @@ -172,7 +172,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FH_8: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); t->incoming_stream_id |= (static_cast(*cur)); t->deframe_state = GRPC_DTS_FRAME; err = init_frame_parser(t); @@ -208,7 +208,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t, } /* fallthrough */ case GRPC_DTS_FRAME: - GPR_ASSERT(cur < end); + GPR_DEBUG_ASSERT(cur < end); if (static_cast(end - cur) == t->incoming_frame_size) { err = parse_frame_slice( t, @@ -425,7 +425,7 @@ static void on_initial_header(void* tp, grpc_mdelem md) { grpc_chttp2_transport* t = static_cast(tp); grpc_chttp2_stream* s = t->incoming_stream; - GPR_ASSERT(s != nullptr); + GPR_DEBUG_ASSERT(s != nullptr); if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) { char* key = grpc_slice_to_c_string(GRPC_MDKEY(md)); @@ -473,7 +473,7 @@ static void on_initial_header(void* tp, grpc_mdelem md) { const size_t metadata_size_limit = t->settings[GRPC_ACKED_SETTINGS] [GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE]; - if (new_size > metadata_size_limit) { + if (GPR_UNLIKELY(new_size > metadata_size_limit)) { gpr_log(GPR_DEBUG, "received initial metadata size exceeds limit (%" PRIuPTR " vs. %" PRIuPTR ")", @@ -504,7 +504,7 @@ static void on_trailing_header(void* tp, grpc_mdelem md) { grpc_chttp2_transport* t = static_cast(tp); grpc_chttp2_stream* s = t->incoming_stream; - GPR_ASSERT(s != nullptr); + GPR_DEBUG_ASSERT(s != nullptr); if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) { char* key = grpc_slice_to_c_string(GRPC_MDKEY(md)); @@ -627,7 +627,7 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t, } else { t->incoming_stream = s; } - GPR_ASSERT(s != nullptr); + GPR_DEBUG_ASSERT(s != nullptr); s->stats.incoming.framing_bytes += 9; if (GPR_UNLIKELY(s->read_closed)) { GRPC_CHTTP2_IF_TRACING(gpr_log( diff --git a/src/core/lib/slice/slice_internal.h b/src/core/lib/slice/slice_internal.h index 219266c3941..e61f57c01ab 100644 --- a/src/core/lib/slice/slice_internal.h +++ b/src/core/lib/slice/slice_internal.h @@ -174,6 +174,17 @@ struct grpc_slice_refcount { namespace grpc_core { +struct StaticSliceRefcount { + static grpc_slice_refcount kStaticSubRefcount; + + StaticSliceRefcount(uint32_t index) + : base(&kStaticSubRefcount, grpc_slice_refcount::Type::STATIC), + index(index) {} + + grpc_slice_refcount base; + uint32_t index; +}; + extern grpc_slice_refcount kNoopRefcount; struct InternedSliceRefcount { diff --git a/src/core/lib/transport/metadata_batch.cc b/src/core/lib/transport/metadata_batch.cc index 49a56e709d5..74356b2caf2 100644 --- a/src/core/lib/transport/metadata_batch.cc +++ b/src/core/lib/transport/metadata_batch.cc @@ -104,7 +104,7 @@ static grpc_error* maybe_link_callout(grpc_metadata_batch* batch, if (idx == GRPC_BATCH_CALLOUTS_COUNT) { return GRPC_ERROR_NONE; } - if (batch->idx.array[idx] == nullptr) { + if (GPR_LIKELY(batch->idx.array[idx] == nullptr)) { ++batch->list.default_count; batch->idx.array[idx] = storage; return GRPC_ERROR_NONE; diff --git a/src/core/lib/transport/static_metadata.cc b/src/core/lib/transport/static_metadata.cc index ec5db5515a7..3085348d9e5 100644 --- a/src/core/lib/transport/static_metadata.cc +++ b/src/core/lib/transport/static_metadata.cc @@ -116,330 +116,331 @@ static uint8_t g_bytes[] = { 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112}; -static grpc_slice_refcount static_sub_refcnt; -grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = { - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), - grpc_slice_refcount(&static_sub_refcnt, grpc_slice_refcount::Type::STATIC), +grpc_slice_refcount grpc_core::StaticSliceRefcount::kStaticSubRefcount; +grpc_core::StaticSliceRefcount + grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = { + grpc_core::StaticSliceRefcount(0), + grpc_core::StaticSliceRefcount(1), + grpc_core::StaticSliceRefcount(2), + grpc_core::StaticSliceRefcount(3), + grpc_core::StaticSliceRefcount(4), + grpc_core::StaticSliceRefcount(5), + grpc_core::StaticSliceRefcount(6), + grpc_core::StaticSliceRefcount(7), + grpc_core::StaticSliceRefcount(8), + grpc_core::StaticSliceRefcount(9), + grpc_core::StaticSliceRefcount(10), + grpc_core::StaticSliceRefcount(11), + grpc_core::StaticSliceRefcount(12), + grpc_core::StaticSliceRefcount(13), + grpc_core::StaticSliceRefcount(14), + grpc_core::StaticSliceRefcount(15), + grpc_core::StaticSliceRefcount(16), + grpc_core::StaticSliceRefcount(17), + grpc_core::StaticSliceRefcount(18), + grpc_core::StaticSliceRefcount(19), + grpc_core::StaticSliceRefcount(20), + grpc_core::StaticSliceRefcount(21), + grpc_core::StaticSliceRefcount(22), + grpc_core::StaticSliceRefcount(23), + grpc_core::StaticSliceRefcount(24), + grpc_core::StaticSliceRefcount(25), + grpc_core::StaticSliceRefcount(26), + grpc_core::StaticSliceRefcount(27), + grpc_core::StaticSliceRefcount(28), + grpc_core::StaticSliceRefcount(29), + grpc_core::StaticSliceRefcount(30), + grpc_core::StaticSliceRefcount(31), + grpc_core::StaticSliceRefcount(32), + grpc_core::StaticSliceRefcount(33), + grpc_core::StaticSliceRefcount(34), + grpc_core::StaticSliceRefcount(35), + grpc_core::StaticSliceRefcount(36), + grpc_core::StaticSliceRefcount(37), + grpc_core::StaticSliceRefcount(38), + grpc_core::StaticSliceRefcount(39), + grpc_core::StaticSliceRefcount(40), + grpc_core::StaticSliceRefcount(41), + grpc_core::StaticSliceRefcount(42), + grpc_core::StaticSliceRefcount(43), + grpc_core::StaticSliceRefcount(44), + grpc_core::StaticSliceRefcount(45), + grpc_core::StaticSliceRefcount(46), + grpc_core::StaticSliceRefcount(47), + grpc_core::StaticSliceRefcount(48), + grpc_core::StaticSliceRefcount(49), + grpc_core::StaticSliceRefcount(50), + grpc_core::StaticSliceRefcount(51), + grpc_core::StaticSliceRefcount(52), + grpc_core::StaticSliceRefcount(53), + grpc_core::StaticSliceRefcount(54), + grpc_core::StaticSliceRefcount(55), + grpc_core::StaticSliceRefcount(56), + grpc_core::StaticSliceRefcount(57), + grpc_core::StaticSliceRefcount(58), + grpc_core::StaticSliceRefcount(59), + grpc_core::StaticSliceRefcount(60), + grpc_core::StaticSliceRefcount(61), + grpc_core::StaticSliceRefcount(62), + grpc_core::StaticSliceRefcount(63), + grpc_core::StaticSliceRefcount(64), + grpc_core::StaticSliceRefcount(65), + grpc_core::StaticSliceRefcount(66), + grpc_core::StaticSliceRefcount(67), + grpc_core::StaticSliceRefcount(68), + grpc_core::StaticSliceRefcount(69), + grpc_core::StaticSliceRefcount(70), + grpc_core::StaticSliceRefcount(71), + grpc_core::StaticSliceRefcount(72), + grpc_core::StaticSliceRefcount(73), + grpc_core::StaticSliceRefcount(74), + grpc_core::StaticSliceRefcount(75), + grpc_core::StaticSliceRefcount(76), + grpc_core::StaticSliceRefcount(77), + grpc_core::StaticSliceRefcount(78), + grpc_core::StaticSliceRefcount(79), + grpc_core::StaticSliceRefcount(80), + grpc_core::StaticSliceRefcount(81), + grpc_core::StaticSliceRefcount(82), + grpc_core::StaticSliceRefcount(83), + grpc_core::StaticSliceRefcount(84), + grpc_core::StaticSliceRefcount(85), + grpc_core::StaticSliceRefcount(86), + grpc_core::StaticSliceRefcount(87), + grpc_core::StaticSliceRefcount(88), + grpc_core::StaticSliceRefcount(89), + grpc_core::StaticSliceRefcount(90), + grpc_core::StaticSliceRefcount(91), + grpc_core::StaticSliceRefcount(92), + grpc_core::StaticSliceRefcount(93), + grpc_core::StaticSliceRefcount(94), + grpc_core::StaticSliceRefcount(95), + grpc_core::StaticSliceRefcount(96), + grpc_core::StaticSliceRefcount(97), + grpc_core::StaticSliceRefcount(98), + grpc_core::StaticSliceRefcount(99), + grpc_core::StaticSliceRefcount(100), + grpc_core::StaticSliceRefcount(101), + grpc_core::StaticSliceRefcount(102), + grpc_core::StaticSliceRefcount(103), + grpc_core::StaticSliceRefcount(104), + grpc_core::StaticSliceRefcount(105), }; const grpc_core::StaticMetadataSlice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = { - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[0], 5, - g_bytes + 0), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1], 7, - g_bytes + 5), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[3], 10, - g_bytes + 19), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4], 7, - g_bytes + 29), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[5], 2, - g_bytes + 36), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[6], 12, - g_bytes + 38), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7], 11, - g_bytes + 50), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[8], 16, - g_bytes + 61), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9], 13, - g_bytes + 77), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[11], 21, - g_bytes + 110), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[12], 13, - g_bytes + 131), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[13], 14, - g_bytes + 144), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[14], 12, - g_bytes + 158), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15], 16, - g_bytes + 170), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16], 15, - g_bytes + 186), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[17], 30, - g_bytes + 201), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[18], 37, - g_bytes + 231), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[19], 10, - g_bytes + 268), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[20], 4, - g_bytes + 278), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[21], 26, - g_bytes + 282), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[22], 22, - g_bytes + 308), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[23], 12, - g_bytes + 330), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[24], 1, - g_bytes + 342), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[25], 1, - g_bytes + 343), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[26], 1, - g_bytes + 344), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[27], 1, - g_bytes + 345), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[29], 19, - g_bytes + 346), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[30], 12, - g_bytes + 365), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[31], 30, - g_bytes + 377), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[32], 31, - g_bytes + 407), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[33], 36, - g_bytes + 438), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[34], 28, - g_bytes + 474), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[35], 80, - g_bytes + 502), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[36], 7, - g_bytes + 582), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37], 4, - g_bytes + 589), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[38], 11, - g_bytes + 593), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[39], 3, - g_bytes + 604), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[40], 4, - g_bytes + 607), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[41], 1, - g_bytes + 611), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[42], 11, - g_bytes + 612), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[43], 4, - g_bytes + 623), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[44], 5, - g_bytes + 627), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[45], 3, - g_bytes + 632), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[46], 3, - g_bytes + 635), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[47], 3, - g_bytes + 638), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[48], 3, - g_bytes + 641), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[49], 3, - g_bytes + 644), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[50], 3, - g_bytes + 647), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[51], 3, - g_bytes + 650), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[52], 14, - g_bytes + 653), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[53], 13, - g_bytes + 667), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[54], 15, - g_bytes + 680), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[55], 13, - g_bytes + 695), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[56], 6, - g_bytes + 708), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[57], 27, - g_bytes + 714), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[58], 3, - g_bytes + 741), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[59], 5, - g_bytes + 744), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[60], 13, - g_bytes + 749), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[61], 13, - g_bytes + 762), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[62], 19, - g_bytes + 775), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[63], 16, - g_bytes + 794), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[64], 14, - g_bytes + 810), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[65], 16, - g_bytes + 824), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[66], 13, - g_bytes + 840), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[67], 6, - g_bytes + 853), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[68], 4, - g_bytes + 859), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[69], 4, - g_bytes + 863), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[70], 6, - g_bytes + 867), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[71], 7, - g_bytes + 873), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[72], 4, - g_bytes + 880), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[73], 8, - g_bytes + 884), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[74], 17, - g_bytes + 892), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[75], 13, - g_bytes + 909), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[76], 8, - g_bytes + 922), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[77], 19, - g_bytes + 930), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[78], 13, - g_bytes + 949), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[79], 4, - g_bytes + 962), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[80], 8, - g_bytes + 966), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[81], 12, - g_bytes + 974), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[82], 18, - g_bytes + 986), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[83], 19, - g_bytes + 1004), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[84], 5, - g_bytes + 1023), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[85], 7, - g_bytes + 1028), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[86], 7, - g_bytes + 1035), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[87], 11, - g_bytes + 1042), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[88], 6, - g_bytes + 1053), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[89], 10, - g_bytes + 1059), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[90], 25, - g_bytes + 1069), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[91], 17, - g_bytes + 1094), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[92], 4, - g_bytes + 1111), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[93], 3, - g_bytes + 1115), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[94], 16, - g_bytes + 1118), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[95], 1, - g_bytes + 1134), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96], 8, - g_bytes + 1135), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[97], 8, - g_bytes + 1143), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[98], 16, - g_bytes + 1151), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[99], 4, - g_bytes + 1167), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[100], 3, - g_bytes + 1171), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[101], 11, - g_bytes + 1174), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[102], 16, - g_bytes + 1185), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[103], 13, - g_bytes + 1201), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[104], 12, - g_bytes + 1214), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[105], 21, - g_bytes + 1226), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[0].base, + 5, g_bytes + 0), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1].base, + 7, g_bytes + 5), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[3].base, + 10, g_bytes + 19), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4].base, + 7, g_bytes + 29), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[5].base, + 2, g_bytes + 36), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[6].base, + 12, g_bytes + 38), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7].base, + 11, g_bytes + 50), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[8].base, + 16, g_bytes + 61), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9].base, + 13, g_bytes + 77), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[11].base, + 21, g_bytes + 110), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[12].base, + 13, g_bytes + 131), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[13].base, + 14, g_bytes + 144), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[14].base, + 12, g_bytes + 158), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15].base, + 16, g_bytes + 170), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16].base, + 15, g_bytes + 186), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[17].base, + 30, g_bytes + 201), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[18].base, + 37, g_bytes + 231), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[19].base, + 10, g_bytes + 268), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[20].base, + 4, g_bytes + 278), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[21].base, + 26, g_bytes + 282), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[22].base, + 22, g_bytes + 308), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[23].base, + 12, g_bytes + 330), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[24].base, + 1, g_bytes + 342), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[25].base, + 1, g_bytes + 343), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[26].base, + 1, g_bytes + 344), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[27].base, + 1, g_bytes + 345), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[29].base, + 19, g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[30].base, + 12, g_bytes + 365), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[31].base, + 30, g_bytes + 377), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[32].base, + 31, g_bytes + 407), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[33].base, + 36, g_bytes + 438), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[34].base, + 28, g_bytes + 474), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[35].base, + 80, g_bytes + 502), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[36].base, + 7, g_bytes + 582), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37].base, + 4, g_bytes + 589), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[38].base, + 11, g_bytes + 593), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[39].base, + 3, g_bytes + 604), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[40].base, + 4, g_bytes + 607), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[41].base, + 1, g_bytes + 611), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[42].base, + 11, g_bytes + 612), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[43].base, + 4, g_bytes + 623), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[44].base, + 5, g_bytes + 627), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[45].base, + 3, g_bytes + 632), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[46].base, + 3, g_bytes + 635), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[47].base, + 3, g_bytes + 638), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[48].base, + 3, g_bytes + 641), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[49].base, + 3, g_bytes + 644), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[50].base, + 3, g_bytes + 647), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[51].base, + 3, g_bytes + 650), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[52].base, + 14, g_bytes + 653), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[53].base, + 13, g_bytes + 667), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[54].base, + 15, g_bytes + 680), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[55].base, + 13, g_bytes + 695), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[56].base, + 6, g_bytes + 708), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[57].base, + 27, g_bytes + 714), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[58].base, + 3, g_bytes + 741), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[59].base, + 5, g_bytes + 744), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[60].base, + 13, g_bytes + 749), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[61].base, + 13, g_bytes + 762), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[62].base, + 19, g_bytes + 775), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[63].base, + 16, g_bytes + 794), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[64].base, + 14, g_bytes + 810), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[65].base, + 16, g_bytes + 824), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[66].base, + 13, g_bytes + 840), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[67].base, + 6, g_bytes + 853), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[68].base, + 4, g_bytes + 859), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[69].base, + 4, g_bytes + 863), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[70].base, + 6, g_bytes + 867), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[71].base, + 7, g_bytes + 873), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[72].base, + 4, g_bytes + 880), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[73].base, + 8, g_bytes + 884), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[74].base, + 17, g_bytes + 892), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[75].base, + 13, g_bytes + 909), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[76].base, + 8, g_bytes + 922), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[77].base, + 19, g_bytes + 930), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[78].base, + 13, g_bytes + 949), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[79].base, + 4, g_bytes + 962), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[80].base, + 8, g_bytes + 966), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[81].base, + 12, g_bytes + 974), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[82].base, + 18, g_bytes + 986), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[83].base, + 19, g_bytes + 1004), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[84].base, + 5, g_bytes + 1023), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[85].base, + 7, g_bytes + 1028), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[86].base, + 7, g_bytes + 1035), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[87].base, + 11, g_bytes + 1042), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[88].base, + 6, g_bytes + 1053), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[89].base, + 10, g_bytes + 1059), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[90].base, + 25, g_bytes + 1069), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[91].base, + 17, g_bytes + 1094), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[92].base, + 4, g_bytes + 1111), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[93].base, + 3, g_bytes + 1115), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[94].base, + 16, g_bytes + 1118), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[95].base, + 1, g_bytes + 1134), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96].base, + 8, g_bytes + 1135), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[97].base, + 8, g_bytes + 1143), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[98].base, + 16, g_bytes + 1151), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[99].base, + 4, g_bytes + 1167), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[100].base, 3, g_bytes + 1171), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[101].base, 11, g_bytes + 1174), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[102].base, 16, g_bytes + 1185), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[103].base, 13, g_bytes + 1201), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[104].base, 12, g_bytes + 1214), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[105].base, 21, g_bytes + 1226), }; /* Warning: the core static metadata currently operates under the soft @@ -937,514 +938,514 @@ grpc_mdelem grpc_static_mdelem_for_static_strings(intptr_t a, intptr_t b) { grpc_core::StaticMetadata grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = { grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[3], 10, - g_bytes + 19), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[3].base, + 10, g_bytes + 19), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 0), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1], 7, - g_bytes + 5), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[39], 3, - g_bytes + 604), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1].base, + 7, g_bytes + 5), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[39].base, + 3, g_bytes + 604), 1), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1], 7, - g_bytes + 5), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[40], 4, - g_bytes + 607), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1].base, + 7, g_bytes + 5), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[40].base, + 4, g_bytes + 607), 2), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[0], 5, - g_bytes + 0), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[41], 1, - g_bytes + 611), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[0].base, + 5, g_bytes + 0), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[41].base, + 1, g_bytes + 611), 3), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[0], 5, - g_bytes + 0), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[42], 11, - g_bytes + 612), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[0].base, + 5, g_bytes + 0), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[42].base, + 11, g_bytes + 612), 4), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4], 7, - g_bytes + 29), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[43], 4, - g_bytes + 623), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4].base, + 7, g_bytes + 29), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[43].base, + 4, g_bytes + 623), 5), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4], 7, - g_bytes + 29), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[44], 5, - g_bytes + 627), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4].base, + 7, g_bytes + 29), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[44].base, + 5, g_bytes + 627), 6), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[45], 3, - g_bytes + 632), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[45].base, + 3, g_bytes + 632), 7), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[46], 3, - g_bytes + 635), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[46].base, + 3, g_bytes + 635), 8), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[47], 3, - g_bytes + 638), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[47].base, + 3, g_bytes + 638), 9), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[48], 3, - g_bytes + 641), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[48].base, + 3, g_bytes + 641), 10), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[49], 3, - g_bytes + 644), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[49].base, + 3, g_bytes + 644), 11), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[50], 3, - g_bytes + 647), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[50].base, + 3, g_bytes + 647), 12), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2], 7, - g_bytes + 12), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[51], 3, - g_bytes + 650), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[2].base, + 7, g_bytes + 12), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[51].base, + 3, g_bytes + 650), 13), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[52], 14, - g_bytes + 653), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[52].base, + 14, g_bytes + 653), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 14), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16], 15, - g_bytes + 186), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[53], 13, - g_bytes + 667), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16].base, + 15, g_bytes + 186), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[53].base, + 13, g_bytes + 667), 15), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[54], 15, - g_bytes + 680), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[54].base, + 15, g_bytes + 680), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 16), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[55], 13, - g_bytes + 695), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[55].base, + 13, g_bytes + 695), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 17), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[56], 6, - g_bytes + 708), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[56].base, + 6, g_bytes + 708), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 18), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[57], 27, - g_bytes + 714), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[57].base, + 27, g_bytes + 714), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 19), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[58], 3, - g_bytes + 741), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[58].base, + 3, g_bytes + 741), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 20), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[59], 5, - g_bytes + 744), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[59].base, + 5, g_bytes + 744), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 21), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[60], 13, - g_bytes + 749), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[60].base, + 13, g_bytes + 749), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 22), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[61], 13, - g_bytes + 762), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[61].base, + 13, g_bytes + 762), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 23), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[62], 19, - g_bytes + 775), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[62].base, + 19, g_bytes + 775), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 24), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15], 16, - g_bytes + 170), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15].base, + 16, g_bytes + 170), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 25), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[63], 16, - g_bytes + 794), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[63].base, + 16, g_bytes + 794), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 26), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[64], 14, - g_bytes + 810), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[64].base, + 14, g_bytes + 810), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 27), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[65], 16, - g_bytes + 824), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[65].base, + 16, g_bytes + 824), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 28), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[66], 13, - g_bytes + 840), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[66].base, + 13, g_bytes + 840), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 29), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[14], 12, - g_bytes + 158), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[14].base, + 12, g_bytes + 158), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 30), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[67], 6, - g_bytes + 853), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[67].base, + 6, g_bytes + 853), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 31), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[68], 4, - g_bytes + 859), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[68].base, + 4, g_bytes + 859), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 32), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[69], 4, - g_bytes + 863), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[69].base, + 4, g_bytes + 863), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 33), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[70], 6, - g_bytes + 867), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[70].base, + 6, g_bytes + 867), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 34), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[71], 7, - g_bytes + 873), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[71].base, + 7, g_bytes + 873), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 35), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[72], 4, - g_bytes + 880), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[72].base, + 4, g_bytes + 880), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 36), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[20], 4, - g_bytes + 278), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[20].base, + 4, g_bytes + 278), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 37), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[73], 8, - g_bytes + 884), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[73].base, + 8, g_bytes + 884), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 38), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[74], 17, - g_bytes + 892), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[74].base, + 17, g_bytes + 892), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 39), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[75], 13, - g_bytes + 909), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[75].base, + 13, g_bytes + 909), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 40), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[76], 8, - g_bytes + 922), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[76].base, + 8, g_bytes + 922), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 41), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[77], 19, - g_bytes + 930), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[77].base, + 19, g_bytes + 930), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 42), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[78], 13, - g_bytes + 949), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[78].base, + 13, g_bytes + 949), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 43), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[79], 4, - g_bytes + 962), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[79].base, + 4, g_bytes + 962), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 44), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[80], 8, - g_bytes + 966), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[80].base, + 8, g_bytes + 966), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 45), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[81], 12, - g_bytes + 974), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[81].base, + 12, g_bytes + 974), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 46), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[82], 18, - g_bytes + 986), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[82].base, + 18, g_bytes + 986), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 47), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[83], 19, - g_bytes + 1004), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[83].base, + 19, g_bytes + 1004), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 48), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[84], 5, - g_bytes + 1023), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[84].base, + 5, g_bytes + 1023), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 49), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[85], 7, - g_bytes + 1028), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[85].base, + 7, g_bytes + 1028), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 50), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[86], 7, - g_bytes + 1035), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[86].base, + 7, g_bytes + 1035), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 51), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[87], 11, - g_bytes + 1042), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[87].base, + 11, g_bytes + 1042), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 52), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[88], 6, - g_bytes + 1053), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[88].base, + 6, g_bytes + 1053), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 53), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[89], 10, - g_bytes + 1059), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[89].base, + 10, g_bytes + 1059), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 54), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[90], 25, - g_bytes + 1069), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[90].base, + 25, g_bytes + 1069), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 55), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[91], 17, - g_bytes + 1094), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[91].base, + 17, g_bytes + 1094), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 56), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[19], 10, - g_bytes + 268), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[19].base, + 10, g_bytes + 268), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 57), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[92], 4, - g_bytes + 1111), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[92].base, + 4, g_bytes + 1111), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 58), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[93], 3, - g_bytes + 1115), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[93].base, + 3, g_bytes + 1115), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 59), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[94], 16, - g_bytes + 1118), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[94].base, + 16, g_bytes + 1118), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 60), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7], 11, - g_bytes + 50), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[95], 1, - g_bytes + 1134), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7].base, + 11, g_bytes + 50), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[95].base, + 1, g_bytes + 1134), 61), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7], 11, - g_bytes + 50), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[24], 1, - g_bytes + 342), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7].base, + 11, g_bytes + 50), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[24].base, + 1, g_bytes + 342), 62), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7], 11, - g_bytes + 50), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[25], 1, - g_bytes + 343), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[7].base, + 11, g_bytes + 50), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[25].base, + 1, g_bytes + 343), 63), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9], 13, - g_bytes + 77), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96], 8, - g_bytes + 1135), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9].base, + 13, g_bytes + 77), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96].base, + 8, g_bytes + 1135), 64), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9], 13, - g_bytes + 77), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37], 4, - g_bytes + 589), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9].base, + 13, g_bytes + 77), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37].base, + 4, g_bytes + 589), 65), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9], 13, - g_bytes + 77), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[36], 7, - g_bytes + 582), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[9].base, + 13, g_bytes + 77), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[36].base, + 7, g_bytes + 582), 66), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[5], 2, - g_bytes + 36), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[97], 8, - g_bytes + 1143), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[5].base, + 2, g_bytes + 36), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[97].base, + 8, g_bytes + 1143), 67), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[14], 12, - g_bytes + 158), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[98], 16, - g_bytes + 1151), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[14].base, + 12, g_bytes + 158), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[98].base, + 16, g_bytes + 1151), 68), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4], 7, - g_bytes + 29), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[99], 4, - g_bytes + 1167), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[4].base, + 7, g_bytes + 29), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[99].base, + 4, g_bytes + 1167), 69), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1], 7, - g_bytes + 5), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[100], 3, - g_bytes + 1171), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[1].base, + 7, g_bytes + 5), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[100].base, 3, g_bytes + 1171), 70), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16], 15, - g_bytes + 186), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16].base, + 15, g_bytes + 186), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 71), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15], 16, - g_bytes + 170), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96], 8, - g_bytes + 1135), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15].base, + 16, g_bytes + 170), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96].base, + 8, g_bytes + 1135), 72), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15], 16, - g_bytes + 170), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37], 4, - g_bytes + 589), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[15].base, + 16, g_bytes + 170), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37].base, + 4, g_bytes + 589), 73), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[101], 11, - g_bytes + 1174), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28], 0, - g_bytes + 346), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[101].base, 11, g_bytes + 1174), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[28].base, + 0, g_bytes + 346), 74), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96], 8, - g_bytes + 1135), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96].base, + 8, g_bytes + 1135), 75), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[36], 7, - g_bytes + 582), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[36].base, + 7, g_bytes + 582), 76), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[102], 16, - g_bytes + 1185), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[102].base, 16, g_bytes + 1185), 77), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37], 4, - g_bytes + 589), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37].base, + 4, g_bytes + 589), 78), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[103], 13, - g_bytes + 1201), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[103].base, 13, g_bytes + 1201), 79), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[104], 12, - g_bytes + 1214), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[104].base, 12, g_bytes + 1214), 80), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10], 20, - g_bytes + 90), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[105], 21, - g_bytes + 1226), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[10].base, + 20, g_bytes + 90), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[105].base, 21, g_bytes + 1226), 81), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16], 15, - g_bytes + 186), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96], 8, - g_bytes + 1135), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16].base, + 15, g_bytes + 186), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[96].base, + 8, g_bytes + 1135), 82), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16], 15, - g_bytes + 186), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37], 4, - g_bytes + 589), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16].base, + 15, g_bytes + 186), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[37].base, + 4, g_bytes + 589), 83), grpc_core::StaticMetadata( - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16], 15, - g_bytes + 186), - grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[103], 13, - g_bytes + 1201), + grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[16].base, + 15, g_bytes + 186), + grpc_core::StaticMetadataSlice( + &grpc_static_metadata_refcounts[103].base, 13, g_bytes + 1201), 84), }; const uint8_t grpc_static_accept_encoding_metadata[8] = {0, 75, 76, 77, diff --git a/src/core/lib/transport/static_metadata.h b/src/core/lib/transport/static_metadata.h index 7c05b27cc07..30082985b5c 100644 --- a/src/core/lib/transport/static_metadata.h +++ b/src/core/lib/transport/static_metadata.h @@ -260,15 +260,18 @@ extern const grpc_core::StaticMetadataSlice #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \ (grpc_static_slice_table[105]) -extern grpc_slice_refcount +namespace grpc_core { +struct StaticSliceRefcount; +} +extern grpc_core::StaticSliceRefcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT]; #define GRPC_IS_STATIC_METADATA_STRING(slice) \ ((slice).refcount != NULL && \ (slice).refcount->GetType() == grpc_slice_refcount::Type::STATIC) -#define GRPC_STATIC_METADATA_INDEX(static_slice) \ - (static_cast( \ - ((static_slice).refcount - grpc_static_metadata_refcounts))) +#define GRPC_STATIC_METADATA_INDEX(static_slice) \ + (reinterpret_cast((static_slice).refcount) \ + ->index) #define GRPC_STATIC_MDELEM_COUNT 85 extern grpc_core::StaticMetadata @@ -519,11 +522,14 @@ typedef union { } named; } grpc_metadata_batch_callouts; -#define GRPC_BATCH_INDEX_OF(slice) \ - (GRPC_IS_STATIC_METADATA_STRING((slice)) \ - ? static_cast( \ - GPR_CLAMP(GRPC_STATIC_METADATA_INDEX((slice)), 0, \ - static_cast(GRPC_BATCH_CALLOUTS_COUNT))) \ +#define GRPC_BATCH_INDEX_OF(slice) \ + (GRPC_IS_STATIC_METADATA_STRING((slice)) && \ + reinterpret_cast((slice).refcount) \ + ->index <= static_cast(GRPC_BATCH_CALLOUTS_COUNT) \ + ? static_cast( \ + reinterpret_cast( \ + (slice).refcount) \ + ->index) \ : GRPC_BATCH_CALLOUTS_COUNT) extern const uint8_t grpc_static_accept_encoding_metadata[8]; diff --git a/tools/codegen/core/gen_static_metadata.py b/tools/codegen/core/gen_static_metadata.py index 213efd22346..fd1d9cbfb49 100755 --- a/tools/codegen/core/gen_static_metadata.py +++ b/tools/codegen/core/gen_static_metadata.py @@ -393,7 +393,7 @@ for i, elem in enumerate(all_strs): def slice_def(i): return ( - 'grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[%d], %d, g_bytes+%d)' + 'grpc_core::StaticMetadataSlice(&grpc_static_metadata_refcounts[%d].base, %d, g_bytes+%d)' ) % (i, len(all_strs[i]), id2strofs[i]) @@ -416,14 +416,14 @@ print >> H print >> C, 'static uint8_t g_bytes[] = {%s};' % (','.join( '%d' % ord(c) for c in ''.join(all_strs))) print >> C -print >> C, ('static grpc_slice_refcount static_sub_refcnt;') -print >> H, ('extern grpc_slice_refcount ' +print >> H, ('namespace grpc_core { struct StaticSliceRefcount; }') +print >> H, ('extern grpc_core::StaticSliceRefcount ' 'grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT];') -print >> C, ('grpc_slice_refcount ' +print >> C, 'grpc_slice_refcount grpc_core::StaticSliceRefcount::kStaticSubRefcount;' +print >> C, ('grpc_core::StaticSliceRefcount ' 'grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = {') for i, elem in enumerate(all_strs): - print >> C, (' grpc_slice_refcount(&static_sub_refcnt, ' - 'grpc_slice_refcount::Type::STATIC), ') + print >> C, ' grpc_core::StaticSliceRefcount(%d), ' % i print >> C, '};' print >> C print >> H, '#define GRPC_IS_STATIC_METADATA_STRING(slice) \\' @@ -438,8 +438,7 @@ for i, elem in enumerate(all_strs): print >> C, '};' print >> C print >> H, '#define GRPC_STATIC_METADATA_INDEX(static_slice) \\' -print >> H, (' (static_cast(((static_slice).refcount - ' - 'grpc_static_metadata_refcounts)))') +print >> H, '(reinterpret_cast((static_slice).refcount)->index)' print >> H print >> D, '# hpack fuzzing dictionary' @@ -598,8 +597,26 @@ for elem in METADATA_BATCH_CALLOUTS: print >> H, ' } named;' print >> H, '} grpc_metadata_batch_callouts;' print >> H -print >> H, '#define GRPC_BATCH_INDEX_OF(slice) \\' -print >> H, ' (GRPC_IS_STATIC_METADATA_STRING((slice)) ? static_cast(GPR_CLAMP(GRPC_STATIC_METADATA_INDEX((slice)), 0, static_cast(GRPC_BATCH_CALLOUTS_COUNT))) : GRPC_BATCH_CALLOUTS_COUNT)' + +batch_idx_of_hdr = '#define GRPC_BATCH_INDEX_OF(slice) \\' +static_slice = 'GRPC_IS_STATIC_METADATA_STRING((slice))' +slice_to_slice_ref = '(slice).refcount' +static_slice_ref_type = 'grpc_core::StaticSliceRefcount*' +slice_ref_as_static = ('reinterpret_cast<' + static_slice_ref_type + '>(' + + slice_to_slice_ref + ')') +slice_ref_idx = slice_ref_as_static + '->index' +batch_idx_type = 'grpc_metadata_batch_callouts_index' +slice_ref_idx_to_batch_idx = ( + 'static_cast<' + batch_idx_type + '>(' + slice_ref_idx + ')') +batch_invalid_idx = 'GRPC_BATCH_CALLOUTS_COUNT' +batch_invalid_u32 = 'static_cast(' + batch_invalid_idx + ')' +# Assemble GRPC_BATCH_INDEX_OF(slice) macro as a join for ease of reading. +batch_idx_of_pieces = [ + batch_idx_of_hdr, '\n', '(', static_slice, '&&', slice_ref_idx, '<=', + batch_invalid_u32, '?', slice_ref_idx_to_batch_idx, ':', batch_invalid_idx, + ')' +] +print >> H, ''.join(batch_idx_of_pieces) print >> H print >> H, 'extern const uint8_t grpc_static_accept_encoding_metadata[%d];' % (