aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/transport/stream_op.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-06-25 09:00:34 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-06-25 09:00:34 -0700
commit3b1847c5283c3776ca700fb5ee56c894e68d970b (patch)
tree592027466cdf3d49cc4d790804b7873d2245c968 /src/core/transport/stream_op.c
parent4b62811032b12e988ca320e43b41c3bda7834869 (diff)
parent48f0a13f3872876787f4d7588b396db914319b1b (diff)
Merge branch 'oops-i-split-it-again' into tis-but-thy-name
Diffstat (limited to 'src/core/transport/stream_op.c')
-rw-r--r--src/core/transport/stream_op.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/transport/stream_op.c b/src/core/transport/stream_op.c
index 0a01598bd9..81df5455f6 100644
--- a/src/core/transport/stream_op.c
+++ b/src/core/transport/stream_op.c
@@ -65,7 +65,7 @@ void grpc_sopb_swap(grpc_stream_op_buffer *a, grpc_stream_op_buffer *b) {
if (a->ops == a->inlined_ops) {
if (b->ops == b->inlined_ops) {
/* swap contents of inlined buffer */
- gpr_slice temp[GRPC_SOPB_INLINE_ELEMENTS];
+ grpc_stream_op temp[GRPC_SOPB_INLINE_ELEMENTS];
memcpy(temp, a->ops, b->nops * sizeof(grpc_stream_op));
memcpy(a->ops, b->ops, a->nops * sizeof(grpc_stream_op));
memcpy(b->ops, temp, b->nops * sizeof(grpc_stream_op));
@@ -163,6 +163,18 @@ void grpc_sopb_append(grpc_stream_op_buffer *sopb, grpc_stream_op *ops,
sopb->nops = new_nops;
}
+void grpc_sopb_move_to(grpc_stream_op_buffer *src, grpc_stream_op_buffer *dst) {
+ if (src->nops == 0) {
+ return;
+ }
+ if (dst->nops == 0) {
+ grpc_sopb_swap(src, dst);
+ return;
+ }
+ grpc_sopb_append(dst, src->ops, src->nops);
+ src->nops = 0;
+}
+
static void assert_valid_list(grpc_mdelem_list *list) {
#ifndef NDEBUG
grpc_linked_mdelem *l;