Index: Source/platform/mediastream/MediaStreamSource.cpp |
diff --git a/Source/platform/mediastream/MediaStreamSource.cpp b/Source/platform/mediastream/MediaStreamSource.cpp |
index 2a906c5cbef3a66405cfdcfa7717425076ae3877..d8a71289d8291d47c3a74f3d21b62bd9d7be310c 100644 |
--- a/Source/platform/mediastream/MediaStreamSource.cpp |
+++ b/Source/platform/mediastream/MediaStreamSource.cpp |
@@ -34,9 +34,9 @@ |
namespace blink { |
-MediaStreamSource* MediaStreamSource::create(const String& id, Type type, const String& name, ReadyState readyState, bool requiresConsumer) |
+PassRefPtr<MediaStreamSource> MediaStreamSource::create(const String& id, Type type, const String& name, ReadyState readyState, bool requiresConsumer) |
{ |
- return new MediaStreamSource(id, type, name, readyState, requiresConsumer); |
+ return adoptRef(new MediaStreamSource(id, type, name, readyState, requiresConsumer)); |
} |
MediaStreamSource::MediaStreamSource(const String& id, Type type, const String& name, ReadyState readyState, bool requiresConsumer) |
@@ -52,15 +52,21 @@ |
{ |
if (m_readyState != ReadyStateEnded && m_readyState != readyState) { |
m_readyState = readyState; |
- for (HeapHashSet<WeakMember<Observer> >::iterator i = m_observers.begin(); i != m_observers.end(); ++i) |
+ for (Vector<Observer*>::iterator i = m_observers.begin(); i != m_observers.end(); ++i) |
(*i)->sourceChangedState(); |
} |
} |
void MediaStreamSource::addObserver(MediaStreamSource::Observer* observer) |
{ |
- ASSERT(!m_observers.contains(observer)); |
- m_observers.add(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); |
} |
void MediaStreamSource::addAudioConsumer(PassRefPtr<AudioDestinationConsumer> consumer) |
@@ -98,10 +104,4 @@ |
(*it)->consumeAudio(bus, numberOfFrames); |
} |
-void MediaStreamSource::trace(Visitor* visitor) |
-{ |
- visitor->trace(m_observers); |
-} |
- |
} // namespace blink |
- |