diff options
-rw-r--r-- | chromium/net/spdy/spdy_proxy_client_socket.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/chromium/net/spdy/spdy_proxy_client_socket.cc b/chromium/net/spdy/spdy_proxy_client_socket.cc index d9b67febc27..bdcf24a1cb6 100644 --- a/chromium/net/spdy/spdy_proxy_client_socket.cc +++ b/chromium/net/spdy/spdy_proxy_client_socket.cc @@ -278,10 +278,11 @@ int SpdyProxyClientSocket::GetLocalAddress(IPEndPoint* address) const { } void SpdyProxyClientSocket::RunWriteCallback(int result) { - CHECK(write_callback_); - base::WeakPtr<SpdyProxyClientSocket> weak_ptr = weak_factory_.GetWeakPtr(); - std::move(write_callback_).Run(result); + // `write_callback_` might be consumed by OnClose(). + if (write_callback_) { + std::move(write_callback_).Run(result); + } if (!weak_ptr) { // `this` was already destroyed while running `write_callback_`. Must // return immediately without touching any field member. |