Index: third_party/WebKit/Source/modules/mediastream/MediaStream.cpp |
diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp |
index 8c5ac74f2d61de9a07506de82b2cdaded59f3a3a..e9da453920eb730d403cf9ce11ebec0266b23166 100644 |
--- a/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp |
+++ b/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp |
@@ -89,12 +89,12 @@ |
return new MediaStream(context, audioTracks, videoTracks); |
} |
-MediaStream* MediaStream::create(ExecutionContext* context, MediaStreamDescriptor* streamDescriptor) |
+MediaStream* MediaStream::create(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor) |
{ |
return new MediaStream(context, streamDescriptor); |
} |
-MediaStream::MediaStream(ExecutionContext* context, MediaStreamDescriptor* streamDescriptor) |
+MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor) |
: ContextLifecycleObserver(context) |
, m_stopped(false) |
, m_descriptor(streamDescriptor) |
@@ -143,7 +143,7 @@ |
m_descriptor = MediaStreamDescriptor::create(audioComponents, videoComponents); |
m_descriptor->setClient(this); |
- MediaStreamCenter::instance().didCreateMediaStream(m_descriptor); |
+ MediaStreamCenter::instance().didCreateMediaStream(m_descriptor.get()); |
m_audioTracks = audioTracks; |
m_videoTracks = videoTracks; |
@@ -154,6 +154,7 @@ |
MediaStream::~MediaStream() |
{ |
+ m_descriptor->setClient(0); |
} |
bool MediaStream::emptyOrOnlyEndedTracks() |
@@ -208,7 +209,7 @@ |
scheduleDispatchEvent(Event::create(EventTypeNames::active)); |
} |
- MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor, track->component()); |
+ MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor.get(), track->component()); |
} |
void MediaStream::removeTrack(MediaStreamTrack* track, ExceptionState& exceptionState) |
@@ -242,7 +243,7 @@ |
scheduleDispatchEvent(Event::create(EventTypeNames::inactive)); |
} |
- MediaStreamCenter::instance().didRemoveMediaStreamTrack(m_descriptor, track->component()); |
+ MediaStreamCenter::instance().didRemoveMediaStreamTrack(m_descriptor.get(), track->component()); |
} |
MediaStreamTrack* MediaStream::getTrackById(String id) |
@@ -411,11 +412,9 @@ |
{ |
visitor->trace(m_audioTracks); |
visitor->trace(m_videoTracks); |
- visitor->trace(m_descriptor); |
visitor->trace(m_scheduledEvents); |
RefCountedGarbageCollectedEventTargetWithInlineData<MediaStream>::trace(visitor); |
ContextLifecycleObserver::trace(visitor); |
- MediaStreamDescriptorClient::trace(visitor); |
} |
} // namespace blink |