| Index: cc/raster_worker_pool.cc
|
| diff --git a/cc/raster_worker_pool.cc b/cc/raster_worker_pool.cc
|
| index 13113b5f1bfde8bf7289a9d32bad34de8d86ad99..07650934ca49cb4645fcf0a5ce538fbc6fb6f881 100644
|
| --- a/cc/raster_worker_pool.cc
|
| +++ b/cc/raster_worker_pool.cc
|
| @@ -21,6 +21,10 @@ class RasterWorkerPoolTaskImpl : public internal::WorkerPoolTask {
|
| DCHECK(picture_pile_);
|
| }
|
|
|
| + virtual void WillRunOnThread(base::Thread* thread) OVERRIDE {
|
| + picture_pile_ = picture_pile_->GetCloneForDrawingOnThread(thread);
|
| + }
|
| +
|
| virtual void Run(RenderingStats* rendering_stats) OVERRIDE {
|
| task_.Run(picture_pile_.get(), rendering_stats);
|
| base::subtle::Release_Store(&completed_, 1);
|
| @@ -42,18 +46,15 @@ RasterWorkerPool::~RasterWorkerPool() {
|
| }
|
|
|
| void RasterWorkerPool::PostRasterTaskAndReply(PicturePileImpl* picture_pile,
|
| + bool is_cheap,
|
| const RasterCallback& task,
|
| const base::Closure& reply) {
|
| - Worker* worker = GetWorkerForNextTask();
|
| -
|
| - scoped_refptr<PicturePileImpl> picture_pile_clone =
|
| - picture_pile->GetCloneForDrawingOnThread(worker);
|
| -
|
| - worker->PostTask(
|
| + PostTask(
|
| make_scoped_ptr(new RasterWorkerPoolTaskImpl(
|
| - picture_pile_clone.get(),
|
| + picture_pile,
|
| task,
|
| - reply)).PassAs<internal::WorkerPoolTask>());
|
| + reply)).PassAs<internal::WorkerPoolTask>(),
|
| + is_cheap);
|
| }
|
|
|
| } // namespace cc
|
|
|