@@ -1565,11 +1565,12 @@ void GetCallStatus(grpc_millis deadline, grpc_metadata_batch* md_batch,
1565
1565
*is_lb_drop = true ;
1566
1566
}
1567
1567
} else {
1568
- GPR_ASSERT (md_batch->idx .named .grpc_status != nullptr );
1569
- *status =
1570
- grpc_get_status_code_from_metadata (md_batch->idx .named .grpc_status ->md );
1571
- if (md_batch->idx .named .grpc_retry_pushback_ms != nullptr ) {
1572
- *server_pushback_md = &md_batch->idx .named .grpc_retry_pushback_ms ->md ;
1568
+ GPR_ASSERT ((*md_batch)->legacy_index ()->named .grpc_status != nullptr );
1569
+ *status = grpc_get_status_code_from_metadata (
1570
+ (*md_batch)->legacy_index ()->named .grpc_status ->md );
1571
+ if ((*md_batch)->legacy_index ()->named .grpc_retry_pushback_ms != nullptr ) {
1572
+ *server_pushback_md =
1573
+ &(*md_batch)->legacy_index ()->named .grpc_retry_pushback_ms ->md ;
1573
1574
}
1574
1575
}
1575
1576
GRPC_ERROR_UNREF (error);
@@ -1921,15 +1922,16 @@ void RetryFilter::CallData::CallAttempt::BatchData::
1921
1922
// If we've already completed one or more attempts, add the
1922
1923
// grpc-retry-attempts header.
1923
1924
call_attempt_->send_initial_metadata_storage_ =
1924
- static_cast <grpc_linked_mdelem*>(
1925
- calld-> arena_ -> Alloc ( sizeof (grpc_linked_mdelem) *
1926
- (calld->send_initial_metadata_ . list . count +
1927
- (calld->num_attempts_completed_ > 0 ))));
1925
+ static_cast <grpc_linked_mdelem*>(calld-> arena_ -> Alloc (
1926
+ sizeof (grpc_linked_mdelem) *
1927
+ (calld->send_initial_metadata_ -> non_deadline_count () +
1928
+ (calld->num_attempts_completed_ > 0 ))));
1928
1929
grpc_metadata_batch_copy (&calld->send_initial_metadata_ ,
1929
1930
&call_attempt_->send_initial_metadata_ ,
1930
1931
call_attempt_->send_initial_metadata_storage_ );
1931
- if (GPR_UNLIKELY (call_attempt_->send_initial_metadata_ .idx .named
1932
- .grpc_previous_rpc_attempts != nullptr )) {
1932
+ if (GPR_UNLIKELY ((*call_attempt_->send_initial_metadata_ )
1933
+ .legacy_index ()
1934
+ ->named .grpc_previous_rpc_attempts != nullptr )) {
1933
1935
grpc_metadata_batch_remove (&call_attempt_->send_initial_metadata_ ,
1934
1936
GRPC_BATCH_GRPC_PREVIOUS_RPC_ATTEMPTS);
1935
1937
}
@@ -1940,7 +1942,7 @@ void RetryFilter::CallData::CallAttempt::BatchData::
1940
1942
grpc_error_handle error = grpc_metadata_batch_add_tail (
1941
1943
&call_attempt_->send_initial_metadata_ ,
1942
1944
&call_attempt_->send_initial_metadata_storage_
1943
- [calld->send_initial_metadata_ . list . count ],
1945
+ [calld->send_initial_metadata_ -> non_deadline_count () ],
1944
1946
retry_md, GRPC_BATCH_GRPC_PREVIOUS_RPC_ATTEMPTS);
1945
1947
if (GPR_UNLIKELY (error != GRPC_ERROR_NONE)) {
1946
1948
gpr_log (GPR_ERROR, " error adding retry metadata: %s" ,
@@ -1984,9 +1986,9 @@ void RetryFilter::CallData::CallAttempt::BatchData::
1984
1986
// the filters in the subchannel stack may modify this batch, and we don't
1985
1987
// want those modifications to be passed forward to subsequent attempts.
1986
1988
call_attempt_->send_trailing_metadata_storage_ =
1987
- static_cast <grpc_linked_mdelem*>(
1988
- calld-> arena_ -> Alloc ( sizeof (grpc_linked_mdelem) *
1989
- calld->send_trailing_metadata_ . list . count ));
1989
+ static_cast <grpc_linked_mdelem*>(calld-> arena_ -> Alloc (
1990
+ sizeof (grpc_linked_mdelem) *
1991
+ calld->send_trailing_metadata_ -> non_deadline_count () ));
1990
1992
grpc_metadata_batch_copy (&calld->send_trailing_metadata_ ,
1991
1993
&call_attempt_->send_trailing_metadata_ ,
1992
1994
call_attempt_->send_trailing_metadata_storage_ );
@@ -2304,9 +2306,9 @@ void RetryFilter::CallData::MaybeCacheSendOpsForBatch(PendingBatch* pending) {
2304
2306
GPR_ASSERT (send_initial_metadata_storage_ == nullptr );
2305
2307
grpc_metadata_batch* send_initial_metadata =
2306
2308
batch->payload ->send_initial_metadata .send_initial_metadata ;
2307
- send_initial_metadata_storage_ =
2308
- static_cast <grpc_linked_mdelem*>( arena_->Alloc (
2309
- sizeof (grpc_linked_mdelem) * send_initial_metadata-> list . count ));
2309
+ send_initial_metadata_storage_ = static_cast <grpc_linked_mdelem*>(
2310
+ arena_->Alloc (sizeof (grpc_linked_mdelem) *
2311
+ (* send_initial_metadata)-> non_deadline_count () ));
2310
2312
grpc_metadata_batch_copy (send_initial_metadata, &send_initial_metadata_,
2311
2313
send_initial_metadata_storage_);
2312
2314
send_initial_metadata_flags_ =
@@ -2325,9 +2327,9 @@ void RetryFilter::CallData::MaybeCacheSendOpsForBatch(PendingBatch* pending) {
2325
2327
GPR_ASSERT (send_trailing_metadata_storage_ == nullptr );
2326
2328
grpc_metadata_batch* send_trailing_metadata =
2327
2329
batch->payload ->send_trailing_metadata .send_trailing_metadata ;
2328
- send_trailing_metadata_storage_ =
2329
- static_cast <grpc_linked_mdelem*>( arena_->Alloc (
2330
- sizeof (grpc_linked_mdelem) * send_trailing_metadata-> list . count ));
2330
+ send_trailing_metadata_storage_ = static_cast <grpc_linked_mdelem*>(
2331
+ arena_->Alloc (sizeof (grpc_linked_mdelem) *
2332
+ (* send_trailing_metadata)-> non_deadline_count () ));
2331
2333
grpc_metadata_batch_copy (send_trailing_metadata, &send_trailing_metadata_,
2332
2334
send_trailing_metadata_storage_);
2333
2335
}
0 commit comments