Index: net/curvecp/test_server.cc |
diff --git a/net/curvecp/test_server.cc b/net/curvecp/test_server.cc |
index a1ad4b2f52d13f119b65aeae0aeff8e510cfaa6b..d8badb9958134fc3b96fbca428e5475dd54886a3 100644 |
--- a/net/curvecp/test_server.cc |
+++ b/net/curvecp/test_server.cc |
@@ -63,11 +63,7 @@ void TestServer::OnAccept(CurveCPServerSocket* new_socket) { |
EchoServer::EchoServer() |
: socket_(NULL), |
- bytes_received_(0), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- read_callback_(this, &EchoServer::OnReadComplete)), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- write_callback_(this, &EchoServer::OnWriteComplete)) { |
+ bytes_received_(0) { |
} |
EchoServer::~EchoServer() { |
@@ -100,7 +96,9 @@ void EchoServer::OnReadComplete(int result) { |
// Echo the read data back here. |
DCHECK(!write_buffer_.get()); |
write_buffer_ = new DrainableIOBuffer(read_buffer_, result); |
- int rv = socket_->Write(write_buffer_, result, &write_callback_); |
+ int rv = socket_->Write(write_buffer_, result, |
+ base::Bind(&EchoServer::OnWriteComplete, |
+ base::Unretained(this))); |
if (rv == ERR_IO_PENDING) |
return; |
OnWriteComplete(rv); |
@@ -116,7 +114,8 @@ void EchoServer::OnWriteComplete(int result) { |
while (write_buffer_->BytesRemaining()) { |
int rv = socket_->Write(write_buffer_, |
write_buffer_->BytesRemaining(), |
- &write_callback_); |
+ base::Bind(&EchoServer::OnWriteComplete, |
+ base::Unretained(this))); |
if (rv == ERR_IO_PENDING) |
return; |
OnWriteComplete(rv); |
@@ -134,7 +133,9 @@ void EchoServer::ReadData() { |
int rv; |
do { |
- rv = socket_->Read(read_buffer_, kMaxMessage, &read_callback_); |
+ rv = socket_->Read(read_buffer_, kMaxMessage, |
+ base::Bind(&EchoServer::OnReadComplete, |
+ base::Unretained(this))); |
if (rv == ERR_IO_PENDING) |
return; |
OnReadComplete(rv); // Complete the read manually |