Chromium Code Reviews| Index: webrtc/api/peerconnection.cc |
| diff --git a/webrtc/api/peerconnection.cc b/webrtc/api/peerconnection.cc |
| index 506a21582f7ae0ce6f4dffa34497ac72b4dc14ee..56b2bc8728a21183bfc41491c3f355f5903cb3a9 100644 |
| --- a/webrtc/api/peerconnection.cc |
| +++ b/webrtc/api/peerconnection.cc |
| @@ -758,6 +758,9 @@ bool PeerConnection::RemoveTrack(RtpSenderInterface* sender) { |
| rtc::scoped_refptr<DtmfSenderInterface> PeerConnection::CreateDtmfSender( |
| AudioTrackInterface* track) { |
| TRACE_EVENT0("webrtc", "PeerConnection::CreateDtmfSender"); |
| + if (IsClosed()) { |
| + return nullptr; |
| + } |
| if (!track) { |
| LOG(LS_ERROR) << "CreateDtmfSender - track is NULL."; |
| return NULL; |
| @@ -780,6 +783,9 @@ rtc::scoped_refptr<RtpSenderInterface> PeerConnection::CreateSender( |
| const std::string& kind, |
| const std::string& stream_id) { |
| TRACE_EVENT0("webrtc", "PeerConnection::CreateSender"); |
| + if (IsClosed()) { |
| + return nullptr; |
| + } |
| rtc::scoped_refptr<RtpSenderInterface> new_sender; |
| if (kind == MediaStreamTrackInterface::kAudioKind) { |
| new_sender = RtpSenderProxy::Create( |
| @@ -1175,6 +1181,9 @@ bool PeerConnection::SetConfiguration(const RTCConfiguration& config) { |
| bool PeerConnection::AddIceCandidate( |
| const IceCandidateInterface* ice_candidate) { |
| TRACE_EVENT0("webrtc", "PeerConnection::AddIceCandidate"); |
| + if (IsClosed()) { |
| + return false; |
| + } |
| return session_->ProcessIceMessage(ice_candidate); |
| } |
| @@ -1296,6 +1305,9 @@ void PeerConnection::OnMessage(rtc::Message* msg) { |
| void PeerConnection::CreateAudioReceiver(MediaStreamInterface* stream, |
| const std::string& track_id, |
| uint32_t ssrc) { |
| + if (IsClosed()) { |
| + return; |
| + } |
|
Taylor Brandstetter
2016/05/11 22:18:36
This and CreateVideoReceiver are internal methods,
Zhi Huang
2016/05/12 01:25:49
Done.
|
| receivers_.push_back(RtpReceiverProxy::Create( |
| signaling_thread(), |
| new AudioRtpReceiver(stream, track_id, ssrc, session_.get()))); |
| @@ -1304,6 +1316,9 @@ void PeerConnection::CreateAudioReceiver(MediaStreamInterface* stream, |
| void PeerConnection::CreateVideoReceiver(MediaStreamInterface* stream, |
| const std::string& track_id, |
| uint32_t ssrc) { |
| + if (IsClosed()) { |
| + return; |
| + } |
| receivers_.push_back(RtpReceiverProxy::Create( |
| signaling_thread(), |
| new VideoRtpReceiver(stream, track_id, factory_->worker_thread(), ssrc, |
| @@ -1360,17 +1375,26 @@ void PeerConnection::OnIceGatheringChange( |
| void PeerConnection::OnIceCandidate(const IceCandidateInterface* candidate) { |
| RTC_DCHECK(signaling_thread()->IsCurrent()); |
| + if (IsClosed()) { |
| + return; |
| + } |
| observer_->OnIceCandidate(candidate); |
| } |
| void PeerConnection::OnIceCandidatesRemoved( |
| const std::vector<cricket::Candidate>& candidates) { |
| RTC_DCHECK(signaling_thread()->IsCurrent()); |
| + if (IsClosed()) { |
| + return; |
| + } |
| observer_->OnIceCandidatesRemoved(candidates); |
| } |
| void PeerConnection::OnIceConnectionReceivingChange(bool receiving) { |
| RTC_DCHECK(signaling_thread()->IsCurrent()); |
| + if (IsClosed()) { |
| + return; |
| + } |
| observer_->OnIceConnectionReceivingChange(receiving); |
| } |