Index: cc/resources/pixel_buffer_raster_worker_pool.cc |
diff --git a/cc/resources/pixel_buffer_raster_worker_pool.cc b/cc/resources/pixel_buffer_raster_worker_pool.cc |
index e87f995e8bf4eb6905534895b5562cf25e718e9c..d8d5e319cc967d5994b650f970fe237eb6820432 100644 |
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc |
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc |
@@ -523,7 +523,8 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() { |
WorkerPoolTaskVector tasks_required_for_activation; |
unsigned priority = kRasterTaskPriorityBase; |
- internal::TaskGraph graph; |
+ |
+ graph_.Reset(); |
size_t bytes_pending_upload = bytes_pending_upload_; |
bool did_throttle_raster_tasks = false; |
@@ -575,7 +576,7 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() { |
DCHECK(state_it->second == UNSCHEDULED || state_it->second == SCHEDULED); |
state_it->second = SCHEDULED; |
- InsertNodeForRasterTask(&graph, task, task->dependencies(), priority++); |
+ InsertNodeForRasterTask(&graph_, task, task->dependencies(), priority++); |
tasks.container().push_back(task); |
if (IsRasterTaskRequiredForActivation(task)) |
@@ -599,7 +600,7 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() { |
CreateRasterRequiredForActivationFinishedTask( |
raster_tasks_required_for_activation_.size()); |
raster_required_for_activation_finished_task_pending_ = true; |
- InsertNodeForTask(&graph, |
+ InsertNodeForTask(&graph_, |
new_raster_required_for_activation_finished_task.get(), |
kRasterRequiredForActivationFinishedTaskPriority, |
scheduled_raster_task_required_for_activation_count); |
@@ -607,7 +608,7 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() { |
tasks_required_for_activation.container().begin(); |
it != tasks_required_for_activation.container().end(); |
++it) { |
- graph.edges.push_back(internal::TaskGraph::Edge( |
+ graph_.edges.push_back(internal::TaskGraph::Edge( |
*it, new_raster_required_for_activation_finished_task.get())); |
} |
} |
@@ -622,7 +623,7 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() { |
should_notify_client_if_no_tasks_are_pending_) { |
new_raster_finished_task = CreateRasterFinishedTask(); |
raster_finished_task_pending_ = true; |
- InsertNodeForTask(&graph, |
+ InsertNodeForTask(&graph_, |
new_raster_finished_task.get(), |
kRasterFinishedTaskPriority, |
scheduled_raster_task_count); |
@@ -630,12 +631,12 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() { |
tasks.container().begin(); |
it != tasks.container().end(); |
++it) { |
- graph.edges.push_back( |
+ graph_.edges.push_back( |
internal::TaskGraph::Edge(*it, new_raster_finished_task.get())); |
} |
} |
- SetTaskGraph(&graph); |
+ SetTaskGraph(&graph_); |
scheduled_raster_task_count_ = scheduled_raster_task_count; |
@@ -671,11 +672,9 @@ const char* PixelBufferRasterWorkerPool::StateName() const { |
} |
void PixelBufferRasterWorkerPool::CheckForCompletedWorkerPoolTasks() { |
- internal::Task::Vector completed_tasks; |
- CollectCompletedWorkerPoolTasks(&completed_tasks); |
- |
- for (internal::Task::Vector::const_iterator it = completed_tasks.begin(); |
- it != completed_tasks.end(); |
+ CollectCompletedWorkerPoolTasks(&completed_tasks_); |
+ for (internal::Task::Vector::const_iterator it = completed_tasks_.begin(); |
+ it != completed_tasks_.end(); |
++it) { |
internal::WorkerPoolTask* task = |
static_cast<internal::WorkerPoolTask*>(it->get()); |
@@ -684,6 +683,7 @@ void PixelBufferRasterWorkerPool::CheckForCompletedWorkerPoolTasks() { |
task->CompleteOnOriginThread(this); |
task->DidComplete(); |
} |
+ completed_tasks_.clear(); |
} |
scoped_ptr<base::Value> PixelBufferRasterWorkerPool::StateAsValue() const { |