From 66fae1d81013a2321e7d607a426f834a01b847ce Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 18 Jul 2019 17:52:46 +0200 Subject: Implement a threadsafe & revised version of http2PushedStream. --- netwerk/protocol/http/Http2Stream.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'netwerk/protocol/http/Http2Stream.cpp') diff --git a/netwerk/protocol/http/Http2Stream.cpp b/netwerk/protocol/http/Http2Stream.cpp index 581ebe016..22d8142c9 100644 --- a/netwerk/protocol/http/Http2Stream.cpp +++ b/netwerk/protocol/http/Http2Stream.cpp @@ -442,12 +442,14 @@ Http2Stream::ParseHttpRequestHeaders(const char *buf, requestContext->GetSpdyPushCache(&cache); } + RefPtr pushedStreamWrapper; Http2PushedStream *pushedStream = nullptr; // If a push stream is attached to the transaction via onPush, match only with that // one. This occurs when a push was made with in conjunction with a nsIHttpPushListener nsHttpTransaction *trans = mTransaction->QueryHttpTransaction(); - if (trans && (pushedStream = trans->TakePushedStream())) { + if (trans && (pushedStreamWrapper = trans->TakePushedStream()) && + (pushedStream = pushedStreamWrapper->GetStream())) { if (pushedStream->mSession == mSession) { LOG3(("Pushed Stream match based on OnPush correlation %p", pushedStream)); } else { -- cgit v1.2.3