Index: net/tools/quic/quic_simple_server_session.cc |
diff --git a/net/tools/quic/quic_simple_server_session.cc b/net/tools/quic/quic_simple_server_session.cc |
index 429c6fdd440cd7c2e95bb404cd20761a4706d3df..3db89a4cafeb0d3e78af8097c6552d23e603491a 100644 |
--- a/net/tools/quic/quic_simple_server_session.cc |
+++ b/net/tools/quic/quic_simple_server_session.cc |
@@ -77,7 +77,8 @@ void QuicSimpleServerSession::PromisePushResources( |
SpdyHeaderBlock headers = SynthesizePushRequestHeaders( |
request_url, resource, original_request_headers); |
highest_promised_stream_id_ += 2; |
- SendPushPromise(original_stream_id, highest_promised_stream_id_, headers); |
+ SendPushPromise(original_stream_id, highest_promised_stream_id_, |
+ headers.Clone()); |
promised_streams_.push_back(PromisedStreamInfo( |
std::move(headers), highest_promised_stream_id_, resource.priority)); |
} |
@@ -151,7 +152,7 @@ SpdyHeaderBlock QuicSimpleServerSession::SynthesizePushRequestHeaders( |
GURL push_request_url = resource.request_url; |
string path = push_request_url.path(); |
- SpdyHeaderBlock spdy_headers = original_request_headers; |
+ SpdyHeaderBlock spdy_headers = original_request_headers.Clone(); |
// :authority could be different from original request. |
spdy_headers.ReplaceOrAppendHeader(":authority", push_request_url.host()); |
spdy_headers.ReplaceOrAppendHeader(":path", path); |
@@ -179,7 +180,7 @@ void QuicSimpleServerSession::SendPushPromise(QuicStreamId original_stream_id, |
void QuicSimpleServerSession::HandlePromisedPushRequests() { |
while (!promised_streams_.empty() && ShouldCreateOutgoingDynamicStream()) { |
- const PromisedStreamInfo& promised_info = promised_streams_.front(); |
+ PromisedStreamInfo& promised_info = promised_streams_.front(); |
DCHECK_EQ(next_outgoing_stream_id(), promised_info.stream_id); |
if (promised_info.is_cancelled) { |
@@ -196,10 +197,10 @@ void QuicSimpleServerSession::HandlePromisedPushRequests() { |
DCHECK_EQ(promised_info.stream_id, promised_stream->id()); |
DVLOG(1) << "created server push stream " << promised_stream->id(); |
- const SpdyHeaderBlock request_headers(promised_info.request_headers); |
+ SpdyHeaderBlock request_headers(std::move(promised_info.request_headers)); |
promised_streams_.pop_front(); |
- promised_stream->PushResponse(request_headers); |
+ promised_stream->PushResponse(std::move(request_headers)); |
} |
} |