Index: Source/core/workers/WorkerThread.cpp |
diff --git a/Source/core/workers/WorkerThread.cpp b/Source/core/workers/WorkerThread.cpp |
index 6a0ad514baf928787325d3b33eb458c05488f8c3..23e90e4a8af7e59184c019c9151b355277cd4ec7 100644 |
--- a/Source/core/workers/WorkerThread.cpp |
+++ b/Source/core/workers/WorkerThread.cpp |
@@ -90,7 +90,7 @@ unsigned WorkerThread::workerThreadCount() |
class WorkerThreadCancelableTask final : public ExecutionContextTask { |
WTF_MAKE_NONCOPYABLE(WorkerThreadCancelableTask); WTF_MAKE_FAST_ALLOCATED; |
public: |
- static PassOwnPtr<WorkerThreadCancelableTask> create(const Closure& closure) |
+ static PassOwnPtr<WorkerThreadCancelableTask> create(PassOwnPtr<Closure> closure) |
{ |
return adoptPtr(new WorkerThreadCancelableTask(closure)); |
} |
@@ -98,18 +98,18 @@ public: |
virtual void performTask(ExecutionContext*) override |
{ |
if (!m_taskCanceled) |
- m_closure(); |
+ (*m_closure)(); |
} |
void cancelTask() { m_taskCanceled = true; } |
private: |
- explicit WorkerThreadCancelableTask(const Closure& closure) |
+ explicit WorkerThreadCancelableTask(PassOwnPtr<Closure> closure) |
: m_closure(closure) |
, m_taskCanceled(false) |
{ } |
- Closure m_closure; |
+ OwnPtr<Closure> m_closure; |
bool m_taskCanceled; |
}; |