From 9b5f96e6a28ba7bf98a2b70b54ae14eb0a550156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Bostr=C3=B6m?= Date: Thu, 26 Mar 2015 11:25:49 +0100 Subject: [PATCH] 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} --- webrtc/video/call.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/webrtc/video/call.cc b/webrtc/video/call.cc index c455ba8ee6..d9dc334c00 100644 --- a/webrtc/video/call.cc +++ b/webrtc/video/call.cc @@ -229,6 +229,8 @@ Call::Call(webrtc::VideoEngine* video_engine, const Call::Config& config) } 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 @@ Call::~Call() { 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 @@ void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) { } } } + CHECK(send_stream_impl != nullptr); VideoSendStream::RtpStateMap rtp_state = send_stream_impl->GetRtpStates(); @@ -297,7 +300,6 @@ void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) { suspended_send_ssrcs_[it->first] = it->second; } - DCHECK(send_stream_impl != nullptr); delete send_stream_impl; } @@ -352,8 +354,7 @@ void Call::DestroyVideoReceiveStream( } } } - - DCHECK(receive_stream_impl != nullptr); + CHECK(receive_stream_impl != nullptr); delete receive_stream_impl; }