Chromium Code Reviews| Index: cc/resources/tile_manager.cc |
| diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
| index 38948c3fa1ab921b01864c448fb5e7fb3d74ee65..e727bb577bc15d43e86bdac31716c6c21e7aec87 100644 |
| --- a/cc/resources/tile_manager.cc |
| +++ b/cc/resources/tile_manager.cc |
| @@ -685,6 +685,19 @@ void TileManager::GetTilesWithAssignedBins(PrioritizedTileSet* tiles) { |
| } |
| } |
| +void TileManager::CleanUpLayers() { |
| + for (int i = 0; i < static_cast<int>(layers_.size()); ++i) { |
|
danakj
2014/05/05 19:25:41
use "size_t i" here for index into an array
vmpstr
2014/05/05 20:50:34
Ok, I just don't like i=0; --i; (i == std::numeric
|
| + if (layers_[i]->is_render_surface_list_member()) |
| + continue; |
| + |
| + layers_[i]->DidUnregisterLayer(); |
| + std::swap(layers_[i], layers_.back()); |
| + layers_.pop_back(); |
| + --i; |
| + prioritized_tiles_dirty_ = true; |
| + } |
| +} |
| + |
| void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) { |
| TRACE_EVENT0("cc", "TileManager::ManageTiles"); |
| @@ -694,6 +707,8 @@ void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) { |
| prioritized_tiles_dirty_ = true; |
| } |
| + CleanUpLayers(); |
| + |
| // We need to call CheckForCompletedTasks() once in-between each call |
| // to ScheduleTasks() to prevent canceled tasks from being scheduled. |
| if (!did_check_for_completed_tasks_since_last_schedule_tasks_) { |