Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: webrtc/media/engine/fakewebrtccall.cc

Issue 2645703003: Stop leaking FlexfecReceiveStream objects after call shutdown. (Closed)
Patch Set: Rebase. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/media/engine/fakewebrtccall.h ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/fakewebrtccall.cc
diff --git a/webrtc/media/engine/fakewebrtccall.cc b/webrtc/media/engine/fakewebrtccall.cc
index d189f918d59c63a3b34e9e200325aec5c7ddc903..896d0b9e6716c0439e650f3f85ce8aaa32e02506 100644
--- a/webrtc/media/engine/fakewebrtccall.cc
+++ b/webrtc/media/engine/fakewebrtccall.cc
@@ -378,7 +378,7 @@ const FakeAudioReceiveStream* FakeCall::GetAudioReceiveStream(uint32_t ssrc) {
return nullptr;
}
-const std::list<FakeFlexfecReceiveStream>&
+const std::vector<FakeFlexfecReceiveStream*>&
FakeCall::GetFlexfecReceiveStreams() {
return flexfec_receive_streams_;
}
@@ -486,21 +486,24 @@ void FakeCall::DestroyVideoReceiveStream(
webrtc::FlexfecReceiveStream* FakeCall::CreateFlexfecReceiveStream(
const webrtc::FlexfecReceiveStream::Config& config) {
- flexfec_receive_streams_.push_back(FakeFlexfecReceiveStream(config));
+ FakeFlexfecReceiveStream* fake_stream = new FakeFlexfecReceiveStream(config);
+ flexfec_receive_streams_.push_back(fake_stream);
++num_created_receive_streams_;
- return &flexfec_receive_streams_.back();
+ return fake_stream;
}
void FakeCall::DestroyFlexfecReceiveStream(
webrtc::FlexfecReceiveStream* receive_stream) {
- for (auto it = flexfec_receive_streams_.begin();
- it != flexfec_receive_streams_.end(); ++it) {
- if (&(*it) == receive_stream) {
- flexfec_receive_streams_.erase(it);
- return;
- }
+ auto it = std::find(flexfec_receive_streams_.begin(),
+ flexfec_receive_streams_.end(),
+ static_cast<FakeFlexfecReceiveStream*>(receive_stream));
+ if (it == flexfec_receive_streams_.end()) {
+ ADD_FAILURE()
+ << "DestroyFlexfecReceiveStream called with unknown parameter.";
+ } else {
+ delete *it;
+ flexfec_receive_streams_.erase(it);
}
- ADD_FAILURE() << "DestroyFlexfecReceiveStream called with unknown parameter.";
}
webrtc::PacketReceiver* FakeCall::Receiver() {
« no previous file with comments | « webrtc/media/engine/fakewebrtccall.h ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698