diff options
Diffstat (limited to 'src/core/lib/transport/metadata.h')
-rw-r--r-- | src/core/lib/transport/metadata.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/lib/transport/metadata.h b/src/core/lib/transport/metadata.h index 4fde0130c0..5c34f7323b 100644 --- a/src/core/lib/transport/metadata.h +++ b/src/core/lib/transport/metadata.h @@ -92,17 +92,20 @@ struct grpc_mdelem { /* a grpc_mdelem_data* generally, with the two lower bits signalling memory ownership as per grpc_mdelem_data_storage */ uintptr_t payload; + /* The static index of this mdelem. This is equivalent to the + mdelem's index into the hpack static table. 0 if unused. */ + uint8_t static_index; }; #define GRPC_MDELEM_DATA(md) ((grpc_mdelem_data*)((md).payload & ~(uintptr_t)3)) #define GRPC_MDELEM_STORAGE(md) \ ((grpc_mdelem_data_storage)((md).payload & (uintptr_t)3)) #ifdef __cplusplus -#define GRPC_MAKE_MDELEM(data, storage) \ - (grpc_mdelem{((uintptr_t)(data)) | ((uintptr_t)storage)}) +#define GRPC_MAKE_MDELEM(data, storage, index) \ + (grpc_mdelem{((uintptr_t)(data)) | ((uintptr_t)storage), index}) #else -#define GRPC_MAKE_MDELEM(data, storage) \ - ((grpc_mdelem){((uintptr_t)(data)) | ((uintptr_t)storage)}) +#define GRPC_MAKE_MDELEM(data, storage, index) \ + ((grpc_mdelem){((uintptr_t)(data)) | ((uintptr_t)storage), index}) #endif #define GRPC_MDELEM_IS_INTERNED(md) \ ((grpc_mdelem_data_storage)((md).payload & \ |