Index: webrtc/pc/webrtcsession.cc |
diff --git a/webrtc/pc/webrtcsession.cc b/webrtc/pc/webrtcsession.cc |
index cc424b222e081c994b6a7e546f59c126d86a7c01..ddf5ba760a7a41c9ec8aaceac91a1b1fbba6f8a8 100644 |
--- a/webrtc/pc/webrtcsession.cc |
+++ b/webrtc/pc/webrtcsession.cc |
@@ -630,7 +630,9 @@ bool WebRtcSession::Initialize( |
void WebRtcSession::Close() { |
SetState(STATE_CLOSED); |
+ call_ = nullptr; |
RemoveUnusedChannels(nullptr); |
+ RTC_DCHECK(!call_); |
RTC_DCHECK(!voice_channel_); |
RTC_DCHECK(!video_channel_); |
RTC_DCHECK(!rtp_data_channel_); |
@@ -1895,6 +1897,15 @@ bool WebRtcSession::CreateDataChannel(const cricket::ContentInfo* content, |
return true; |
} |
+Call::Stats WebRtcSession::GetCallStats() { |
+ if (!worker_thread()->IsCurrent()) { |
+ return worker_thread()->Invoke<Call::Stats>( |
+ RTC_FROM_HERE, rtc::Bind(&WebRtcSession::GetCallStats, this)); |
+ } |
+ RTC_DCHECK(call_); |
+ return call_->GetStats(); |
+} |
+ |
std::unique_ptr<SessionStats> WebRtcSession::GetStats_n( |
const ChannelNamePairs& channel_name_pairs) { |
RTC_DCHECK(network_thread()->IsCurrent()); |
@@ -2317,7 +2328,8 @@ void WebRtcSession::ReportNegotiatedCiphers( |
void WebRtcSession::OnSentPacket_w(const rtc::SentPacket& sent_packet) { |
RTC_DCHECK(worker_thread()->IsCurrent()); |
- call_->OnSentPacket(sent_packet); |
+ if (call_) |
+ call_->OnSentPacket(sent_packet); |
} |
const std::string WebRtcSession::GetTransportName( |