Index: Source/modules/webaudio/AudioSummingJunction.cpp |
diff --git a/Source/modules/webaudio/AudioSummingJunction.cpp b/Source/modules/webaudio/AudioSummingJunction.cpp |
index 5517f9e03fbb563d6248ed52734f5297ae78203c..76af2c0291ad7e36f74a6b781cdcdfacb50e290a 100644 |
--- a/Source/modules/webaudio/AudioSummingJunction.cpp |
+++ b/Source/modules/webaudio/AudioSummingJunction.cpp |
@@ -32,48 +32,30 @@ |
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]); |
+ deferredTaskHandler().removeMarkedSummingJunction(this); |
} |
void AudioSummingJunction::changedOutputs() |
{ |
- ASSERT(context()->isGraphOwner()); |
- if (!m_renderingStateNeedUpdating && !m_didCallDispose) { |
- context()->handler().markSummingJunctionDirty(this); |
+ ASSERT(deferredTaskHandler().isGraphOwner()); |
+ if (!m_renderingStateNeedUpdating) { |
+ 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()); |