From 29f726261d21f8e851e3c305d518fce0e7868054 Mon Sep 17 00:00:00 2001 From: hai007 Date: Thu, 4 Feb 2021 13:35:56 -0800 Subject: [PATCH] Roll forward up to cl/355413583. --- cpp/core/internal/payload_manager.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/core/internal/payload_manager.cc b/cpp/core/internal/payload_manager.cc index 2fbb40e9..b74494d4 100644 --- a/cpp/core/internal/payload_manager.cc +++ b/cpp/core/internal/payload_manager.cc @@ -391,9 +391,11 @@ void PayloadManager::OnEndpointDisconnect(ClientProxy* client, if (!pending_payload) continue; auto endpoint_info = pending_payload->GetEndpoint(endpoint_id); if (!endpoint_info) continue; - + std::int64_t endpoint_offset = endpoint_info->offset; // Stop tracking the endpoint for this payload. pending_payload->RemoveEndpoints({endpoint_id}); + // |endpoint_info| is longer valid after calling RemoveEndpoints. + endpoint_info = nullptr; std::int64_t payload_total_size = pending_payload->GetInternalPayload()->GetTotalSize(); @@ -406,7 +408,7 @@ void PayloadManager::OnEndpointDisconnect(ClientProxy* client, // Create the payload transfer update. PayloadProgressInfo update{payload_id, PayloadProgressInfo::Status::kFailure, - payload_total_size, endpoint_info->offset}; + payload_total_size, endpoint_offset}; // Send a client notification of a payload transfer failure. client->OnPayloadProgress(endpoint_id, update);