| Index: Source/core/dom/ScriptRunner.cpp
|
| diff --git a/Source/core/dom/ScriptRunner.cpp b/Source/core/dom/ScriptRunner.cpp
|
| index d33ea6ee52dedd7a55b82d1fd94e0ef3c94c0a5a..21798469eedb029b4f465b6350c647f54678508e 100644
|
| --- a/Source/core/dom/ScriptRunner.cpp
|
| +++ b/Source/core/dom/ScriptRunner.cpp
|
| @@ -31,6 +31,7 @@
|
| #include "core/dom/PendingScript.h"
|
| #include "core/dom/ScriptLoader.h"
|
| #include "core/fetch/ScriptResource.h"
|
| +#include "platform/heap/Handle.h"
|
|
|
| namespace WebCore {
|
|
|
| @@ -43,12 +44,6 @@ ScriptRunner::ScriptRunner(Document* document)
|
|
|
| ScriptRunner::~ScriptRunner()
|
| {
|
| - for (size_t i = 0; i < m_scriptsToExecuteSoon.size(); ++i)
|
| - m_document->decrementLoadEventDelayCount();
|
| - for (size_t i = 0; i < m_scriptsToExecuteInOrder.size(); ++i)
|
| - m_document->decrementLoadEventDelayCount();
|
| - for (size_t i = 0; i < m_pendingAsyncScripts.size(); ++i)
|
| - m_document->decrementLoadEventDelayCount();
|
| }
|
|
|
| void ScriptRunner::queueScriptForExecution(ScriptLoader* scriptLoader, ResourcePtr<ScriptResource> resource, ExecutionType executionType)
|
| @@ -118,7 +113,7 @@ void ScriptRunner::timerFired(Timer<ScriptRunner>* timer)
|
| {
|
| ASSERT_UNUSED(timer, timer == &m_timer);
|
|
|
| - RefPtr<Document> protect(m_document);
|
| + RefPtrWillBeRawPtr<Document> protect(m_document.get());
|
|
|
| Vector<PendingScript> scripts;
|
| scripts.swap(m_scriptsToExecuteSoon);
|
| @@ -132,10 +127,18 @@ void ScriptRunner::timerFired(Timer<ScriptRunner>* timer)
|
| size_t size = scripts.size();
|
| for (size_t i = 0; i < size; ++i) {
|
| ScriptResource* resource = scripts[i].resource();
|
| - RefPtr<Element> element = scripts[i].releaseElementAndClear();
|
| + RefPtrWillBeRawPtr<Element> element = scripts[i].releaseElementAndClear();
|
| toScriptLoaderIfPossible(element.get())->execute(resource);
|
| m_document->decrementLoadEventDelayCount();
|
| }
|
| }
|
|
|
| +void ScriptRunner::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_document);
|
| + visitor->trace(m_scriptsToExecuteInOrder);
|
| + visitor->trace(m_scriptsToExecuteSoon);
|
| + visitor->trace(m_pendingAsyncScripts);
|
| +}
|
| +
|
| }
|
|
|