| Index: third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h
|
| diff --git a/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h b/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h
|
| index 16b15388769489016d3029f7c2dd77f185e21951..2d2739acb3fb2b9a6e91ee3f5f90a2ae8090737b 100644
|
| --- a/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h
|
| +++ b/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h
|
| @@ -83,7 +83,7 @@ class AudioBufferSourceHandler final : public AudioScheduledSourceHandler {
|
| bool loop() const { return m_isLooping; }
|
| void setLoop(bool looping) {
|
| m_isLooping = looping;
|
| - m_didSetLooping = m_didSetLooping || looping;
|
| + setDidSetLooping(looping);
|
| }
|
|
|
| // Loop times in seconds.
|
| @@ -133,6 +133,12 @@ class AudioBufferSourceHandler final : public AudioScheduledSourceHandler {
|
| RefPtr<AudioParamHandler> m_playbackRate;
|
| RefPtr<AudioParamHandler> m_detune;
|
|
|
| + bool didSetLooping() const { return acquireLoad(&m_didSetLooping); }
|
| + void setDidSetLooping(bool loop) {
|
| + bool newLooping = didSetLooping() || loop;
|
| + releaseStore(&m_didSetLooping, newLooping);
|
| + }
|
| +
|
| // If m_isLooping is false, then this node will be done playing and become
|
| // inactive after it reaches the end of the sample data in the buffer. If
|
| // true, it will wrap around to the start of the buffer each time it reaches
|
| @@ -140,7 +146,7 @@ class AudioBufferSourceHandler final : public AudioScheduledSourceHandler {
|
| bool m_isLooping;
|
|
|
| // True if the source .loop attribute was ever set.
|
| - bool m_didSetLooping;
|
| + int m_didSetLooping;
|
|
|
| double m_loopStart;
|
| double m_loopEnd;
|
|
|