Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1612)

Unified Diff: Source/modules/webaudio/AudioBufferSourceNode.cpp

Issue 349213007: WebAudio: Remove AudioNode::RefType. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/webaudio/AudioBufferSourceNode.cpp
diff --git a/Source/modules/webaudio/AudioBufferSourceNode.cpp b/Source/modules/webaudio/AudioBufferSourceNode.cpp
index dc55f76d4d63b8a2b3f37d39d48124071619c55b..67b6e38b64cdb0200929ae500a72e848a1657589 100644
--- a/Source/modules/webaudio/AudioBufferSourceNode.cpp
+++ b/Source/modules/webaudio/AudioBufferSourceNode.cpp
@@ -64,7 +64,6 @@ AudioBufferSourceNode::AudioBufferSourceNode(AudioContext* context, float sample
, m_isGrain(false)
, m_grainOffset(0.0)
, m_grainDuration(DefaultGrainDuration)
- , m_pannerNode(0)
{
ScriptWrappable::init(this);
setNodeType(NodeTypeAudioBufferSource);
@@ -452,20 +451,20 @@ bool AudioBufferSourceNode::propagatesSilence() const
void AudioBufferSourceNode::setPannerNode(PannerNode* pannerNode)
{
if (m_pannerNode != pannerNode && !hasFinished()) {
- if (pannerNode)
- pannerNode->ref(AudioNode::RefTypeConnection);
- if (m_pannerNode)
- m_pannerNode->deref(AudioNode::RefTypeConnection);
-
+ RefPtr<PannerNode> oldPannerNode(m_pannerNode.release());
m_pannerNode = pannerNode;
+ if (pannerNode)
+ pannerNode->wasConnected();
+ if (oldPannerNode)
+ oldPannerNode->willBeDisconnected();
}
}
void AudioBufferSourceNode::clearPannerNode()
{
if (m_pannerNode) {
- m_pannerNode->deref(AudioNode::RefTypeConnection);
- m_pannerNode = 0;
+ m_pannerNode->willBeDisconnected();
+ m_pannerNode.clear();
}
}

Powered by Google App Engine
This is Rietveld 408576698