diff options
author | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-11 09:00:45 +0000 |
---|---|---|
committer | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-11 09:00:45 +0000 |
commit | ba60bc6c8757581f5abc9263c2f16a28ac1d7e01 (patch) | |
tree | 18b69cd3c9db57699cd0f227b8e21d9808402f8b /content/renderer/media/mock_peer_connection_impl.cc | |
parent | 89993aee82daaaf57a485b6be24ba30be556d4ed (diff) | |
download | chromium_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.cc | 15 |
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; } |