| Index: Source/modules/webaudio/AudioContext.cpp
|
| diff --git a/Source/modules/webaudio/AudioContext.cpp b/Source/modules/webaudio/AudioContext.cpp
|
| index 76ca004c0f6b759971354c39f9f4a02380ff12da..b95baa9b5029229b3c05accae3cbd6c20fcef04b 100644
|
| --- a/Source/modules/webaudio/AudioContext.cpp
|
| +++ b/Source/modules/webaudio/AudioContext.cpp
|
| @@ -586,18 +586,17 @@ void AudioContext::refNode(AudioNode* node)
|
| ASSERT(isMainThread());
|
| AutoLocker locker(this);
|
|
|
| - node->ref(AudioNode::RefTypeConnection);
|
| m_referencedNodes.append(node);
|
| + node->makeConnection();
|
| }
|
|
|
| void AudioContext::derefNode(AudioNode* node)
|
| {
|
| ASSERT(isGraphOwner());
|
|
|
| - node->deref(AudioNode::RefTypeConnection);
|
| -
|
| for (unsigned i = 0; i < m_referencedNodes.size(); ++i) {
|
| - if (node == m_referencedNodes[i]) {
|
| + if (node == m_referencedNodes[i].get()) {
|
| + node->breakConnection();
|
| m_referencedNodes.remove(i);
|
| break;
|
| }
|
| @@ -608,7 +607,7 @@ void AudioContext::derefUnfinishedSourceNodes()
|
| {
|
| ASSERT(isMainThread());
|
| for (unsigned i = 0; i < m_referencedNodes.size(); ++i)
|
| - m_referencedNodes[i]->deref(AudioNode::RefTypeConnection);
|
| + m_referencedNodes[i]->breakConnection();
|
|
|
| m_referencedNodes.clear();
|
| }
|
| @@ -742,7 +741,7 @@ void AudioContext::handleDeferredFinishDerefs()
|
| ASSERT(isAudioThread() && isGraphOwner());
|
| for (unsigned i = 0; i < m_deferredFinishDerefList.size(); ++i) {
|
| AudioNode* node = m_deferredFinishDerefList[i];
|
| - node->finishDeref(AudioNode::RefTypeConnection);
|
| + node->finishDeref();
|
| }
|
|
|
| m_deferredFinishDerefList.clear();
|
|
|