pull/36732/head
Craig Tiller 10 months ago
parent 883ecce915
commit 70317bc7ef
  1. 1
      src/core/lib/transport/call_spine.cc
  2. 9
      src/core/lib/transport/call_spine.h

@ -96,6 +96,7 @@ CallInitiatorAndHandler MakeCallPair(
ClientMetadataHandle client_initial_metadata,
grpc_event_engine::experimental::EventEngine* event_engine,
RefCountedPtr<Arena> arena, grpc_call_context_element* legacy_context) {
CHECK_NE(arena.get(), nullptr);
auto spine =
CallSpine::Create(std::move(client_initial_metadata), event_engine,
std::move(arena), legacy_context);

@ -266,7 +266,7 @@ class CallSpine final : public CallSpineInterface, public Party {
RefCountedPtr<Arena> arena, grpc_call_context_element* legacy_context) {
return RefCountedPtr<CallSpine>(
arena->New<CallSpine>(std::move(client_initial_metadata), event_engine,
std::move(arena), legacy_context));
arena, legacy_context));
}
~CallSpine() override {
@ -373,8 +373,8 @@ class CallSpine final : public CallSpineInterface, public Party {
call_filters_(std::move(client_initial_metadata)),
event_engine_(event_engine) {
if (legacy_context == nullptr) {
legacy_context_ = static_cast<grpc_call_context_element*>(
arena->Alloc(sizeof(grpc_call_context_element) * GRPC_CONTEXT_COUNT));
legacy_context_ = static_cast<grpc_call_context_element*>(arena_->Alloc(
sizeof(grpc_call_context_element) * GRPC_CONTEXT_COUNT));
memset(legacy_context_, 0,
sizeof(grpc_call_context_element) * GRPC_CONTEXT_COUNT);
legacy_context_is_owned_ = true;
@ -405,10 +405,11 @@ class CallSpine final : public CallSpineInterface, public Party {
}
void PartyOver() override {
auto arena = arena_;
{
ScopedContext context(this);
CancelRemainingParticipants();
arena_->DestroyManagedNewObjects();
arena->DestroyManagedNewObjects();
}
this->~CallSpine();
}

Loading…
Cancel
Save