Add some sanity CHECKs to webrtc::Call. These checks would help catching double-deletes, forgetting to destroy streams and also catch if VideoEngine has held on to any stale references. BUG=1788 R=stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/42929004 Cr-Commit-Position: refs/heads/master@{#8866}
diff --git a/webrtc/video/call.cc b/webrtc/video/call.cc index c455ba8..d9dc334 100644 --- a/webrtc/video/call.cc +++ b/webrtc/video/call.cc
@@ -229,6 +229,8 @@ } Call::~Call() { + CHECK_EQ(0u, send_ssrcs_.size()); + CHECK_EQ(0u, receive_ssrcs_.size()); base_->DeleteChannel(base_channel_id_); render_->DeRegisterVideoRenderModule(*external_render_.get()); @@ -238,7 +240,7 @@ codec_->Release(); render_->Release(); rtp_rtcp_->Release(); - webrtc::VideoEngine::Delete(video_engine_); + CHECK(webrtc::VideoEngine::Delete(video_engine_)); } PacketReceiver* Call::Receiver() { return this; } @@ -288,6 +290,7 @@ } } } + CHECK(send_stream_impl != nullptr); VideoSendStream::RtpStateMap rtp_state = send_stream_impl->GetRtpStates(); @@ -297,7 +300,6 @@ suspended_send_ssrcs_[it->first] = it->second; } - DCHECK(send_stream_impl != nullptr); delete send_stream_impl; } @@ -352,8 +354,7 @@ } } } - - DCHECK(receive_stream_impl != nullptr); + CHECK(receive_stream_impl != nullptr); delete receive_stream_impl; }