diff options
author | 2017-04-12 13:15:45 -0700 | |
---|---|---|
committer | 2017-04-12 13:15:45 -0700 | |
commit | 423d6fd7ed418aead7d494e8d3c31ecd6e2743f1 (patch) | |
tree | b6ace176336e9206da6c0fd3ca7e1fe741687dad /src/core/ext/transport/chttp2/transport/bin_encoder.c | |
parent | 5a0cf3251580bd3ac57c5638be73edd4244a1210 (diff) |
Optimize framing a little
- rely on the fact that data-to-come holds a reference to
data-being-written, so there's no need to add a ref for every frame
written
- provide an 'inlined' version of grpc_slice_malloc (via a #define) that
gives the compiler more information about small allocations to enable
better optimization
Diffstat (limited to 'src/core/ext/transport/chttp2/transport/bin_encoder.c')
-rw-r--r-- | src/core/ext/transport/chttp2/transport/bin_encoder.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/ext/transport/chttp2/transport/bin_encoder.c b/src/core/ext/transport/chttp2/transport/bin_encoder.c index e301c073f3..3b8ab1f17a 100644 --- a/src/core/ext/transport/chttp2/transport/bin_encoder.c +++ b/src/core/ext/transport/chttp2/transport/bin_encoder.c @@ -66,7 +66,7 @@ grpc_slice grpc_chttp2_base64_encode(grpc_slice input) { size_t input_triplets = input_length / 3; size_t tail_case = input_length % 3; size_t output_length = input_triplets * 4 + tail_xtra[tail_case]; - grpc_slice output = grpc_slice_malloc(output_length); + grpc_slice output = GRPC_SLICE_MALLOC(output_length); uint8_t *in = GRPC_SLICE_START_PTR(input); char *out = (char *)GRPC_SLICE_START_PTR(output); size_t i; @@ -119,7 +119,7 @@ grpc_slice grpc_chttp2_huffman_compress(grpc_slice input) { nbits += grpc_chttp2_huffsyms[*in].length; } - output = grpc_slice_malloc(nbits / 8 + (nbits % 8 != 0)); + output = GRPC_SLICE_MALLOC(nbits / 8 + (nbits % 8 != 0)); out = GRPC_SLICE_START_PTR(output); for (in = GRPC_SLICE_START_PTR(input); in != GRPC_SLICE_END_PTR(input); ++in) { @@ -184,7 +184,7 @@ grpc_slice grpc_chttp2_base64_encode_and_huffman_compress(grpc_slice input) { size_t output_syms = input_triplets * 4 + tail_xtra[tail_case]; size_t max_output_bits = 11 * output_syms; size_t max_output_length = max_output_bits / 8 + (max_output_bits % 8 != 0); - grpc_slice output = grpc_slice_malloc(max_output_length); + grpc_slice output = GRPC_SLICE_MALLOC(max_output_length); uint8_t *in = GRPC_SLICE_START_PTR(input); uint8_t *start_out = GRPC_SLICE_START_PTR(output); huff_out out; |