| Index: Source/modules/webaudio/AudioBufferSourceNode.cpp
|
| diff --git a/Source/modules/webaudio/AudioBufferSourceNode.cpp b/Source/modules/webaudio/AudioBufferSourceNode.cpp
|
| index ece7407abbbd4f8dfdd6abf5cb509d2e6d026bcf..f0abe553f0de66f8fcc6bb9200a0f0feb28314d1 100644
|
| --- a/Source/modules/webaudio/AudioBufferSourceNode.cpp
|
| +++ b/Source/modules/webaudio/AudioBufferSourceNode.cpp
|
| @@ -62,6 +62,7 @@
|
| , m_isGrain(false)
|
| , m_grainOffset(0.0)
|
| , m_grainDuration(DefaultGrainDuration)
|
| + , m_pannerNode(0)
|
| {
|
| ScriptWrappable::init(this);
|
| setNodeType(NodeTypeAudioBufferSource);
|
| @@ -449,20 +450,20 @@
|
| void AudioBufferSourceNode::setPannerNode(PannerNode* pannerNode)
|
| {
|
| if (m_pannerNode != pannerNode && !hasFinished()) {
|
| - RefPtr<PannerNode> oldPannerNode(m_pannerNode.release());
|
| + if (pannerNode)
|
| + pannerNode->ref(AudioNode::RefTypeConnection);
|
| + if (m_pannerNode)
|
| + m_pannerNode->deref(AudioNode::RefTypeConnection);
|
| +
|
| m_pannerNode = pannerNode;
|
| - if (pannerNode)
|
| - pannerNode->makeConnection();
|
| - if (oldPannerNode)
|
| - oldPannerNode->breakConnection();
|
| }
|
| }
|
|
|
| void AudioBufferSourceNode::clearPannerNode()
|
| {
|
| if (m_pannerNode) {
|
| - m_pannerNode->breakConnection();
|
| - m_pannerNode.clear();
|
| + m_pannerNode->deref(AudioNode::RefTypeConnection);
|
| + m_pannerNode = 0;
|
| }
|
| }
|
|
|
|
|