Index: net/socket_stream/socket_stream.cc |
diff --git a/net/socket_stream/socket_stream.cc b/net/socket_stream/socket_stream.cc |
index e9485703f4667b296e10ad08443e36f966b9a69c..0e9f6b0a2a9554d5e0613f26d10fc6fb4034ab8f 100644 |
--- a/net/socket_stream/socket_stream.cc |
+++ b/net/socket_stream/socket_stream.cc |
@@ -71,10 +71,6 @@ SocketStream::SocketStream(const GURL& url, Delegate* delegate) |
base::Unretained(this)))), |
ALLOW_THIS_IN_INITIALIZER_LIST( |
io_callback_old_(this, &SocketStream::OnIOCompleted)), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- read_callback_old_(this, &SocketStream::OnReadCompleted)), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- write_callback_old_(this, &SocketStream::OnWriteCompleted)), |
read_buf_(NULL), |
write_buf_(NULL), |
current_write_buf_(NULL), |
@@ -668,7 +664,7 @@ int SocketStream::DoTcpConnect(int result) { |
net_log_.net_log(), |
net_log_.source())); |
metrics_->OnStartConnection(); |
- return socket_->Connect(&io_callback_old_); |
+ return socket_->Connect(io_callback_); |
} |
int SocketStream::DoTcpConnectComplete(int result) { |
@@ -761,7 +757,7 @@ int SocketStream::DoWriteTunnelHeaders() { |
int buf_len = static_cast<int>(tunnel_request_headers_->headers_.size() - |
tunnel_request_headers_bytes_sent_); |
DCHECK_GT(buf_len, 0); |
- return socket_->Write(tunnel_request_headers_, buf_len, &io_callback_old_); |
+ return socket_->Write(tunnel_request_headers_, buf_len, io_callback_); |
} |
int SocketStream::DoWriteTunnelHeadersComplete(int result) { |
@@ -798,7 +794,7 @@ int SocketStream::DoReadTunnelHeaders() { |
tunnel_response_headers_->SetDataOffset(tunnel_response_headers_len_); |
CHECK(tunnel_response_headers_->data()); |
- return socket_->Read(tunnel_response_headers_, buf_len, &io_callback_old_); |
+ return socket_->Read(tunnel_response_headers_, buf_len, io_callback_); |
} |
int SocketStream::DoReadTunnelHeadersComplete(int result) { |
@@ -895,7 +891,7 @@ int SocketStream::DoSOCKSConnect() { |
s = new SOCKSClientSocket(s, req_info, host_resolver_); |
socket_.reset(s); |
metrics_->OnCountConnectionType(SocketStreamMetrics::SOCKS_CONNECTION); |
- return socket_->Connect(&io_callback_old_); |
+ return socket_->Connect(io_callback_); |
} |
int SocketStream::DoSOCKSConnectComplete(int result) { |
@@ -926,7 +922,7 @@ int SocketStream::DoSecureProxyConnect() { |
ssl_context)); |
next_state_ = STATE_SECURE_PROXY_CONNECT_COMPLETE; |
metrics_->OnCountConnectionType(SocketStreamMetrics::SECURE_PROXY_CONNECTION); |
- return socket_->Connect(&io_callback_old_); |
+ return socket_->Connect(io_callback_); |
} |
int SocketStream::DoSecureProxyConnectComplete(int result) { |
@@ -956,7 +952,7 @@ int SocketStream::DoSSLConnect() { |
ssl_context)); |
next_state_ = STATE_SSL_CONNECT_COMPLETE; |
metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION); |
- return socket_->Connect(&io_callback_old_); |
+ return socket_->Connect(io_callback_); |
} |
int SocketStream::DoSSLConnectComplete(int result) { |
@@ -1001,7 +997,9 @@ int SocketStream::DoReadWrite(int result) { |
if (!read_buf_) { |
// No read pending and server didn't close the socket. |
read_buf_ = new IOBuffer(kReadBufferSize); |
- result = socket_->Read(read_buf_, kReadBufferSize, &read_callback_old_); |
+ result = socket_->Read(read_buf_, kReadBufferSize, |
+ base::Bind(&SocketStream::OnReadCompleted, |
+ base::Unretained(this))); |
if (result > 0) { |
return DidReceiveData(result); |
} else if (result == 0) { |
@@ -1029,7 +1027,8 @@ int SocketStream::DoReadWrite(int result) { |
current_write_buf_->SetOffset(write_buf_offset_); |
result = socket_->Write(current_write_buf_, |
current_write_buf_->BytesRemaining(), |
- &write_callback_old_); |
+ base::Bind(&SocketStream::OnWriteCompleted, |
+ base::Unretained(this))); |
if (result > 0) { |
return DidSendData(result); |
} |