diff options
author | 2016-11-23 09:35:25 -0800 | |
---|---|---|
committer | 2016-11-23 09:35:25 -0800 | |
commit | 6ec8aa1c0677355269c4bb0afd5fb7e38e7a8d3b (patch) | |
tree | 3310eb270340887811c059ff56547ebef999f365 /src/core/lib/transport/metadata_batch.c | |
parent | 7cfa5543c276c3541e0b9cf5a61686635b8100cc (diff) |
Simplify batch callout index calculation
Diffstat (limited to 'src/core/lib/transport/metadata_batch.c')
-rw-r--r-- | src/core/lib/transport/metadata_batch.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/core/lib/transport/metadata_batch.c b/src/core/lib/transport/metadata_batch.c index c41d28d9f7..25cc65d5f1 100644 --- a/src/core/lib/transport/metadata_batch.c +++ b/src/core/lib/transport/metadata_batch.c @@ -70,7 +70,7 @@ static void assert_valid_callouts(grpc_metadata_batch *batch) { for (grpc_linked_mdelem *l = batch->list.head; l != NULL; l = l->next) { grpc_slice key_interned = grpc_slice_intern(GRPC_MDKEY(l->md)); grpc_metadata_batch_callouts_index callout_idx = - grpc_batch_index_of(key_interned); + GRPC_BATCH_INDEX_OF(key_interned); if (callout_idx != GRPC_BATCH_CALLOUTS_COUNT) { GPR_ASSERT(batch->idx.array[callout_idx] == l); } @@ -115,22 +115,22 @@ static grpc_error *maybe_link_callout(grpc_metadata_batch *batch, static grpc_error *maybe_link_callout(grpc_metadata_batch *batch, grpc_linked_mdelem *storage) { grpc_metadata_batch_callouts_index idx = - grpc_batch_index_of(GRPC_MDKEY(storage->md)); + GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md)); if (idx == GRPC_BATCH_CALLOUTS_COUNT) { return GRPC_ERROR_NONE; } - if (batch->idx.array[idx] != NULL) { - return grpc_attach_md_to_error( - GRPC_ERROR_CREATE("Unallowed duplicate metadata"), storage->md); + if (batch->idx.array[idx] == NULL) { + batch->idx.array[idx] = storage; + return GRPC_ERROR_NONE; } - batch->idx.array[idx] = storage; - return GRPC_ERROR_NONE; + return grpc_attach_md_to_error( + GRPC_ERROR_CREATE("Unallowed duplicate metadata"), storage->md); } static void maybe_unlink_callout(grpc_metadata_batch *batch, grpc_linked_mdelem *storage) { grpc_metadata_batch_callouts_index idx = - grpc_batch_index_of(GRPC_MDKEY(storage->md)); + GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md)); if (idx == GRPC_BATCH_CALLOUTS_COUNT) { return; } |