Chromium Code Reviews| Index: Source/modules/webaudio/AudioContext.cpp |
| diff --git a/Source/modules/webaudio/AudioContext.cpp b/Source/modules/webaudio/AudioContext.cpp |
| index 5dd2b6e2fe00124c1363a6b0ed1903469aa6859b..beecc216135601e0305a922b3b2aaad9aadb6d46 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->wasConnected(); |
|
Raymond Toy
2014/07/09 22:10:33
Can we use a different name for wasConnected()? Ev
tkent
2014/07/10 08:07:42
How about didConnect?
Raymond Toy
2014/07/10 14:46:29
I still read that as asking if the node did connec
|
| } |
| 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->willBeDisconnected(); |
| m_referencedNodes.remove(i); |
|
Raymond Toy
2014/07/09 22:10:33
Would it make sense to have remove(i) call willBeD
tkent
2014/07/10 08:07:42
We can do it by adding a class wrapping a Vector.
Raymond Toy
2014/07/10 14:46:29
Oh, right. Yeah, keep it simple as it is.
|
| 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]->willBeDisconnected(); |
| 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(); |