Chromium Code Reviews| Index: Source/modules/webaudio/AudioSummingJunction.cpp |
| diff --git a/Source/modules/webaudio/AudioSummingJunction.cpp b/Source/modules/webaudio/AudioSummingJunction.cpp |
| index 5517f9e03fbb563d6248ed52734f5297ae78203c..60afb4ebd789fab64e6c2d231b591467b73e6768 100644 |
| --- a/Source/modules/webaudio/AudioSummingJunction.cpp |
| +++ b/Source/modules/webaudio/AudioSummingJunction.cpp |
| @@ -32,48 +32,32 @@ |
| namespace blink { |
| -AudioSummingJunction::AudioSummingJunction(AudioContext* context) |
| - : m_context(context) |
| +AudioSummingJunction::AudioSummingJunction(DeferredTaskHandler& handler) |
| + : m_deferredTaskHandler(handler) |
| , m_renderingStateNeedUpdating(false) |
| , m_didCallDispose(false) |
| { |
| - ASSERT(context); |
| - m_context->registerLiveAudioSummingJunction(*this); |
| -} |
| - |
| -void AudioSummingJunction::dispose() |
| -{ |
| - m_didCallDispose = true; |
| - m_context->handler().removeMarkedSummingJunction(this); |
| } |
| AudioSummingJunction::~AudioSummingJunction() |
| { |
| -} |
| - |
| -DEFINE_TRACE(AudioSummingJunction) |
| -{ |
| - visitor->trace(m_context); |
| - // FIXME: Oilpan: m_renderingOutputs should not be strong references. This |
| - // is a short-term workaround to avoid crashes, and causes AudioNode leaks. |
| - AudioContext::AutoLocker locker(m_context); |
| - for (size_t i = 0; i < m_renderingOutputs.size(); ++i) |
| - visitor->trace(m_renderingOutputs[i]); |
| + m_didCallDispose = true; |
|
haraken
2015/03/25 12:34:48
I guess m_didCallDispose is no longer helpful.
tkent
2015/03/25 22:28:08
Right. Will remove it.
|
| + deferredTaskHandler().removeMarkedSummingJunction(this); |
| } |
| void AudioSummingJunction::changedOutputs() |
| { |
| - ASSERT(context()->isGraphOwner()); |
| + ASSERT(deferredTaskHandler().isGraphOwner()); |
| if (!m_renderingStateNeedUpdating && !m_didCallDispose) { |
| - context()->handler().markSummingJunctionDirty(this); |
| + deferredTaskHandler().markSummingJunctionDirty(this); |
| m_renderingStateNeedUpdating = true; |
| } |
| } |
| void AudioSummingJunction::updateRenderingState() |
| { |
| - ASSERT(context()->isAudioThread()); |
| - ASSERT(context()->isGraphOwner()); |
| + ASSERT(deferredTaskHandler().isAudioThread()); |
| + ASSERT(deferredTaskHandler().isGraphOwner()); |
| if (m_renderingStateNeedUpdating) { |
| // Copy from m_outputs to m_renderingOutputs. |
| m_renderingOutputs.resize(m_outputs.size()); |