summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/mock_peer_connection_impl.cc
diff options
context:
space:
mode:
authorperkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-11 09:00:45 +0000
committerperkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-11 09:00:45 +0000
commitba60bc6c8757581f5abc9263c2f16a28ac1d7e01 (patch)
tree18b69cd3c9db57699cd0f227b8e21d9808402f8b /content/renderer/media/mock_peer_connection_impl.cc
parent89993aee82daaaf57a485b6be24ba30be556d4ed (diff)
downloadchromium_src-ba60bc6c8757581f5abc9263c2f16a28ac1d7e01.zip
chromium_src-ba60bc6c8757581f5abc9263c2f16a28ac1d7e01.tar.gz
chromium_src-ba60bc6c8757581f5abc9263c2f16a28ac1d7e01.tar.bz2
Fix crash when removing a MediaStream from a PeerConnection.
BUG= 121083 TEST= unit test Review URL: http://codereview.chromium.org/9968077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131735 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media/mock_peer_connection_impl.cc')
-rw-r--r--content/renderer/media/mock_peer_connection_impl.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/content/renderer/media/mock_peer_connection_impl.cc b/content/renderer/media/mock_peer_connection_impl.cc
index 8eeba32..ccfae44 100644
--- a/content/renderer/media/mock_peer_connection_impl.cc
+++ b/content/renderer/media/mock_peer_connection_impl.cc
@@ -33,11 +33,12 @@ class MockStreamCollection : public StreamCollectionInterface {
virtual ~MockStreamCollection() {}
private:
- std::vector<MediaStreamInterface*> streams_;
+ std::vector<talk_base::scoped_refptr<MediaStreamInterface> > streams_;
};
MockPeerConnectionImpl::MockPeerConnectionImpl()
: stream_changes_committed_(false),
+ local_streams_(new talk_base::RefCountedObject<MockStreamCollection>),
remote_streams_(new talk_base::RefCountedObject<MockStreamCollection>) {
}
@@ -54,8 +55,7 @@ bool MockPeerConnectionImpl::Send(const std::string& msg) {
talk_base::scoped_refptr<StreamCollectionInterface>
MockPeerConnectionImpl::local_streams() {
- NOTIMPLEMENTED();
- return NULL;
+ return local_streams_;
}
talk_base::scoped_refptr<StreamCollectionInterface>
@@ -64,10 +64,13 @@ MockPeerConnectionImpl::remote_streams() {
}
void MockPeerConnectionImpl::AddStream(LocalMediaStreamInterface* stream) {
+ DCHECK(stream_label_.empty());
stream_label_ = stream->label();
+ local_streams_->AddStream(stream);
}
void MockPeerConnectionImpl::RemoveStream(LocalMediaStreamInterface* stream) {
+ DCHECK_EQ(stream_label_, stream->label());
stream_label_.clear();
}
@@ -130,15 +133,13 @@ bool MockPeerConnectionImpl::ProcessIceMessage(
}
const webrtc::SessionDescriptionInterface*
-MockPeerConnectionImpl::local_description()
- const {
+MockPeerConnectionImpl::local_description() const {
NOTIMPLEMENTED();
return NULL;
}
const webrtc::SessionDescriptionInterface*
-MockPeerConnectionImpl::remote_description()
- const {
+MockPeerConnectionImpl::remote_description() const {
NOTIMPLEMENTED();
return NULL;
}