Index: Source/core/dom/Microtask.cpp |
diff --git a/Source/core/dom/Microtask.cpp b/Source/core/dom/Microtask.cpp |
index e63b84b1f60d1b998e79bd7c14b378e2510dbad4..d0e4431c8b16bb21cad7b897d48ff668b2365ab6 100644 |
--- a/Source/core/dom/Microtask.cpp |
+++ b/Source/core/dom/Microtask.cpp |
@@ -32,12 +32,13 @@ |
#include "core/dom/Microtask.h" |
#include "bindings/v8/V8PerIsolateData.h" |
+#include "public/platform/WebThread.h" |
#include "wtf/Vector.h" |
#include <v8.h> |
namespace WebCore { |
-typedef Vector<MicrotaskCallback> MicrotaskQueue; |
+typedef Vector<blink::WebThread::Task*> MicrotaskQueue; |
abarth-chromium
2014/04/18 16:01:04
Vector<OwnPtr<blink::WebThread::Task> >
?
|
static MicrotaskQueue& microtaskQueue() |
{ |
@@ -54,17 +55,18 @@ void Microtask::performCheckpoint() |
isolateData->setPerformingMicrotaskCheckpoint(true); |
while (!microtaskQueue().isEmpty()) { |
- Vector<MicrotaskCallback> microtasks; |
+ Vector<blink::WebThread::Task*> microtasks; |
microtasks.swap(microtaskQueue()); |
for (size_t i = 0; i < microtasks.size(); ++i) { |
- microtasks[i](); |
+ microtasks[i]->run(); |
+ delete microtasks[i]; |
} |
} |
isolateData->setPerformingMicrotaskCheckpoint(false); |
} |
-void Microtask::enqueueMicrotask(MicrotaskCallback callback) |
+void Microtask::enqueueMicrotask(blink::WebThread::Task* callback) |
{ |
microtaskQueue().append(callback); |
} |