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

Side by Side Diff: cc/layers/delegated_renderer_layer_impl.cc

Issue 1100713004: Reserve space in the resource ID set. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | cc/surfaces/surface_aggregator.cc » ('j') | cc/surfaces/surface_aggregator.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 const ResourceProvider::ResourceIdMap& resource_map = 115 const ResourceProvider::ResourceIdMap& resource_map =
116 resource_provider->GetChildToParentMap(child_id_); 116 resource_provider->GetChildToParentMap(child_id_);
117 117
118 resource_provider->ReceiveFromChild(child_id_, frame_data->resource_list); 118 resource_provider->ReceiveFromChild(child_id_, frame_data->resource_list);
119 119
120 RenderPassList render_pass_list; 120 RenderPassList render_pass_list;
121 RenderPass::CopyAll(frame_data->render_pass_list, &render_pass_list); 121 RenderPass::CopyAll(frame_data->render_pass_list, &render_pass_list);
122 122
123 bool invalid_frame = false; 123 bool invalid_frame = false;
124 ResourceProvider::ResourceIdSet resources_in_frame; 124 ResourceProvider::ResourceIdSet resources_in_frame;
125 // Resizing to 0 breaks stlport hash_set.
126 size_t reserve_size =
127 std::max(static_cast<size_t>(1), frame_data->resource_list.size());
danakj 2015/04/28 17:25:46 actually instead of max(1,..) can you just if(rese
128 #if defined(COMPILER_MSVC)
129 resources_in_frame.reserve(reserve_size);
130 #elif defined(COMPILER_GCC)
131 // Pre-standard hash-tables only implement resize, which behaves similarly
132 // to reserve for these keys. TODO: Fix when C++11 is supported everywhere.
danakj 2015/04/28 17:25:46 TODO needs a name
133 resources_in_frame.resize(reserve_size);
134 #endif
125 DrawQuad::ResourceIteratorCallback remap_resources_to_parent_callback = 135 DrawQuad::ResourceIteratorCallback remap_resources_to_parent_callback =
126 base::Bind(&ResourceRemapHelper, 136 base::Bind(&ResourceRemapHelper,
127 &invalid_frame, 137 &invalid_frame,
128 resource_map, 138 resource_map,
129 &resources_in_frame); 139 &resources_in_frame);
130 for (const auto& pass : render_pass_list) { 140 for (const auto& pass : render_pass_list) {
131 for (const auto& quad : pass->quad_list) 141 for (const auto& quad : pass->quad_list)
132 quad->IterateResources(remap_resources_to_parent_callback); 142 quad->IterateResources(remap_resources_to_parent_callback);
133 } 143 }
134 144
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 if (own_child_id_) { 535 if (own_child_id_) {
526 ResourceProvider* provider = layer_tree_impl()->resource_provider(); 536 ResourceProvider* provider = layer_tree_impl()->resource_provider();
527 provider->DestroyChild(child_id_); 537 provider->DestroyChild(child_id_);
528 } 538 }
529 539
530 resources_.clear(); 540 resources_.clear();
531 child_id_ = 0; 541 child_id_ = 0;
532 } 542 }
533 543
534 } // namespace cc 544 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/surfaces/surface_aggregator.cc » ('j') | cc/surfaces/surface_aggregator.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698