diff --git a/include/grpc/impl/codegen/slice.h b/include/grpc/impl/codegen/slice.h index fbd18e6c65b495b1530b9786c5e73ba943d6666f..45902c69093cf9fc2373def7b315243acadfd0f1 100644 --- a/include/grpc/impl/codegen/slice.h +++ b/include/grpc/impl/codegen/slice.h @@ -68,6 +68,11 @@ typedef struct grpc_slice_refcount_vtable { grpc_slice_new, or grpc_slice_new_with_len instead. */ typedef struct grpc_slice_refcount { const grpc_slice_refcount_vtable *vtable; + /* If a subset of this slice is taken, use this pointer for the refcount. + Typically points back to the refcount itself, however iterning + implementations can use this to avoid a verification step on each hash + or equality check */ + struct grpc_slice_refcount *sub_refcount; } grpc_slice_refcount; #define GRPC_SLICE_INLINED_SIZE (sizeof(size_t) + sizeof(uint8_t *) - 1) diff --git a/src/core/ext/transport/chttp2/transport/hpack_encoder.c b/src/core/ext/transport/chttp2/transport/hpack_encoder.c index eb19bd7c2d0b6dd057ae1f16851a255fa193ae04..2eb0c51bdc4d4fe36b8e491f2d5812325fa9ff36 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_encoder.c +++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.c @@ -65,7 +65,7 @@ /* don't consider adding anything bigger than this to the hpack table */ #define MAX_DECODER_SPACE_USAGE 512 -static grpc_slice_refcount terminal_slice_refcount = {NULL}; +static grpc_slice_refcount terminal_slice_refcount = {NULL, NULL}; static const grpc_slice terminal_slice = {&terminal_slice_refcount, .data.refcounted = {0, 0}}; diff --git a/src/core/lib/slice/slice.c b/src/core/lib/slice/slice.c index 2ae97b3035f99af7af4c9e66b75d3868caf702bf..8188ba9b03d36a5181a6796b8d7abe03c093284e 100644 --- a/src/core/lib/slice/slice.c +++ b/src/core/lib/slice/slice.c @@ -81,7 +81,8 @@ static void noop_unref(grpc_exec_ctx *exec_ctx, void *unused) {} static const grpc_slice_refcount_vtable noop_refcount_vtable = { noop_ref, noop_unref, grpc_slice_default_eq_impl, grpc_slice_default_hash_impl}; -static grpc_slice_refcount noop_refcount = {&noop_refcount_vtable}; +static grpc_slice_refcount noop_refcount = {&noop_refcount_vtable, + &noop_refcount}; grpc_slice grpc_slice_from_static_buffer(const void *s, size_t len) { grpc_slice slice; diff --git a/src/core/lib/transport/static_metadata.c b/src/core/lib/transport/static_metadata.c index 5232bd7a98cdf127a91656efb3e6e41508f7eeb5..13a0fa37e054e3ed0b1c947466a3305a7a2f5c8f 100644 --- a/src/core/lib/transport/static_metadata.c +++ b/src/core/lib/transport/static_metadata.c @@ -116,178 +116,313 @@ static uint8_t g_bytes[] = { static void static_ref(void *unused) {} static void static_unref(grpc_exec_ctx *exec_ctx, void *unused) {} -static const grpc_slice_refcount_vtable static_vtable = { +static const grpc_slice_refcount_vtable static_sub_vtable = { + static_ref, static_unref, grpc_slice_default_eq_impl, + grpc_slice_default_hash_impl}; +const grpc_slice_refcount_vtable grpc_static_metadata_vtable = { static_ref, static_unref, grpc_static_slice_eq, grpc_static_slice_hash}; -typedef struct { - grpc_slice_refcount base; - const uint16_t offset; - const uint16_t length; -} static_slice_refcount; -static static_slice_refcount g_refcnts[GRPC_STATIC_MDSTR_COUNT] = { - {{&static_vtable}, 0, 5}, {{&static_vtable}, 5, 7}, - {{&static_vtable}, 12, 7}, {{&static_vtable}, 19, 10}, - {{&static_vtable}, 29, 7}, {{&static_vtable}, 36, 2}, - {{&static_vtable}, 38, 12}, {{&static_vtable}, 50, 11}, - {{&static_vtable}, 61, 16}, {{&static_vtable}, 77, 13}, - {{&static_vtable}, 90, 20}, {{&static_vtable}, 110, 12}, - {{&static_vtable}, 122, 30}, {{&static_vtable}, 152, 10}, - {{&static_vtable}, 162, 4}, {{&static_vtable}, 166, 8}, - {{&static_vtable}, 174, 11}, {{&static_vtable}, 185, 12}, - {{&static_vtable}, 197, 16}, {{&static_vtable}, 213, 14}, - {{&static_vtable}, 227, 0}, {{&static_vtable}, 227, 19}, - {{&static_vtable}, 246, 12}, {{&static_vtable}, 258, 30}, - {{&static_vtable}, 288, 31}, {{&static_vtable}, 319, 36}, - {{&static_vtable}, 355, 1}, {{&static_vtable}, 356, 1}, - {{&static_vtable}, 357, 1}, {{&static_vtable}, 358, 8}, - {{&static_vtable}, 366, 4}, {{&static_vtable}, 370, 7}, - {{&static_vtable}, 377, 8}, {{&static_vtable}, 385, 16}, - {{&static_vtable}, 401, 4}, {{&static_vtable}, 405, 3}, - {{&static_vtable}, 408, 3}, {{&static_vtable}, 411, 4}, - {{&static_vtable}, 415, 5}, {{&static_vtable}, 420, 4}, - {{&static_vtable}, 424, 3}, {{&static_vtable}, 427, 3}, - {{&static_vtable}, 430, 1}, {{&static_vtable}, 431, 11}, - {{&static_vtable}, 442, 3}, {{&static_vtable}, 445, 3}, - {{&static_vtable}, 448, 3}, {{&static_vtable}, 451, 3}, - {{&static_vtable}, 454, 3}, {{&static_vtable}, 457, 14}, - {{&static_vtable}, 471, 15}, {{&static_vtable}, 486, 13}, - {{&static_vtable}, 499, 15}, {{&static_vtable}, 514, 13}, - {{&static_vtable}, 527, 6}, {{&static_vtable}, 533, 27}, - {{&static_vtable}, 560, 3}, {{&static_vtable}, 563, 5}, - {{&static_vtable}, 568, 13}, {{&static_vtable}, 581, 13}, - {{&static_vtable}, 594, 19}, {{&static_vtable}, 613, 16}, - {{&static_vtable}, 629, 16}, {{&static_vtable}, 645, 14}, - {{&static_vtable}, 659, 16}, {{&static_vtable}, 675, 13}, - {{&static_vtable}, 688, 6}, {{&static_vtable}, 694, 4}, - {{&static_vtable}, 698, 4}, {{&static_vtable}, 702, 6}, - {{&static_vtable}, 708, 7}, {{&static_vtable}, 715, 4}, - {{&static_vtable}, 719, 8}, {{&static_vtable}, 727, 17}, - {{&static_vtable}, 744, 13}, {{&static_vtable}, 757, 8}, - {{&static_vtable}, 765, 19}, {{&static_vtable}, 784, 13}, - {{&static_vtable}, 797, 4}, {{&static_vtable}, 801, 8}, - {{&static_vtable}, 809, 12}, {{&static_vtable}, 821, 18}, - {{&static_vtable}, 839, 19}, {{&static_vtable}, 858, 5}, - {{&static_vtable}, 863, 7}, {{&static_vtable}, 870, 7}, - {{&static_vtable}, 877, 11}, {{&static_vtable}, 888, 6}, - {{&static_vtable}, 894, 10}, {{&static_vtable}, 904, 25}, - {{&static_vtable}, 929, 17}, {{&static_vtable}, 946, 4}, - {{&static_vtable}, 950, 3}, {{&static_vtable}, 953, 16}, - {{&static_vtable}, 969, 16}, {{&static_vtable}, 985, 13}, - {{&static_vtable}, 998, 12}, {{&static_vtable}, 1010, 21}, +static grpc_slice_refcount static_sub_refcnt = {&static_sub_vtable, + &static_sub_refcnt}; +grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = { + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, + {&grpc_static_metadata_vtable, &static_sub_refcnt}, }; -bool grpc_is_static_metadata_string(grpc_slice slice) { - return slice.refcount != NULL && slice.refcount->vtable == &static_vtable; -} - const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = { - {.refcount = &g_refcnts[0].base, .data.refcounted = {g_bytes + 0, 5}}, - {.refcount = &g_refcnts[1].base, .data.refcounted = {g_bytes + 5, 7}}, - {.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[3].base, .data.refcounted = {g_bytes + 19, 10}}, - {.refcount = &g_refcnts[4].base, .data.refcounted = {g_bytes + 29, 7}}, - {.refcount = &g_refcnts[5].base, .data.refcounted = {g_bytes + 36, 2}}, - {.refcount = &g_refcnts[6].base, .data.refcounted = {g_bytes + 38, 12}}, - {.refcount = &g_refcnts[7].base, .data.refcounted = {g_bytes + 50, 11}}, - {.refcount = &g_refcnts[8].base, .data.refcounted = {g_bytes + 61, 16}}, - {.refcount = &g_refcnts[9].base, .data.refcounted = {g_bytes + 77, 13}}, - {.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[11].base, .data.refcounted = {g_bytes + 110, 12}}, - {.refcount = &g_refcnts[12].base, .data.refcounted = {g_bytes + 122, 30}}, - {.refcount = &g_refcnts[13].base, .data.refcounted = {g_bytes + 152, 10}}, - {.refcount = &g_refcnts[14].base, .data.refcounted = {g_bytes + 162, 4}}, - {.refcount = &g_refcnts[15].base, .data.refcounted = {g_bytes + 166, 8}}, - {.refcount = &g_refcnts[16].base, .data.refcounted = {g_bytes + 174, 11}}, - {.refcount = &g_refcnts[17].base, .data.refcounted = {g_bytes + 185, 12}}, - {.refcount = &g_refcnts[18].base, .data.refcounted = {g_bytes + 197, 16}}, - {.refcount = &g_refcnts[19].base, .data.refcounted = {g_bytes + 213, 14}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}, - {.refcount = &g_refcnts[21].base, .data.refcounted = {g_bytes + 227, 19}}, - {.refcount = &g_refcnts[22].base, .data.refcounted = {g_bytes + 246, 12}}, - {.refcount = &g_refcnts[23].base, .data.refcounted = {g_bytes + 258, 30}}, - {.refcount = &g_refcnts[24].base, .data.refcounted = {g_bytes + 288, 31}}, - {.refcount = &g_refcnts[25].base, .data.refcounted = {g_bytes + 319, 36}}, - {.refcount = &g_refcnts[26].base, .data.refcounted = {g_bytes + 355, 1}}, - {.refcount = &g_refcnts[27].base, .data.refcounted = {g_bytes + 356, 1}}, - {.refcount = &g_refcnts[28].base, .data.refcounted = {g_bytes + 357, 1}}, - {.refcount = &g_refcnts[29].base, .data.refcounted = {g_bytes + 358, 8}}, - {.refcount = &g_refcnts[30].base, .data.refcounted = {g_bytes + 366, 4}}, - {.refcount = &g_refcnts[31].base, .data.refcounted = {g_bytes + 370, 7}}, - {.refcount = &g_refcnts[32].base, .data.refcounted = {g_bytes + 377, 8}}, - {.refcount = &g_refcnts[33].base, .data.refcounted = {g_bytes + 385, 16}}, - {.refcount = &g_refcnts[34].base, .data.refcounted = {g_bytes + 401, 4}}, - {.refcount = &g_refcnts[35].base, .data.refcounted = {g_bytes + 405, 3}}, - {.refcount = &g_refcnts[36].base, .data.refcounted = {g_bytes + 408, 3}}, - {.refcount = &g_refcnts[37].base, .data.refcounted = {g_bytes + 411, 4}}, - {.refcount = &g_refcnts[38].base, .data.refcounted = {g_bytes + 415, 5}}, - {.refcount = &g_refcnts[39].base, .data.refcounted = {g_bytes + 420, 4}}, - {.refcount = &g_refcnts[40].base, .data.refcounted = {g_bytes + 424, 3}}, - {.refcount = &g_refcnts[41].base, .data.refcounted = {g_bytes + 427, 3}}, - {.refcount = &g_refcnts[42].base, .data.refcounted = {g_bytes + 430, 1}}, - {.refcount = &g_refcnts[43].base, .data.refcounted = {g_bytes + 431, 11}}, - {.refcount = &g_refcnts[44].base, .data.refcounted = {g_bytes + 442, 3}}, - {.refcount = &g_refcnts[45].base, .data.refcounted = {g_bytes + 445, 3}}, - {.refcount = &g_refcnts[46].base, .data.refcounted = {g_bytes + 448, 3}}, - {.refcount = &g_refcnts[47].base, .data.refcounted = {g_bytes + 451, 3}}, - {.refcount = &g_refcnts[48].base, .data.refcounted = {g_bytes + 454, 3}}, - {.refcount = &g_refcnts[49].base, .data.refcounted = {g_bytes + 457, 14}}, - {.refcount = &g_refcnts[50].base, .data.refcounted = {g_bytes + 471, 15}}, - {.refcount = &g_refcnts[51].base, .data.refcounted = {g_bytes + 486, 13}}, - {.refcount = &g_refcnts[52].base, .data.refcounted = {g_bytes + 499, 15}}, - {.refcount = &g_refcnts[53].base, .data.refcounted = {g_bytes + 514, 13}}, - {.refcount = &g_refcnts[54].base, .data.refcounted = {g_bytes + 527, 6}}, - {.refcount = &g_refcnts[55].base, .data.refcounted = {g_bytes + 533, 27}}, - {.refcount = &g_refcnts[56].base, .data.refcounted = {g_bytes + 560, 3}}, - {.refcount = &g_refcnts[57].base, .data.refcounted = {g_bytes + 563, 5}}, - {.refcount = &g_refcnts[58].base, .data.refcounted = {g_bytes + 568, 13}}, - {.refcount = &g_refcnts[59].base, .data.refcounted = {g_bytes + 581, 13}}, - {.refcount = &g_refcnts[60].base, .data.refcounted = {g_bytes + 594, 19}}, - {.refcount = &g_refcnts[61].base, .data.refcounted = {g_bytes + 613, 16}}, - {.refcount = &g_refcnts[62].base, .data.refcounted = {g_bytes + 629, 16}}, - {.refcount = &g_refcnts[63].base, .data.refcounted = {g_bytes + 645, 14}}, - {.refcount = &g_refcnts[64].base, .data.refcounted = {g_bytes + 659, 16}}, - {.refcount = &g_refcnts[65].base, .data.refcounted = {g_bytes + 675, 13}}, - {.refcount = &g_refcnts[66].base, .data.refcounted = {g_bytes + 688, 6}}, - {.refcount = &g_refcnts[67].base, .data.refcounted = {g_bytes + 694, 4}}, - {.refcount = &g_refcnts[68].base, .data.refcounted = {g_bytes + 698, 4}}, - {.refcount = &g_refcnts[69].base, .data.refcounted = {g_bytes + 702, 6}}, - {.refcount = &g_refcnts[70].base, .data.refcounted = {g_bytes + 708, 7}}, - {.refcount = &g_refcnts[71].base, .data.refcounted = {g_bytes + 715, 4}}, - {.refcount = &g_refcnts[72].base, .data.refcounted = {g_bytes + 719, 8}}, - {.refcount = &g_refcnts[73].base, .data.refcounted = {g_bytes + 727, 17}}, - {.refcount = &g_refcnts[74].base, .data.refcounted = {g_bytes + 744, 13}}, - {.refcount = &g_refcnts[75].base, .data.refcounted = {g_bytes + 757, 8}}, - {.refcount = &g_refcnts[76].base, .data.refcounted = {g_bytes + 765, 19}}, - {.refcount = &g_refcnts[77].base, .data.refcounted = {g_bytes + 784, 13}}, - {.refcount = &g_refcnts[78].base, .data.refcounted = {g_bytes + 797, 4}}, - {.refcount = &g_refcnts[79].base, .data.refcounted = {g_bytes + 801, 8}}, - {.refcount = &g_refcnts[80].base, .data.refcounted = {g_bytes + 809, 12}}, - {.refcount = &g_refcnts[81].base, .data.refcounted = {g_bytes + 821, 18}}, - {.refcount = &g_refcnts[82].base, .data.refcounted = {g_bytes + 839, 19}}, - {.refcount = &g_refcnts[83].base, .data.refcounted = {g_bytes + 858, 5}}, - {.refcount = &g_refcnts[84].base, .data.refcounted = {g_bytes + 863, 7}}, - {.refcount = &g_refcnts[85].base, .data.refcounted = {g_bytes + 870, 7}}, - {.refcount = &g_refcnts[86].base, .data.refcounted = {g_bytes + 877, 11}}, - {.refcount = &g_refcnts[87].base, .data.refcounted = {g_bytes + 888, 6}}, - {.refcount = &g_refcnts[88].base, .data.refcounted = {g_bytes + 894, 10}}, - {.refcount = &g_refcnts[89].base, .data.refcounted = {g_bytes + 904, 25}}, - {.refcount = &g_refcnts[90].base, .data.refcounted = {g_bytes + 929, 17}}, - {.refcount = &g_refcnts[91].base, .data.refcounted = {g_bytes + 946, 4}}, - {.refcount = &g_refcnts[92].base, .data.refcounted = {g_bytes + 950, 3}}, - {.refcount = &g_refcnts[93].base, .data.refcounted = {g_bytes + 953, 16}}, - {.refcount = &g_refcnts[94].base, .data.refcounted = {g_bytes + 969, 16}}, - {.refcount = &g_refcnts[95].base, .data.refcounted = {g_bytes + 985, 13}}, - {.refcount = &g_refcnts[96].base, .data.refcounted = {g_bytes + 998, 12}}, - {.refcount = &g_refcnts[97].base, .data.refcounted = {g_bytes + 1010, 21}}, + {.refcount = &grpc_static_metadata_refcounts[0], + .data.refcounted = {g_bytes + 0, 5}}, + {.refcount = &grpc_static_metadata_refcounts[1], + .data.refcounted = {g_bytes + 5, 7}}, + {.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[3], + .data.refcounted = {g_bytes + 19, 10}}, + {.refcount = &grpc_static_metadata_refcounts[4], + .data.refcounted = {g_bytes + 29, 7}}, + {.refcount = &grpc_static_metadata_refcounts[5], + .data.refcounted = {g_bytes + 36, 2}}, + {.refcount = &grpc_static_metadata_refcounts[6], + .data.refcounted = {g_bytes + 38, 12}}, + {.refcount = &grpc_static_metadata_refcounts[7], + .data.refcounted = {g_bytes + 50, 11}}, + {.refcount = &grpc_static_metadata_refcounts[8], + .data.refcounted = {g_bytes + 61, 16}}, + {.refcount = &grpc_static_metadata_refcounts[9], + .data.refcounted = {g_bytes + 77, 13}}, + {.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[11], + .data.refcounted = {g_bytes + 110, 12}}, + {.refcount = &grpc_static_metadata_refcounts[12], + .data.refcounted = {g_bytes + 122, 30}}, + {.refcount = &grpc_static_metadata_refcounts[13], + .data.refcounted = {g_bytes + 152, 10}}, + {.refcount = &grpc_static_metadata_refcounts[14], + .data.refcounted = {g_bytes + 162, 4}}, + {.refcount = &grpc_static_metadata_refcounts[15], + .data.refcounted = {g_bytes + 166, 8}}, + {.refcount = &grpc_static_metadata_refcounts[16], + .data.refcounted = {g_bytes + 174, 11}}, + {.refcount = &grpc_static_metadata_refcounts[17], + .data.refcounted = {g_bytes + 185, 12}}, + {.refcount = &grpc_static_metadata_refcounts[18], + .data.refcounted = {g_bytes + 197, 16}}, + {.refcount = &grpc_static_metadata_refcounts[19], + .data.refcounted = {g_bytes + 213, 14}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}, + {.refcount = &grpc_static_metadata_refcounts[21], + .data.refcounted = {g_bytes + 227, 19}}, + {.refcount = &grpc_static_metadata_refcounts[22], + .data.refcounted = {g_bytes + 246, 12}}, + {.refcount = &grpc_static_metadata_refcounts[23], + .data.refcounted = {g_bytes + 258, 30}}, + {.refcount = &grpc_static_metadata_refcounts[24], + .data.refcounted = {g_bytes + 288, 31}}, + {.refcount = &grpc_static_metadata_refcounts[25], + .data.refcounted = {g_bytes + 319, 36}}, + {.refcount = &grpc_static_metadata_refcounts[26], + .data.refcounted = {g_bytes + 355, 1}}, + {.refcount = &grpc_static_metadata_refcounts[27], + .data.refcounted = {g_bytes + 356, 1}}, + {.refcount = &grpc_static_metadata_refcounts[28], + .data.refcounted = {g_bytes + 357, 1}}, + {.refcount = &grpc_static_metadata_refcounts[29], + .data.refcounted = {g_bytes + 358, 8}}, + {.refcount = &grpc_static_metadata_refcounts[30], + .data.refcounted = {g_bytes + 366, 4}}, + {.refcount = &grpc_static_metadata_refcounts[31], + .data.refcounted = {g_bytes + 370, 7}}, + {.refcount = &grpc_static_metadata_refcounts[32], + .data.refcounted = {g_bytes + 377, 8}}, + {.refcount = &grpc_static_metadata_refcounts[33], + .data.refcounted = {g_bytes + 385, 16}}, + {.refcount = &grpc_static_metadata_refcounts[34], + .data.refcounted = {g_bytes + 401, 4}}, + {.refcount = &grpc_static_metadata_refcounts[35], + .data.refcounted = {g_bytes + 405, 3}}, + {.refcount = &grpc_static_metadata_refcounts[36], + .data.refcounted = {g_bytes + 408, 3}}, + {.refcount = &grpc_static_metadata_refcounts[37], + .data.refcounted = {g_bytes + 411, 4}}, + {.refcount = &grpc_static_metadata_refcounts[38], + .data.refcounted = {g_bytes + 415, 5}}, + {.refcount = &grpc_static_metadata_refcounts[39], + .data.refcounted = {g_bytes + 420, 4}}, + {.refcount = &grpc_static_metadata_refcounts[40], + .data.refcounted = {g_bytes + 424, 3}}, + {.refcount = &grpc_static_metadata_refcounts[41], + .data.refcounted = {g_bytes + 427, 3}}, + {.refcount = &grpc_static_metadata_refcounts[42], + .data.refcounted = {g_bytes + 430, 1}}, + {.refcount = &grpc_static_metadata_refcounts[43], + .data.refcounted = {g_bytes + 431, 11}}, + {.refcount = &grpc_static_metadata_refcounts[44], + .data.refcounted = {g_bytes + 442, 3}}, + {.refcount = &grpc_static_metadata_refcounts[45], + .data.refcounted = {g_bytes + 445, 3}}, + {.refcount = &grpc_static_metadata_refcounts[46], + .data.refcounted = {g_bytes + 448, 3}}, + {.refcount = &grpc_static_metadata_refcounts[47], + .data.refcounted = {g_bytes + 451, 3}}, + {.refcount = &grpc_static_metadata_refcounts[48], + .data.refcounted = {g_bytes + 454, 3}}, + {.refcount = &grpc_static_metadata_refcounts[49], + .data.refcounted = {g_bytes + 457, 14}}, + {.refcount = &grpc_static_metadata_refcounts[50], + .data.refcounted = {g_bytes + 471, 15}}, + {.refcount = &grpc_static_metadata_refcounts[51], + .data.refcounted = {g_bytes + 486, 13}}, + {.refcount = &grpc_static_metadata_refcounts[52], + .data.refcounted = {g_bytes + 499, 15}}, + {.refcount = &grpc_static_metadata_refcounts[53], + .data.refcounted = {g_bytes + 514, 13}}, + {.refcount = &grpc_static_metadata_refcounts[54], + .data.refcounted = {g_bytes + 527, 6}}, + {.refcount = &grpc_static_metadata_refcounts[55], + .data.refcounted = {g_bytes + 533, 27}}, + {.refcount = &grpc_static_metadata_refcounts[56], + .data.refcounted = {g_bytes + 560, 3}}, + {.refcount = &grpc_static_metadata_refcounts[57], + .data.refcounted = {g_bytes + 563, 5}}, + {.refcount = &grpc_static_metadata_refcounts[58], + .data.refcounted = {g_bytes + 568, 13}}, + {.refcount = &grpc_static_metadata_refcounts[59], + .data.refcounted = {g_bytes + 581, 13}}, + {.refcount = &grpc_static_metadata_refcounts[60], + .data.refcounted = {g_bytes + 594, 19}}, + {.refcount = &grpc_static_metadata_refcounts[61], + .data.refcounted = {g_bytes + 613, 16}}, + {.refcount = &grpc_static_metadata_refcounts[62], + .data.refcounted = {g_bytes + 629, 16}}, + {.refcount = &grpc_static_metadata_refcounts[63], + .data.refcounted = {g_bytes + 645, 14}}, + {.refcount = &grpc_static_metadata_refcounts[64], + .data.refcounted = {g_bytes + 659, 16}}, + {.refcount = &grpc_static_metadata_refcounts[65], + .data.refcounted = {g_bytes + 675, 13}}, + {.refcount = &grpc_static_metadata_refcounts[66], + .data.refcounted = {g_bytes + 688, 6}}, + {.refcount = &grpc_static_metadata_refcounts[67], + .data.refcounted = {g_bytes + 694, 4}}, + {.refcount = &grpc_static_metadata_refcounts[68], + .data.refcounted = {g_bytes + 698, 4}}, + {.refcount = &grpc_static_metadata_refcounts[69], + .data.refcounted = {g_bytes + 702, 6}}, + {.refcount = &grpc_static_metadata_refcounts[70], + .data.refcounted = {g_bytes + 708, 7}}, + {.refcount = &grpc_static_metadata_refcounts[71], + .data.refcounted = {g_bytes + 715, 4}}, + {.refcount = &grpc_static_metadata_refcounts[72], + .data.refcounted = {g_bytes + 719, 8}}, + {.refcount = &grpc_static_metadata_refcounts[73], + .data.refcounted = {g_bytes + 727, 17}}, + {.refcount = &grpc_static_metadata_refcounts[74], + .data.refcounted = {g_bytes + 744, 13}}, + {.refcount = &grpc_static_metadata_refcounts[75], + .data.refcounted = {g_bytes + 757, 8}}, + {.refcount = &grpc_static_metadata_refcounts[76], + .data.refcounted = {g_bytes + 765, 19}}, + {.refcount = &grpc_static_metadata_refcounts[77], + .data.refcounted = {g_bytes + 784, 13}}, + {.refcount = &grpc_static_metadata_refcounts[78], + .data.refcounted = {g_bytes + 797, 4}}, + {.refcount = &grpc_static_metadata_refcounts[79], + .data.refcounted = {g_bytes + 801, 8}}, + {.refcount = &grpc_static_metadata_refcounts[80], + .data.refcounted = {g_bytes + 809, 12}}, + {.refcount = &grpc_static_metadata_refcounts[81], + .data.refcounted = {g_bytes + 821, 18}}, + {.refcount = &grpc_static_metadata_refcounts[82], + .data.refcounted = {g_bytes + 839, 19}}, + {.refcount = &grpc_static_metadata_refcounts[83], + .data.refcounted = {g_bytes + 858, 5}}, + {.refcount = &grpc_static_metadata_refcounts[84], + .data.refcounted = {g_bytes + 863, 7}}, + {.refcount = &grpc_static_metadata_refcounts[85], + .data.refcounted = {g_bytes + 870, 7}}, + {.refcount = &grpc_static_metadata_refcounts[86], + .data.refcounted = {g_bytes + 877, 11}}, + {.refcount = &grpc_static_metadata_refcounts[87], + .data.refcounted = {g_bytes + 888, 6}}, + {.refcount = &grpc_static_metadata_refcounts[88], + .data.refcounted = {g_bytes + 894, 10}}, + {.refcount = &grpc_static_metadata_refcounts[89], + .data.refcounted = {g_bytes + 904, 25}}, + {.refcount = &grpc_static_metadata_refcounts[90], + .data.refcounted = {g_bytes + 929, 17}}, + {.refcount = &grpc_static_metadata_refcounts[91], + .data.refcounted = {g_bytes + 946, 4}}, + {.refcount = &grpc_static_metadata_refcounts[92], + .data.refcounted = {g_bytes + 950, 3}}, + {.refcount = &grpc_static_metadata_refcounts[93], + .data.refcounted = {g_bytes + 953, 16}}, + {.refcount = &grpc_static_metadata_refcounts[94], + .data.refcounted = {g_bytes + 969, 16}}, + {.refcount = &grpc_static_metadata_refcounts[95], + .data.refcounted = {g_bytes + 985, 13}}, + {.refcount = &grpc_static_metadata_refcounts[96], + .data.refcounted = {g_bytes + 998, 12}}, + {.refcount = &grpc_static_metadata_refcounts[97], + .data.refcounted = {g_bytes + 1010, 21}}, }; -int grpc_static_metadata_index(grpc_slice slice) { - static_slice_refcount *r = (static_slice_refcount *)slice.refcount; - if (slice.data.refcounted.bytes == g_bytes + r->offset && - slice.data.refcounted.length == r->length) - return (int)(r - g_refcnts); - return -1; -} - uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -347,168 +482,329 @@ grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b) { } grpc_mdelem_data grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = { - {{.refcount = &g_refcnts[7].base, .data.refcounted = {g_bytes + 50, 11}}, - {.refcount = &g_refcnts[26].base, .data.refcounted = {g_bytes + 355, 1}}}, - {{.refcount = &g_refcnts[7].base, .data.refcounted = {g_bytes + 50, 11}}, - {.refcount = &g_refcnts[27].base, .data.refcounted = {g_bytes + 356, 1}}}, - {{.refcount = &g_refcnts[7].base, .data.refcounted = {g_bytes + 50, 11}}, - {.refcount = &g_refcnts[28].base, .data.refcounted = {g_bytes + 357, 1}}}, - {{.refcount = &g_refcnts[9].base, .data.refcounted = {g_bytes + 77, 13}}, - {.refcount = &g_refcnts[29].base, .data.refcounted = {g_bytes + 358, 8}}}, - {{.refcount = &g_refcnts[9].base, .data.refcounted = {g_bytes + 77, 13}}, - {.refcount = &g_refcnts[30].base, .data.refcounted = {g_bytes + 366, 4}}}, - {{.refcount = &g_refcnts[9].base, .data.refcounted = {g_bytes + 77, 13}}, - {.refcount = &g_refcnts[31].base, .data.refcounted = {g_bytes + 370, 7}}}, - {{.refcount = &g_refcnts[5].base, .data.refcounted = {g_bytes + 36, 2}}, - {.refcount = &g_refcnts[32].base, .data.refcounted = {g_bytes + 377, 8}}}, - {{.refcount = &g_refcnts[11].base, .data.refcounted = {g_bytes + 110, 12}}, - {.refcount = &g_refcnts[33].base, .data.refcounted = {g_bytes + 385, 16}}}, - {{.refcount = &g_refcnts[1].base, .data.refcounted = {g_bytes + 5, 7}}, - {.refcount = &g_refcnts[34].base, .data.refcounted = {g_bytes + 401, 4}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[35].base, .data.refcounted = {g_bytes + 405, 3}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[36].base, .data.refcounted = {g_bytes + 408, 3}}}, - {{.refcount = &g_refcnts[4].base, .data.refcounted = {g_bytes + 29, 7}}, - {.refcount = &g_refcnts[37].base, .data.refcounted = {g_bytes + 411, 4}}}, - {{.refcount = &g_refcnts[4].base, .data.refcounted = {g_bytes + 29, 7}}, - {.refcount = &g_refcnts[38].base, .data.refcounted = {g_bytes + 415, 5}}}, - {{.refcount = &g_refcnts[4].base, .data.refcounted = {g_bytes + 29, 7}}, - {.refcount = &g_refcnts[39].base, .data.refcounted = {g_bytes + 420, 4}}}, - {{.refcount = &g_refcnts[3].base, .data.refcounted = {g_bytes + 19, 10}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[1].base, .data.refcounted = {g_bytes + 5, 7}}, - {.refcount = &g_refcnts[40].base, .data.refcounted = {g_bytes + 424, 3}}}, - {{.refcount = &g_refcnts[1].base, .data.refcounted = {g_bytes + 5, 7}}, - {.refcount = &g_refcnts[41].base, .data.refcounted = {g_bytes + 427, 3}}}, - {{.refcount = &g_refcnts[0].base, .data.refcounted = {g_bytes + 0, 5}}, - {.refcount = &g_refcnts[42].base, .data.refcounted = {g_bytes + 430, 1}}}, - {{.refcount = &g_refcnts[0].base, .data.refcounted = {g_bytes + 0, 5}}, - {.refcount = &g_refcnts[43].base, .data.refcounted = {g_bytes + 431, 11}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[44].base, .data.refcounted = {g_bytes + 442, 3}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[45].base, .data.refcounted = {g_bytes + 445, 3}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[46].base, .data.refcounted = {g_bytes + 448, 3}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[47].base, .data.refcounted = {g_bytes + 451, 3}}}, - {{.refcount = &g_refcnts[2].base, .data.refcounted = {g_bytes + 12, 7}}, - {.refcount = &g_refcnts[48].base, .data.refcounted = {g_bytes + 454, 3}}}, - {{.refcount = &g_refcnts[49].base, .data.refcounted = {g_bytes + 457, 14}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[50].base, .data.refcounted = {g_bytes + 471, 15}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[50].base, .data.refcounted = {g_bytes + 471, 15}}, - {.refcount = &g_refcnts[51].base, .data.refcounted = {g_bytes + 486, 13}}}, - {{.refcount = &g_refcnts[52].base, .data.refcounted = {g_bytes + 499, 15}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[53].base, .data.refcounted = {g_bytes + 514, 13}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[54].base, .data.refcounted = {g_bytes + 527, 6}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[55].base, .data.refcounted = {g_bytes + 533, 27}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[56].base, .data.refcounted = {g_bytes + 560, 3}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[57].base, .data.refcounted = {g_bytes + 563, 5}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[58].base, .data.refcounted = {g_bytes + 568, 13}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[59].base, .data.refcounted = {g_bytes + 581, 13}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[60].base, .data.refcounted = {g_bytes + 594, 19}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[61].base, .data.refcounted = {g_bytes + 613, 16}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[62].base, .data.refcounted = {g_bytes + 629, 16}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[63].base, .data.refcounted = {g_bytes + 645, 14}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[64].base, .data.refcounted = {g_bytes + 659, 16}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[65].base, .data.refcounted = {g_bytes + 675, 13}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[11].base, .data.refcounted = {g_bytes + 110, 12}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[66].base, .data.refcounted = {g_bytes + 688, 6}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[67].base, .data.refcounted = {g_bytes + 694, 4}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[68].base, .data.refcounted = {g_bytes + 698, 4}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[69].base, .data.refcounted = {g_bytes + 702, 6}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[70].base, .data.refcounted = {g_bytes + 708, 7}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[71].base, .data.refcounted = {g_bytes + 715, 4}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[14].base, .data.refcounted = {g_bytes + 162, 4}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[72].base, .data.refcounted = {g_bytes + 719, 8}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[73].base, .data.refcounted = {g_bytes + 727, 17}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[74].base, .data.refcounted = {g_bytes + 744, 13}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[75].base, .data.refcounted = {g_bytes + 757, 8}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[76].base, .data.refcounted = {g_bytes + 765, 19}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[77].base, .data.refcounted = {g_bytes + 784, 13}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[15].base, .data.refcounted = {g_bytes + 166, 8}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[16].base, .data.refcounted = {g_bytes + 174, 11}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[78].base, .data.refcounted = {g_bytes + 797, 4}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[79].base, .data.refcounted = {g_bytes + 801, 8}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[80].base, .data.refcounted = {g_bytes + 809, 12}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[81].base, .data.refcounted = {g_bytes + 821, 18}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[82].base, .data.refcounted = {g_bytes + 839, 19}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[83].base, .data.refcounted = {g_bytes + 858, 5}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[84].base, .data.refcounted = {g_bytes + 863, 7}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[85].base, .data.refcounted = {g_bytes + 870, 7}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[86].base, .data.refcounted = {g_bytes + 877, 11}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[87].base, .data.refcounted = {g_bytes + 888, 6}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[88].base, .data.refcounted = {g_bytes + 894, 10}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[89].base, .data.refcounted = {g_bytes + 904, 25}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[90].base, .data.refcounted = {g_bytes + 929, 17}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[13].base, .data.refcounted = {g_bytes + 152, 10}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[91].base, .data.refcounted = {g_bytes + 946, 4}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[92].base, .data.refcounted = {g_bytes + 950, 3}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[93].base, .data.refcounted = {g_bytes + 953, 16}}, - {.refcount = &g_refcnts[20].base, .data.refcounted = {g_bytes + 227, 0}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[29].base, .data.refcounted = {g_bytes + 358, 8}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[31].base, .data.refcounted = {g_bytes + 370, 7}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[94].base, .data.refcounted = {g_bytes + 969, 16}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[30].base, .data.refcounted = {g_bytes + 366, 4}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[95].base, .data.refcounted = {g_bytes + 985, 13}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[96].base, .data.refcounted = {g_bytes + 998, 12}}}, - {{.refcount = &g_refcnts[10].base, .data.refcounted = {g_bytes + 90, 20}}, - {.refcount = &g_refcnts[97].base, + {{.refcount = &grpc_static_metadata_refcounts[7], + .data.refcounted = {g_bytes + 50, 11}}, + {.refcount = &grpc_static_metadata_refcounts[26], + .data.refcounted = {g_bytes + 355, 1}}}, + {{.refcount = &grpc_static_metadata_refcounts[7], + .data.refcounted = {g_bytes + 50, 11}}, + {.refcount = &grpc_static_metadata_refcounts[27], + .data.refcounted = {g_bytes + 356, 1}}}, + {{.refcount = &grpc_static_metadata_refcounts[7], + .data.refcounted = {g_bytes + 50, 11}}, + {.refcount = &grpc_static_metadata_refcounts[28], + .data.refcounted = {g_bytes + 357, 1}}}, + {{.refcount = &grpc_static_metadata_refcounts[9], + .data.refcounted = {g_bytes + 77, 13}}, + {.refcount = &grpc_static_metadata_refcounts[29], + .data.refcounted = {g_bytes + 358, 8}}}, + {{.refcount = &grpc_static_metadata_refcounts[9], + .data.refcounted = {g_bytes + 77, 13}}, + {.refcount = &grpc_static_metadata_refcounts[30], + .data.refcounted = {g_bytes + 366, 4}}}, + {{.refcount = &grpc_static_metadata_refcounts[9], + .data.refcounted = {g_bytes + 77, 13}}, + {.refcount = &grpc_static_metadata_refcounts[31], + .data.refcounted = {g_bytes + 370, 7}}}, + {{.refcount = &grpc_static_metadata_refcounts[5], + .data.refcounted = {g_bytes + 36, 2}}, + {.refcount = &grpc_static_metadata_refcounts[32], + .data.refcounted = {g_bytes + 377, 8}}}, + {{.refcount = &grpc_static_metadata_refcounts[11], + .data.refcounted = {g_bytes + 110, 12}}, + {.refcount = &grpc_static_metadata_refcounts[33], + .data.refcounted = {g_bytes + 385, 16}}}, + {{.refcount = &grpc_static_metadata_refcounts[1], + .data.refcounted = {g_bytes + 5, 7}}, + {.refcount = &grpc_static_metadata_refcounts[34], + .data.refcounted = {g_bytes + 401, 4}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[35], + .data.refcounted = {g_bytes + 405, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[36], + .data.refcounted = {g_bytes + 408, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[4], + .data.refcounted = {g_bytes + 29, 7}}, + {.refcount = &grpc_static_metadata_refcounts[37], + .data.refcounted = {g_bytes + 411, 4}}}, + {{.refcount = &grpc_static_metadata_refcounts[4], + .data.refcounted = {g_bytes + 29, 7}}, + {.refcount = &grpc_static_metadata_refcounts[38], + .data.refcounted = {g_bytes + 415, 5}}}, + {{.refcount = &grpc_static_metadata_refcounts[4], + .data.refcounted = {g_bytes + 29, 7}}, + {.refcount = &grpc_static_metadata_refcounts[39], + .data.refcounted = {g_bytes + 420, 4}}}, + {{.refcount = &grpc_static_metadata_refcounts[3], + .data.refcounted = {g_bytes + 19, 10}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[1], + .data.refcounted = {g_bytes + 5, 7}}, + {.refcount = &grpc_static_metadata_refcounts[40], + .data.refcounted = {g_bytes + 424, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[1], + .data.refcounted = {g_bytes + 5, 7}}, + {.refcount = &grpc_static_metadata_refcounts[41], + .data.refcounted = {g_bytes + 427, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[0], + .data.refcounted = {g_bytes + 0, 5}}, + {.refcount = &grpc_static_metadata_refcounts[42], + .data.refcounted = {g_bytes + 430, 1}}}, + {{.refcount = &grpc_static_metadata_refcounts[0], + .data.refcounted = {g_bytes + 0, 5}}, + {.refcount = &grpc_static_metadata_refcounts[43], + .data.refcounted = {g_bytes + 431, 11}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[44], + .data.refcounted = {g_bytes + 442, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[45], + .data.refcounted = {g_bytes + 445, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[46], + .data.refcounted = {g_bytes + 448, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[47], + .data.refcounted = {g_bytes + 451, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[2], + .data.refcounted = {g_bytes + 12, 7}}, + {.refcount = &grpc_static_metadata_refcounts[48], + .data.refcounted = {g_bytes + 454, 3}}}, + {{.refcount = &grpc_static_metadata_refcounts[49], + .data.refcounted = {g_bytes + 457, 14}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[50], + .data.refcounted = {g_bytes + 471, 15}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[50], + .data.refcounted = {g_bytes + 471, 15}}, + {.refcount = &grpc_static_metadata_refcounts[51], + .data.refcounted = {g_bytes + 486, 13}}}, + {{.refcount = &grpc_static_metadata_refcounts[52], + .data.refcounted = {g_bytes + 499, 15}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[53], + .data.refcounted = {g_bytes + 514, 13}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[54], + .data.refcounted = {g_bytes + 527, 6}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[55], + .data.refcounted = {g_bytes + 533, 27}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[56], + .data.refcounted = {g_bytes + 560, 3}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[57], + .data.refcounted = {g_bytes + 563, 5}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[58], + .data.refcounted = {g_bytes + 568, 13}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[59], + .data.refcounted = {g_bytes + 581, 13}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[60], + .data.refcounted = {g_bytes + 594, 19}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[61], + .data.refcounted = {g_bytes + 613, 16}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[62], + .data.refcounted = {g_bytes + 629, 16}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[63], + .data.refcounted = {g_bytes + 645, 14}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[64], + .data.refcounted = {g_bytes + 659, 16}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[65], + .data.refcounted = {g_bytes + 675, 13}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[11], + .data.refcounted = {g_bytes + 110, 12}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[66], + .data.refcounted = {g_bytes + 688, 6}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[67], + .data.refcounted = {g_bytes + 694, 4}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[68], + .data.refcounted = {g_bytes + 698, 4}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[69], + .data.refcounted = {g_bytes + 702, 6}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[70], + .data.refcounted = {g_bytes + 708, 7}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[71], + .data.refcounted = {g_bytes + 715, 4}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[14], + .data.refcounted = {g_bytes + 162, 4}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[72], + .data.refcounted = {g_bytes + 719, 8}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[73], + .data.refcounted = {g_bytes + 727, 17}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[74], + .data.refcounted = {g_bytes + 744, 13}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[75], + .data.refcounted = {g_bytes + 757, 8}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[76], + .data.refcounted = {g_bytes + 765, 19}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[77], + .data.refcounted = {g_bytes + 784, 13}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[15], + .data.refcounted = {g_bytes + 166, 8}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[16], + .data.refcounted = {g_bytes + 174, 11}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[78], + .data.refcounted = {g_bytes + 797, 4}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[79], + .data.refcounted = {g_bytes + 801, 8}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[80], + .data.refcounted = {g_bytes + 809, 12}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[81], + .data.refcounted = {g_bytes + 821, 18}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[82], + .data.refcounted = {g_bytes + 839, 19}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[83], + .data.refcounted = {g_bytes + 858, 5}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[84], + .data.refcounted = {g_bytes + 863, 7}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[85], + .data.refcounted = {g_bytes + 870, 7}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[86], + .data.refcounted = {g_bytes + 877, 11}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[87], + .data.refcounted = {g_bytes + 888, 6}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[88], + .data.refcounted = {g_bytes + 894, 10}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[89], + .data.refcounted = {g_bytes + 904, 25}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[90], + .data.refcounted = {g_bytes + 929, 17}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[13], + .data.refcounted = {g_bytes + 152, 10}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[91], + .data.refcounted = {g_bytes + 946, 4}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[92], + .data.refcounted = {g_bytes + 950, 3}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[93], + .data.refcounted = {g_bytes + 953, 16}}, + {.refcount = &grpc_static_metadata_refcounts[20], + .data.refcounted = {g_bytes + 227, 0}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[29], + .data.refcounted = {g_bytes + 358, 8}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[31], + .data.refcounted = {g_bytes + 370, 7}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[94], + .data.refcounted = {g_bytes + 969, 16}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[30], + .data.refcounted = {g_bytes + 366, 4}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[95], + .data.refcounted = {g_bytes + 985, 13}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[96], + .data.refcounted = {g_bytes + 998, 12}}}, + {{.refcount = &grpc_static_metadata_refcounts[10], + .data.refcounted = {g_bytes + 90, 20}}, + {.refcount = &grpc_static_metadata_refcounts[97], .data.refcounted = {g_bytes + 1010, 21}}}, }; #define BATCH_PHASHLEN 0x10 diff --git a/src/core/lib/transport/static_metadata.h b/src/core/lib/transport/static_metadata.h index 82af89263313bf02bac32075544317e6e4a3e8dc..e03bf245ff72be797a52b2d72fe5236329165b3b 100644 --- a/src/core/lib/transport/static_metadata.h +++ b/src/core/lib/transport/static_metadata.h @@ -249,7 +249,18 @@ extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT]; bool grpc_is_static_metadata_string(grpc_slice slice); -int grpc_static_metadata_index(grpc_slice slice); +extern const grpc_slice_refcount_vtable grpc_static_metadata_vtable; +extern grpc_slice_refcount + grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT]; +bool grpc_is_static_metadata_string(grpc_slice slice) { + return slice.refcount != NULL && + slice.refcount->vtable == &grpc_static_metadata_vtable; +} + +inline int grpc_static_metadata_index(grpc_slice slice) { + return (int)(slice.refcount - grpc_static_metadata_refcounts); +} + #define GRPC_STATIC_MDELEM_COUNT 81 extern grpc_mdelem_data grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT]; extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT]; diff --git a/tools/codegen/core/gen_static_metadata.py b/tools/codegen/core/gen_static_metadata.py index a0b06edd476174d017546ef5464ab0753af3faf5..027719fb980a3a2d8b5f426afa05ba4141f2019d 100755 --- a/tools/codegen/core/gen_static_metadata.py +++ b/tools/codegen/core/gen_static_metadata.py @@ -331,7 +331,7 @@ for i, elem in enumerate(all_strs): id2strofs[i] = str_ofs str_ofs += len(elem); def slice_def(i): - return '{.refcount = &g_refcnts[%d].base, .data.refcounted = {g_bytes+%d, %d}}' % (i, id2strofs[i], len(all_strs[i])) + return '{.refcount = &grpc_static_metadata_refcounts[%d], .data.refcounted = {g_bytes+%d, %d}}' % (i, id2strofs[i], len(all_strs[i])) # validate configuration for elem in METADATA_BATCH_CALLOUTS: @@ -349,29 +349,29 @@ print >>C, 'static uint8_t g_bytes[] = {%s};' % (','.join('%d' % ord(c) for c in print >>C print >>C, 'static void static_ref(void *unused) {}' print >>C, 'static void static_unref(grpc_exec_ctx *exec_ctx, void *unused) {}' -print >>C, 'static const grpc_slice_refcount_vtable static_vtable = {static_ref, static_unref, grpc_static_slice_eq, grpc_static_slice_hash};'; -print >>C, 'typedef struct { grpc_slice_refcount base; const uint16_t offset; const uint16_t length; } static_slice_refcount;' -print >>C, 'static static_slice_refcount g_refcnts[GRPC_STATIC_MDSTR_COUNT] = {' +print >>C, 'static const grpc_slice_refcount_vtable static_sub_vtable = {static_ref, static_unref, grpc_slice_default_eq_impl, grpc_slice_default_hash_impl};'; +print >>H, 'extern const grpc_slice_refcount_vtable grpc_static_metadata_vtable;'; +print >>C, 'const grpc_slice_refcount_vtable grpc_static_metadata_vtable = {static_ref, static_unref, grpc_static_slice_eq, grpc_static_slice_hash};'; +print >>C, 'static grpc_slice_refcount static_sub_refcnt = {&static_sub_vtable, &static_sub_refcnt};'; +print >>H, 'extern grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT];' +print >>C, 'grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = {' for i, elem in enumerate(all_strs): - print >>C, ' {{&static_vtable}, %d, %d},' % (id2strofs[i], len(elem)) + print >>C, ' {&grpc_static_metadata_vtable, &static_sub_refcnt},' print >>C, '};' print >>C -print >>C, 'bool grpc_is_static_metadata_string(grpc_slice slice) {' -print >>C, ' return slice.refcount != NULL && slice.refcount->vtable == &static_vtable;' -print >>C, '}' -print >>C +print >>H, 'bool grpc_is_static_metadata_string(grpc_slice slice) {' +print >>H, ' return slice.refcount != NULL && slice.refcount->vtable == &grpc_static_metadata_vtable;' +print >>H, '}' +print >>H print >>C, 'const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = {' for i, elem in enumerate(all_strs): print >>C, slice_def(i) + ',' print >>C, '};' print >>C -print >>H, 'int grpc_static_metadata_index(grpc_slice slice);' -print >>C, 'int grpc_static_metadata_index(grpc_slice slice) {' -print >>C, ' static_slice_refcount *r = (static_slice_refcount *)slice.refcount;' -print >>C, ' if (slice.data.refcounted.bytes == g_bytes + r->offset && slice.data.refcounted.length == r->length) return (int)(r - g_refcnts);' -print >>C, ' return -1;' -print >>C, '}' -print >>C +print >>H, 'inline int grpc_static_metadata_index(grpc_slice slice) {' +print >>H, ' return (int)(slice.refcount - grpc_static_metadata_refcounts);' +print >>H, '}' +print >>H print >>D, '# hpack fuzzing dictionary' for i, elem in enumerate(all_strs):