| Index: third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp
|
| diff --git a/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp b/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp
|
| index ca12e1c9fb79b62562e07491d45e500f71a78aa7..fe6021b2415d2368840b84e4e602362c831b0682 100644
|
| --- a/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp
|
| +++ b/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp
|
| @@ -85,7 +85,8 @@ bool MediaStreamSource::removeAudioConsumer(
|
| AudioDestinationConsumer* consumer) {
|
| ASSERT(m_requiresConsumer);
|
| MutexLocker locker(m_audioConsumersLock);
|
| - auto it = m_audioConsumers.find(consumer);
|
| + HeapHashSet<Member<AudioDestinationConsumer>>::iterator it =
|
| + m_audioConsumers.find(consumer);
|
| if (it == m_audioConsumers.end())
|
| return false;
|
| m_audioConsumers.erase(it);
|
| @@ -100,8 +101,10 @@ void MediaStreamSource::setAudioFormat(size_t numberOfChannels,
|
| float sampleRate) {
|
| ASSERT(m_requiresConsumer);
|
| MutexLocker locker(m_audioConsumersLock);
|
| - for (AudioDestinationConsumer* consumer : m_audioConsumers)
|
| - consumer->setFormat(numberOfChannels, sampleRate);
|
| + for (HeapHashSet<Member<AudioDestinationConsumer>>::iterator it =
|
| + m_audioConsumers.begin();
|
| + it != m_audioConsumers.end(); ++it)
|
| + (*it)->setFormat(numberOfChannels, sampleRate);
|
| }
|
|
|
| void MediaStreamSource::consumeAudio(AudioBus* bus, size_t numberOfFrames) {
|
| @@ -110,12 +113,15 @@ void MediaStreamSource::consumeAudio(AudioBus* bus, size_t numberOfFrames) {
|
| // Prevent GCs from going ahead while this iteration runs, attempting to
|
| // pinpoint crbug.com/682945 failures.
|
| ThreadState::MainThreadGCForbiddenScope scope;
|
| - for (AudioDestinationConsumer* consumer : m_audioConsumers)
|
| - consumer->consumeAudio(bus, numberOfFrames);
|
| + for (HeapHashSet<Member<AudioDestinationConsumer>>::iterator it =
|
| + m_audioConsumers.begin();
|
| + it != m_audioConsumers.end(); ++it)
|
| + (*it)->consumeAudio(bus, numberOfFrames);
|
| }
|
|
|
| DEFINE_TRACE(MediaStreamSource) {
|
| visitor->trace(m_observers);
|
| + visitor->trace(m_audioConsumers);
|
| }
|
|
|
| } // namespace blink
|
|
|