Index: remoting/client/chromoting_client.cc |
diff --git a/remoting/client/chromoting_client.cc b/remoting/client/chromoting_client.cc |
index 327afa067dfa04bc9d65367bcc9acbc7e6b02725..bde10dabba8d17b163a03913496d8bd3bd0abf91 100644 |
--- a/remoting/client/chromoting_client.cc |
+++ b/remoting/client/chromoting_client.cc |
@@ -28,7 +28,7 @@ ChromotingClient::ChromotingClient(const ClientConfig& config, |
ChromotingView* view, |
RectangleUpdateDecoder* rectangle_decoder, |
InputHandler* input_handler, |
- Task* client_done) |
+ const base::Closure& client_done) |
: config_(config), |
context_(context), |
connection_(connection), |
@@ -75,8 +75,9 @@ void ChromotingClient::OnDisconnected(const base::Closure& shutdown_task) { |
} |
void ChromotingClient::ClientDone() { |
- if (client_done_ != NULL) { |
+ if (!client_done_.is_null()) { |
message_loop()->PostTask(FROM_HERE, client_done_); |
+ client_done_.Reset(); |
} |
} |
@@ -146,8 +147,8 @@ void ChromotingClient::DispatchPacket() { |
decode_start = base::Time::Now(); |
rectangle_decoder_->DecodePacket( |
- packet, NewRunnableMethod(this, &ChromotingClient::OnPacketDone, |
- last_packet, decode_start)); |
+ packet, base::Bind(&ChromotingClient::OnPacketDone, |
+ base::Unretained(this), last_packet, decode_start)); |
} |
void ChromotingClient::OnConnectionState( |