Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(989)

Unified Diff: cc/resources/pixel_buffer_raster_worker_pool.cc

Issue 168083002: cc: Remove RasterWorkerPool::Task. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove RasterTaskQueueIterator Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/pixel_buffer_raster_worker_pool.h ('k') | cc/resources/raster_worker_pool.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 21ee1ccfbbe8849ccd6b5498a7ea322e13fc3278..b5b978874048255be38b40e26c11e1f24fad75b0 100644
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc
@@ -88,9 +88,15 @@ void PixelBufferRasterWorkerPool::Shutdown() {
DCHECK_EQ(completed_raster_tasks_.size(), raster_task_states_.size());
}
-void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTask::Queue* queue) {
+void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTaskQueue* queue) {
TRACE_EVENT0("cc", "PixelBufferRasterWorkerPool::ScheduleTasks");
+ DCHECK_EQ(queue->required_for_activation_count,
+ static_cast<size_t>(
+ std::count_if(queue->items.begin(),
+ queue->items.end(),
+ RasterTaskQueue::Item::IsRequiredForActivation)));
+
if (!should_notify_client_if_no_tasks_are_pending_)
TRACE_EVENT_ASYNC_BEGIN0("cc", "ScheduledTasks", this);
@@ -101,8 +107,11 @@ void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTask::Queue* queue) {
// Build new raster task state map.
RasterTaskStateMap new_raster_task_states;
- for (RasterTaskQueueIterator it(queue); it; ++it) {
- internal::RasterWorkerPoolTask* task = *it;
+ for (RasterTaskQueue::Item::Vector::const_iterator it = queue->items.begin();
+ it != queue->items.end();
+ ++it) {
+ const RasterTaskQueue::Item& item = *it;
+ internal::RasterWorkerPoolTask* task = item.task;
DCHECK(new_raster_task_states.find(task) == new_raster_task_states.end());
RasterTaskStateMap::iterator state_it = raster_task_states_.find(task);
@@ -113,14 +122,14 @@ void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTask::Queue* queue) {
// |raster_tasks_required_for_activation_| contains all tasks that need to
// complete before we can send a "ready to activate" signal. Tasks that
// have already completed should not be part of this set.
- if (state != COMPLETED && it.required_for_activation())
+ if (state != COMPLETED && item.required_for_activation)
raster_tasks_required_for_activation_.insert(task);
raster_task_states_.erase(state_it);
} else {
DCHECK(!task->HasBeenScheduled());
new_raster_task_states[task] = UNSCHEDULED;
- if (it.required_for_activation())
+ if (item.required_for_activation)
raster_tasks_required_for_activation_.insert(task);
}
}
@@ -242,8 +251,11 @@ void PixelBufferRasterWorkerPool::OnRasterCompleted(
// When priorites change, a raster task can be canceled as a result of
// no longer being of high enough priority to fit in our throttled
// raster task budget. The task has not yet completed in this case.
- for (RasterTaskQueueIterator it(&raster_tasks_); it; ++it) {
- if (*it == task) {
+ for (RasterTaskQueue::Item::Vector::const_iterator it =
+ raster_tasks_.items.begin();
+ it != raster_tasks_.items.end();
+ ++it) {
+ if (it->task == task) {
raster_task_states_[task] = UNSCHEDULED;
return;
}
@@ -498,8 +510,12 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() {
size_t bytes_pending_upload = bytes_pending_upload_;
bool did_throttle_raster_tasks = false;
- for (RasterTaskQueueIterator it(&raster_tasks_); it; ++it) {
- internal::RasterWorkerPoolTask* task = *it;
+ for (RasterTaskQueue::Item::Vector::const_iterator it =
+ raster_tasks_.items.begin();
+ it != raster_tasks_.items.end();
+ ++it) {
+ const RasterTaskQueue::Item& item = *it;
+ internal::RasterWorkerPoolTask* task = item.task;
// |raster_task_states_| contains the state of all tasks that we have not
// yet run reply callbacks for.
@@ -546,7 +562,7 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() {
InsertNodeForRasterTask(&graph_, task, task->dependencies(), priority++);
tasks.container().push_back(task);
- if (it.required_for_activation())
+ if (item.required_for_activation)
tasks_required_for_activation.container().push_back(task);
}
« no previous file with comments | « cc/resources/pixel_buffer_raster_worker_pool.h ('k') | cc/resources/raster_worker_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698