| Index: remoting/protocol/jingle_session.cc
|
| diff --git a/remoting/protocol/jingle_session.cc b/remoting/protocol/jingle_session.cc
|
| index 90f7e9e7f42f78bdecbbaebf99dc459959141548..347db864898fe73fea58484a5dfa1dc6df5496c5 100644
|
| --- a/remoting/protocol/jingle_session.cc
|
| +++ b/remoting/protocol/jingle_session.cc
|
| @@ -74,11 +74,6 @@ JingleSession::JingleSession(JingleSessionManager* session_manager)
|
| }
|
|
|
| JingleSession::~JingleSession() {
|
| - base::STLDeleteContainerPointers(pending_requests_.begin(),
|
| - pending_requests_.end());
|
| - base::STLDeleteContainerPointers(transport_info_requests_.begin(),
|
| - transport_info_requests_.end());
|
| -
|
| session_manager_->SessionDestroyed(this);
|
| }
|
|
|
| @@ -230,7 +225,7 @@ void JingleSession::SendTransportInfo(
|
| base::Unretained(this)));
|
| if (request) {
|
| request->SetTimeout(base::TimeDelta::FromSeconds(kTransportInfoTimeout));
|
| - transport_info_requests_.push_back(request.release());
|
| + transport_info_requests_.push_back(std::move(request));
|
| } else {
|
| LOG(ERROR) << "Failed to send a transport-info message";
|
| }
|
| @@ -299,7 +294,7 @@ void JingleSession::SendMessage(const JingleMessage& message) {
|
| }
|
| if (request) {
|
| request->SetTimeout(base::TimeDelta::FromSeconds(timeout));
|
| - pending_requests_.insert(request.release());
|
| + pending_requests_.insert(std::move(request));
|
| } else {
|
| LOG(ERROR) << "Failed to send a "
|
| << JingleMessage::GetActionName(message.action) << " message";
|
| @@ -313,8 +308,11 @@ void JingleSession::OnMessageResponse(
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| // Delete the request from the list of pending requests.
|
| - pending_requests_.erase(request);
|
| - delete request;
|
| + pending_requests_.erase(
|
| + std::find_if(pending_requests_.begin(), pending_requests_.end(),
|
| + [request](const std::unique_ptr<IqRequest>& ptr) {
|
| + return ptr.get() == request;
|
| + }));
|
|
|
| // Ignore all responses after session was closed.
|
| if (state_ == CLOSED || state_ == FAILED)
|
| @@ -349,14 +347,12 @@ void JingleSession::OnTransportInfoResponse(IqRequest* request,
|
|
|
| // Consider transport-info requests sent before this one lost and delete
|
| // corresponding IqRequest objects.
|
| - while (transport_info_requests_.front() != request) {
|
| - delete transport_info_requests_.front();
|
| + while (transport_info_requests_.front().get() != request) {
|
| transport_info_requests_.pop_front();
|
| }
|
|
|
| // Delete the |request| itself.
|
| - DCHECK_EQ(request, transport_info_requests_.front());
|
| - delete request;
|
| + DCHECK_EQ(request, transport_info_requests_.front().get());
|
| transport_info_requests_.pop_front();
|
|
|
| // Ignore transport-info timeouts.
|
|
|