Index: Source/modules/webaudio/AudioContext.cpp |
diff --git a/Source/modules/webaudio/AudioContext.cpp b/Source/modules/webaudio/AudioContext.cpp |
index 8e158420c3968f859fb1c0f0f9f52045cba40eaf..ad5a05e1900dfffc69d9801c7c8c4beff010bbc7 100644 |
--- a/Source/modules/webaudio/AudioContext.cpp |
+++ b/Source/modules/webaudio/AudioContext.cpp |
@@ -628,7 +628,7 @@ ScriptPromise AudioContext::suspendContext(ScriptState* scriptState) |
"cannot suspend an OfflineAudioContext")); |
} |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
+ RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
ScriptPromise promise = resolver->promise(); |
// Save the resolver which will get resolved at the end of the rendering quantum. |
@@ -650,7 +650,7 @@ ScriptPromise AudioContext::resumeContext(ScriptState* scriptState) |
"cannot resume an OfflineAudioContext")); |
} |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
+ RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
ScriptPromise promise = resolver->promise(); |
// Restart the destination node to pull on the audio graph. |
@@ -952,7 +952,7 @@ void AudioContext::resolvePromisesForResumeOnMainThread() |
ASSERT(isMainThread()); |
AutoLocker locker(this); |
- for (RefPtr<ScriptPromiseResolver> resolver : m_resumeResolvers) { |
+ for (auto& resolver : m_resumeResolvers) { |
if (m_contextState == Closed) { |
resolver->reject( |
DOMException::create(InvalidStateError, "Cannot resume a context that has been closed")); |
@@ -989,7 +989,7 @@ void AudioContext::resolvePromisesForSuspendOnMainThread() |
if (m_destinationNode) |
stopRendering(); |
- for (RefPtr<ScriptPromiseResolver> resolver : m_suspendResolvers) { |
+ for (auto& resolver : m_suspendResolvers) { |
if (m_contextState == Closed) { |
resolver->reject( |
DOMException::create(InvalidStateError, "Cannot suspend a context that has been closed")); |
@@ -1020,12 +1020,12 @@ void AudioContext::rejectPendingResolvers() |
// Audio context is closing down so reject any suspend or resume promises that are still |
// pending. |
- for (RefPtr<ScriptPromiseResolver> resolver : m_suspendResolvers) { |
+ for (auto& resolver : m_suspendResolvers) { |
resolver->reject(DOMException::create(InvalidStateError, "Audio context is going away")); |
} |
m_suspendResolvers.clear(); |
- for (RefPtr<ScriptPromiseResolver> resolver : m_resumeResolvers) { |
+ for (auto& resolver : m_resumeResolvers) { |
resolver->reject(DOMException::create(InvalidStateError, "Audio context is going away")); |
} |
m_resumeResolvers.clear(); |
@@ -1100,6 +1100,8 @@ void AudioContext::trace(Visitor* visitor) |
} else { |
visitor->trace(m_referencedNodes); |
} |
+ visitor->trace(m_resumeResolvers); |
+ visitor->trace(m_suspendResolvers); |
visitor->trace(m_liveNodes); |
visitor->trace(m_liveAudioSummingJunctions); |
EventTargetWithInlineData::trace(visitor); |