diff options
author | Hope Casey-Allen <hcaseyal@google.com> | 2018-09-10 19:23:05 -0700 |
---|---|---|
committer | Hope Casey-Allen <hcaseyal@google.com> | 2018-09-10 19:23:05 -0700 |
commit | 009d828341a272e05401daf32907d8f400b19a90 (patch) | |
tree | f900ba159da4462eb071f8b284c012ecedc18574 /src/core/lib/transport/metadata.h | |
parent | c004a8e2593bfd4f493d35bfc995b895b51c261b (diff) |
WIP. Modifying grpc_mdelem to store the static hpack table idnex
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 & \ |