From a054569c15631aeab407fba92d782f3410cb3ef4 Mon Sep 17 00:00:00 2001 From: "wu@webrtc.org" Date: Thu, 1 Aug 2013 22:08:14 +0000 Subject: [PATCH] Fix memory leak in datachannel and its test. RISK=P3 TESTED=memcheck build tools/valgrind-webrtc/webrtc_tests.sh --tool memcheck --test out/Debug/libjingle_peerconnection_unittest --gtest_filter=SctpDataChannelTest* R=mallinath@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1941005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4470 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/app/webrtc/datachannel.cc | 6 +++--- talk/app/webrtc/datachannel_unittest.cc | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/talk/app/webrtc/datachannel.cc b/talk/app/webrtc/datachannel.cc index 497242422f..9195f8d47d 100644 --- a/talk/app/webrtc/datachannel.cc +++ b/talk/app/webrtc/datachannel.cc @@ -336,9 +336,9 @@ void DataChannel::SendQueuedSendData() { } void DataChannel::ClearQueuedSendData() { - while (!queued_received_data_.empty()) { - DataBuffer* buffer = queued_received_data_.front(); - queued_received_data_.pop(); + while (!queued_send_data_.empty()) { + DataBuffer* buffer = queued_send_data_.front(); + queued_send_data_.pop_front(); delete buffer; } } diff --git a/talk/app/webrtc/datachannel_unittest.cc b/talk/app/webrtc/datachannel_unittest.cc index d3faf177aa..a2f898ed94 100644 --- a/talk/app/webrtc/datachannel_unittest.cc +++ b/talk/app/webrtc/datachannel_unittest.cc @@ -49,12 +49,13 @@ class SctpDataChannelTest : public testing::Test { new cricket::FakeDeviceManager(), new cricket::CaptureManager(), talk_base::Thread::Current())), + ms_signaling_(new webrtc::MediaStreamSignaling( + talk_base::Thread::Current(), NULL)), session_(channel_manager_.get(), talk_base::Thread::Current(), talk_base::Thread::Current(), NULL, - new webrtc::MediaStreamSignaling(talk_base::Thread::Current(), - NULL)), + ms_signaling_.get()), webrtc_data_channel_(NULL) {} virtual void SetUp() { @@ -90,6 +91,7 @@ class SctpDataChannelTest : public testing::Test { cricket::FakeMediaEngine* media_engine_; cricket::FakeDataEngine* data_engine_; talk_base::scoped_ptr channel_manager_; + talk_base::scoped_ptr ms_signaling_; webrtc::WebRtcSession session_; talk_base::scoped_refptr webrtc_data_channel_; };