aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/transport/metadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/lib/transport/metadata.h')
-rw-r--r--src/core/lib/transport/metadata.h11
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 & \