diff options
author | Craig Tiller <ctiller@google.com> | 2017-04-18 13:23:44 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2017-04-18 13:23:44 -0700 |
commit | a12c0657ef79a436db540ad0bfc5660aa7b88d08 (patch) | |
tree | 29211b259900fe730a6cdad595f16c94f09241ab /src/core/ext/filters/http/message_compress/message_compress_filter.c | |
parent | c3666d70902ff7b9c1735761d7156232e84ef4e4 (diff) | |
parent | 6b4435ccbcd12e29cd318389126457f7bc7bdcab (diff) |
Merge github.com:grpc/grpc into hybrid
Diffstat (limited to 'src/core/ext/filters/http/message_compress/message_compress_filter.c')
-rw-r--r-- | src/core/ext/filters/http/message_compress/message_compress_filter.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/core/ext/filters/http/message_compress/message_compress_filter.c b/src/core/ext/filters/http/message_compress/message_compress_filter.c index 2b2f3549bd..f414a60eee 100644 --- a/src/core/ext/filters/http/message_compress/message_compress_filter.c +++ b/src/core/ext/filters/http/message_compress/message_compress_filter.c @@ -239,6 +239,13 @@ static void finish_send_message(grpc_exec_ctx *exec_ctx, static void got_slice(grpc_exec_ctx *exec_ctx, void *elemp, grpc_error *error) { grpc_call_element *elem = elemp; call_data *calld = elem->call_data; + if (GRPC_ERROR_NONE != + grpc_byte_stream_pull(exec_ctx, + calld->send_op->payload->send_message.send_message, + &calld->incoming_slice)) { + /* Should never reach here */ + abort(); + } grpc_slice_buffer_add(&calld->slices, calld->incoming_slice); if (calld->send_length == calld->slices.length) { finish_send_message(exec_ctx, elem); @@ -251,8 +258,11 @@ static void continue_send_message(grpc_exec_ctx *exec_ctx, grpc_call_element *elem) { call_data *calld = elem->call_data; while (grpc_byte_stream_next( - exec_ctx, calld->send_op->payload->send_message.send_message, - &calld->incoming_slice, ~(size_t)0, &calld->got_slice)) { + exec_ctx, calld->send_op->payload->send_message.send_message, ~(size_t)0, + &calld->got_slice)) { + grpc_byte_stream_pull(exec_ctx, + calld->send_op->payload->send_message.send_message, + &calld->incoming_slice); grpc_slice_buffer_add(&calld->slices, calld->incoming_slice); if (calld->send_length == calld->slices.length) { finish_send_message(exec_ctx, elem); |