Index: Source/platform/mediastream/MediaStreamSource.cpp |
diff --git a/Source/platform/mediastream/MediaStreamSource.cpp b/Source/platform/mediastream/MediaStreamSource.cpp |
index 6f69127bc64d616f444bbabfb7a2495a657f13a7..436bd32a976a1105c5fe852ae7df3d39e45d3a3e 100644 |
--- a/Source/platform/mediastream/MediaStreamSource.cpp |
+++ b/Source/platform/mediastream/MediaStreamSource.cpp |
@@ -34,9 +34,9 @@ |
namespace blink { |
-PassRefPtr<MediaStreamSource> MediaStreamSource::create(const String& id, Type type, const String& name, ReadyState readyState, bool requiresConsumer) |
+MediaStreamSource* MediaStreamSource::create(const String& id, Type type, const String& name, ReadyState readyState, bool requiresConsumer) |
{ |
- return adoptRef(new MediaStreamSource(id, type, name, readyState, requiresConsumer)); |
+ return new MediaStreamSource(id, type, name, readyState, requiresConsumer); |
} |
MediaStreamSource::MediaStreamSource(const String& id, Type type, const String& name, ReadyState readyState, bool requiresConsumer) |
@@ -52,21 +52,15 @@ void MediaStreamSource::setReadyState(ReadyState readyState) |
{ |
if (m_readyState != ReadyStateEnded && m_readyState != readyState) { |
m_readyState = readyState; |
- for (Vector<Observer*>::iterator i = m_observers.begin(); i != m_observers.end(); ++i) |
+ for (HeapHashSet<WeakMember<Observer> >::iterator i = m_observers.begin(); i != m_observers.end(); ++i) |
(*i)->sourceChangedState(); |
} |
} |
void MediaStreamSource::addObserver(MediaStreamSource::Observer* observer) |
{ |
- m_observers.append(observer); |
-} |
- |
-void MediaStreamSource::removeObserver(MediaStreamSource::Observer* observer) |
-{ |
- size_t pos = m_observers.find(observer); |
- if (pos != kNotFound) |
- m_observers.remove(pos); |
+ ASSERT(!m_observers.contains(observer)); |
+ m_observers.add(observer); |
} |
void MediaStreamSource::addAudioConsumer(AudioDestinationConsumer* consumer) |
@@ -103,4 +97,11 @@ void MediaStreamSource::consumeAudio(AudioBus* bus, size_t numberOfFrames) |
(*it)->consumeAudio(bus, numberOfFrames); |
} |
+void MediaStreamSource::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_observers); |
+ visitor->trace(m_audioConsumers); |
+} |
+ |
} // namespace blink |
+ |