Index: remoting/protocol/pepper_session.cc |
diff --git a/remoting/protocol/pepper_session.cc b/remoting/protocol/pepper_session.cc |
index 509440e779827986c6617d60190c83e296383b71..5e971bd2e4beb4722fbffb4a310032f49cb53940 100644 |
--- a/remoting/protocol/pepper_session.cc |
+++ b/remoting/protocol/pepper_session.cc |
@@ -44,9 +44,10 @@ PepperSession::~PepperSession() { |
session_manager_->SessionDestroyed(this); |
} |
-void PepperSession::SetStateChangeCallback(StateChangeCallback* callback) { |
+void PepperSession::SetStateChangeCallback( |
+ const StateChangeCallback& callback) { |
DCHECK(CalledOnValidThread()); |
- state_change_callback_.reset(callback); |
+ state_change_callback_ = callback; |
} |
Session::Error PepperSession::error() { |
@@ -59,14 +60,14 @@ void PepperSession::StartConnection( |
const std::string& peer_public_key, |
const std::string& client_token, |
CandidateSessionConfig* config, |
- Session::StateChangeCallback* state_change_callback) { |
+ const StateChangeCallback& state_change_callback) { |
DCHECK(CalledOnValidThread()); |
peer_jid_ = peer_jid; |
peer_public_key_ = peer_public_key; |
initiator_token_ = client_token; |
candidate_config_.reset(config); |
- state_change_callback_.reset(state_change_callback); |
+ state_change_callback_ = state_change_callback; |
// Generate random session ID. There are usually not more than 1 |
// concurrent session per host, so a random 64-bit integer provides |
@@ -382,8 +383,8 @@ void PepperSession::SetState(State new_state) { |
DCHECK_NE(state_, FAILED); |
state_ = new_state; |
- if (state_change_callback_.get()) |
- state_change_callback_->Run(new_state); |
+ if (!state_change_callback_.is_null()) |
+ state_change_callback_.Run(new_state); |
} |
} |