summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-04-17 19:22:07 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-18 02:22:28 +0000
commit7d1228f6466c56bd6fe751b86419df256937d5a0 (patch)
tree216ade3aee04725c8beed07906a66daba95c73e5 /cc
parent09b70b872a2ac5219de146e54d5614fde585569c (diff)
downloadchromium_src-7d1228f6466c56bd6fe751b86419df256937d5a0.zip
chromium_src-7d1228f6466c56bd6fe751b86419df256937d5a0.tar.gz
chromium_src-7d1228f6466c56bd6fe751b86419df256937d5a0.tar.bz2
Pass ResourceIdSet into ResourceProvider::DeclareUsedResourceFromChild.
Avoid constructing a temporary resource id set (in parent id space) by having the caller construct one (in child id space). Also get rid of Child::in_use_resources, as it's only used for DCHECKs. Also, switch ResourceIdSet to use base::hash_set, as that seems to have better performance. This improves performance on SurfaceAggregatorPerfTest.ManySurfacesTransparent by around 15 percent on x86. BUG=449319 Review URL: https://codereview.chromium.org/1084333002 Cr-Commit-Position: refs/heads/master@{#325763}
Diffstat (limited to 'cc')
-rw-r--r--cc/layers/delegated_renderer_layer_impl.cc7
-rw-r--r--cc/layers/delegated_renderer_layer_impl.h4
-rw-r--r--cc/resources/resource_provider.cc18
-rw-r--r--cc/resources/resource_provider.h8
-rw-r--r--cc/resources/resource_provider_unittest.cc104
-rw-r--r--cc/surfaces/surface_aggregator.cc7
-rw-r--r--cc/test/fake_delegated_renderer_layer_impl.cc7
7 files changed, 88 insertions, 67 deletions
diff --git a/cc/layers/delegated_renderer_layer_impl.cc b/cc/layers/delegated_renderer_layer_impl.cc
index 98dcd44..98ac103 100644
--- a/cc/layers/delegated_renderer_layer_impl.cc
+++ b/cc/layers/delegated_renderer_layer_impl.cc
@@ -47,9 +47,8 @@ bool DelegatedRendererLayerImpl::HasContributingDelegatedRenderPasses() const {
static ResourceProvider::ResourceId ResourceRemapHelper(
bool* invalid_frame,
const ResourceProvider::ResourceIdMap& child_to_parent_map,
- ResourceProvider::ResourceIdArray* resources_in_frame,
+ ResourceProvider::ResourceIdSet* resources_in_frame,
ResourceProvider::ResourceId id) {
-
ResourceProvider::ResourceIdMap::const_iterator it =
child_to_parent_map.find(id);
if (it == child_to_parent_map.end()) {
@@ -59,7 +58,7 @@ static ResourceProvider::ResourceId ResourceRemapHelper(
DCHECK_EQ(it->first, id);
ResourceProvider::ResourceId remapped_id = it->second;
- resources_in_frame->push_back(id);
+ resources_in_frame->insert(id);
return remapped_id;
}
@@ -119,7 +118,7 @@ void DelegatedRendererLayerImpl::SetFrameData(
RenderPass::CopyAll(frame_data->render_pass_list, &render_pass_list);
bool invalid_frame = false;
- ResourceProvider::ResourceIdArray resources_in_frame;
+ ResourceProvider::ResourceIdSet resources_in_frame;
DrawQuad::ResourceIteratorCallback remap_resources_to_parent_callback =
base::Bind(&ResourceRemapHelper,
&invalid_frame,
diff --git a/cc/layers/delegated_renderer_layer_impl.h b/cc/layers/delegated_renderer_layer_impl.h
index 4a61ba1..d59ccc2 100644
--- a/cc/layers/delegated_renderer_layer_impl.h
+++ b/cc/layers/delegated_renderer_layer_impl.h
@@ -58,7 +58,7 @@ class CC_EXPORT DelegatedRendererLayerImpl : public LayerImpl {
const RenderPassList& RenderPassesInDrawOrderForTesting() const {
return render_passes_in_draw_order_;
}
- const ResourceProvider::ResourceIdArray& ResourcesForTesting() const {
+ const ResourceProvider::ResourceIdSet& ResourcesForTesting() const {
return resources_;
}
@@ -86,7 +86,7 @@ class CC_EXPORT DelegatedRendererLayerImpl : public LayerImpl {
float inverse_device_scale_factor_;
RenderPassList render_passes_in_draw_order_;
base::hash_map<RenderPassId, int> render_passes_index_by_id_;
- ResourceProvider::ResourceIdArray resources_;
+ ResourceProvider::ResourceIdSet resources_;
int child_id_;
bool own_child_id_;
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
index 9bbf679..7987f81 100644
--- a/cc/resources/resource_provider.cc
+++ b/cc/resources/resource_provider.cc
@@ -1301,8 +1301,6 @@ void ResourceProvider::DestroyChildInternal(ChildMap::iterator it,
resources_for_child.push_back(id);
}
- // If the child is going away, don't consider any resources in use.
- child.in_use_resources.clear();
child.marked_for_deletion = true;
DeleteAndReturnUnusedResourcesToChild(it, style, resources_for_child);
@@ -1401,31 +1399,20 @@ void ResourceProvider::ReceiveFromChild(
void ResourceProvider::DeclareUsedResourcesFromChild(
int child,
- const ResourceIdArray& resources_from_child) {
+ const ResourceIdSet& resources_from_child) {
DCHECK(thread_checker_.CalledOnValidThread());
ChildMap::iterator child_it = children_.find(child);
DCHECK(child_it != children_.end());
Child& child_info = child_it->second;
DCHECK(!child_info.marked_for_deletion);
- child_info.in_use_resources.clear();
-
- for (size_t i = 0; i < resources_from_child.size(); ++i) {
- ResourceIdMap::iterator it =
- child_info.child_to_parent_map.find(resources_from_child[i]);
- DCHECK(it != child_info.child_to_parent_map.end());
-
- ResourceId local_id = it->second;
- DCHECK(!GetResource(local_id)->marked_for_deletion);
- child_info.in_use_resources.insert(local_id);
- }
ResourceIdArray unused;
for (ResourceIdMap::iterator it = child_info.child_to_parent_map.begin();
it != child_info.child_to_parent_map.end();
++it) {
ResourceId local_id = it->second;
- bool resource_is_in_use = child_info.in_use_resources.count(local_id) > 0;
+ bool resource_is_in_use = resources_from_child.count(it->first) > 0;
if (!resource_is_in_use)
unused.push_back(local_id);
}
@@ -1569,7 +1556,6 @@ void ResourceProvider::DeleteAndReturnUnusedResourcesToChild(
Resource& resource = it->second;
DCHECK(!resource.locked_for_write);
- DCHECK_EQ(0u, child_info->in_use_resources.count(local_id));
DCHECK(child_info->parent_to_child_map.count(local_id));
ResourceId child_id = child_info->parent_to_child_map[local_id];
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h
index 3f86d36..70b7fc7 100644
--- a/cc/resources/resource_provider.h
+++ b/cc/resources/resource_provider.h
@@ -64,7 +64,7 @@ class CC_EXPORT ResourceProvider {
public:
typedef unsigned ResourceId;
typedef std::vector<ResourceId> ResourceIdArray;
- typedef std::set<ResourceId> ResourceIdSet;
+ typedef base::hash_set<ResourceId> ResourceIdSet;
typedef base::hash_map<ResourceId, ResourceId> ResourceIdMap;
enum TextureHint {
TEXTURE_HINT_DEFAULT = 0x0,
@@ -203,9 +203,8 @@ class CC_EXPORT ResourceProvider {
// Once a set of resources have been received, they may or may not be used.
// This declares what set of resources are currently in use from the child,
// releasing any other resources back to the child.
- void DeclareUsedResourcesFromChild(
- int child,
- const ResourceIdArray& resources_from_child);
+ void DeclareUsedResourcesFromChild(int child,
+ const ResourceIdSet& resources_from_child);
// Receives resources from the parent, moving them from mailboxes. Resource
// IDs passed are in the child namespace.
@@ -514,7 +513,6 @@ class CC_EXPORT ResourceProvider {
ResourceIdMap child_to_parent_map;
ResourceIdMap parent_to_child_map;
ReturnCallback return_callback;
- ResourceIdSet in_use_resources;
bool marked_for_deletion;
bool needs_sync_points;
};
diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc
index 7ebc0e3..6cebc56 100644
--- a/cc/resources/resource_provider_unittest.cc
+++ b/cc/resources/resource_provider_unittest.cc
@@ -725,8 +725,13 @@ TEST_P(ResourceProviderTest, TransferGLResources) {
}
EXPECT_EQ(list[0].mailbox_holder.sync_point,
context3d_->last_waited_sync_point());
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
+ resource_ids_to_receive.insert(id3);
+ resource_ids_to_receive.insert(id4);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
EXPECT_EQ(4u, resource_provider_->num_resources());
@@ -788,7 +793,7 @@ TEST_P(ResourceProviderTest, TransferGLResources) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
ASSERT_EQ(4u, returned_to_child.size());
@@ -865,8 +870,13 @@ TEST_P(ResourceProviderTest, TransferGLResources) {
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id3));
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id4));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
+ resource_ids_to_receive.insert(id3);
+ resource_ids_to_receive.insert(id4);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
EXPECT_EQ(0u, returned_to_child.size());
@@ -949,8 +959,12 @@ TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) {
EXPECT_EQ(external_sync_point, list[2].mailbox_holder.sync_point);
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
+ resource_ids_to_receive.insert(id3);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
{
@@ -958,7 +972,7 @@ TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
ASSERT_EQ(3u, returned_to_child.size());
@@ -1021,7 +1035,7 @@ TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) {
list[0].id);
resource_provider_->DeclareUsedResourcesFromChild(
- child_id, ResourceProvider::ResourceIdArray());
+ child_id, ResourceProvider::ResourceIdSet());
EXPECT_EQ(0u, returned_to_child.size());
}
@@ -1080,7 +1094,7 @@ TEST_P(ResourceProviderTest, AllowOverlayTransfersToParent) {
EXPECT_FALSE(resource_provider_->AllowOverlay(list[1].id));
resource_provider_->DeclareUsedResourcesFromChild(
- child_id, ResourceProvider::ResourceIdArray());
+ child_id, ResourceProvider::ResourceIdSet());
EXPECT_EQ(2u, returned_to_child.size());
child_resource_provider_->ReceiveReturnsFromParent(returned_to_child);
@@ -1140,8 +1154,12 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) {
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2));
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id3));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
+ resource_ids_to_receive.insert(id3);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
EXPECT_EQ(3u, resource_provider_->num_resources());
@@ -1191,7 +1209,7 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
ASSERT_EQ(3u, returned_to_child.size());
@@ -1249,8 +1267,12 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) {
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2));
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id3));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
+ resource_ids_to_receive.insert(id3);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
EXPECT_EQ(0u, returned_to_child.size());
@@ -1424,8 +1446,11 @@ TEST_P(ResourceProviderTest, DeleteExportedResources) {
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1));
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
EXPECT_EQ(2u, resource_provider_->num_resources());
@@ -1456,7 +1481,7 @@ TEST_P(ResourceProviderTest, DeleteExportedResources) {
// Release the resource in the parent. Set no resources as being in use. The
// resources are exported so that can't be transferred back yet.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
EXPECT_EQ(0u, returned_to_child.size());
@@ -1517,8 +1542,11 @@ TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) {
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1));
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id1);
+ resource_ids_to_receive.insert(id2);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
EXPECT_EQ(2u, resource_provider_->num_resources());
@@ -1549,7 +1577,7 @@ TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) {
// Release the resource in the parent. Set no resources as being in use. The
// resources are exported so that can't be transferred back yet.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
// Destroy the child, the resources should not be returned yet.
@@ -1618,8 +1646,10 @@ TEST_P(ResourceProviderTest, DeleteTransferredResources) {
EXPECT_NE(0u, list[0].mailbox_holder.sync_point);
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
// Delete textures in the child, while they are transfered.
@@ -1630,7 +1660,7 @@ TEST_P(ResourceProviderTest, DeleteTransferredResources) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
ASSERT_EQ(1u, returned_to_child.size());
@@ -1666,8 +1696,10 @@ TEST_P(ResourceProviderTest, UnuseTransferredResources) {
&list);
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
TransferableResourceArray sent_to_top_level;
{
@@ -1682,7 +1714,7 @@ TEST_P(ResourceProviderTest, UnuseTransferredResources) {
}
{
// Stop using resource.
- ResourceProvider::ResourceIdArray empty;
+ ResourceProvider::ResourceIdSet empty;
resource_provider_->DeclareUsedResourcesFromChild(child_id, empty);
// Resource is not yet returned to the child, since it's in use by the
// top-level.
@@ -1697,8 +1729,10 @@ TEST_P(ResourceProviderTest, UnuseTransferredResources) {
&list);
EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id));
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
{
// Receive returns back from top-level.
@@ -1737,7 +1771,7 @@ TEST_P(ResourceProviderTest, UnuseTransferredResources) {
}
{
// Stop using resource.
- ResourceProvider::ResourceIdArray empty;
+ ResourceProvider::ResourceIdSet empty;
resource_provider_->DeclareUsedResourcesFromChild(child_id, empty);
// Resource should have been returned to the child, since it's no longer in
// use by the top-level.
@@ -1873,8 +1907,10 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest {
}
Mock::VerifyAndClearExpectations(parent_context);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(id);
parent_resource_provider->DeclareUsedResourcesFromChild(
- child_id, resource_ids_to_transfer);
+ child_id, resource_ids_to_receive);
Mock::VerifyAndClearExpectations(parent_context);
}
ResourceProvider::ResourceIdMap resource_map =
@@ -1908,7 +1944,7 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest {
// Transfer resources back from the parent to the child. Set no resources
// as being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
EXPECT_CALL(*parent_context, insertSyncPoint());
parent_resource_provider->DeclareUsedResourcesFromChild(child_id,
no_resources);
@@ -2093,8 +2129,10 @@ TEST_P(ResourceProviderTest, LostResourceInParent) {
EXPECT_EQ(1u, list.size());
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(resource);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
// Lose the output surface in the parent.
@@ -2105,7 +2143,7 @@ TEST_P(ResourceProviderTest, LostResourceInParent) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
// Expect a GL resource to be lost.
@@ -2145,8 +2183,10 @@ TEST_P(ResourceProviderTest, LostResourceInGrandParent) {
EXPECT_EQ(1u, list.size());
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(resource);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
{
@@ -2183,7 +2223,7 @@ TEST_P(ResourceProviderTest, LostResourceInGrandParent) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
// Expect the resource to be lost.
@@ -2221,8 +2261,10 @@ TEST_P(ResourceProviderTest, LostMailboxInParent) {
EXPECT_EQ(1u, list.size());
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(resource);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
// Lose the output surface in the parent.
@@ -2233,7 +2275,7 @@ TEST_P(ResourceProviderTest, LostMailboxInParent) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
ASSERT_EQ(1u, returned_to_child.size());
@@ -2272,8 +2314,10 @@ TEST_P(ResourceProviderTest, LostMailboxInGrandParent) {
EXPECT_EQ(1u, list.size());
resource_provider_->ReceiveFromChild(child_id, list);
+ ResourceProvider::ResourceIdSet resource_ids_to_receive;
+ resource_ids_to_receive.insert(resource);
resource_provider_->DeclareUsedResourcesFromChild(child_id,
- resource_ids_to_transfer);
+ resource_ids_to_receive);
}
{
@@ -2304,7 +2348,7 @@ TEST_P(ResourceProviderTest, LostMailboxInGrandParent) {
// Transfer resources back from the parent to the child. Set no resources as
// being in use.
- ResourceProvider::ResourceIdArray no_resources;
+ ResourceProvider::ResourceIdSet no_resources;
resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources);
// Expect the resource to be lost.
diff --git a/cc/surfaces/surface_aggregator.cc b/cc/surfaces/surface_aggregator.cc
index dd4a13b..627bc14 100644
--- a/cc/surfaces/surface_aggregator.cc
+++ b/cc/surfaces/surface_aggregator.cc
@@ -146,7 +146,7 @@ static ResourceProvider::ResourceId ResourceRemapHelper(
static ResourceProvider::ResourceId ValidateResourceHelper(
bool* invalid_frame,
const ResourceProvider::ResourceIdMap& child_to_parent_map,
- ResourceProvider::ResourceIdArray* resources_in_frame,
+ ResourceProvider::ResourceIdSet* resources_in_frame,
ResourceProvider::ResourceId id) {
ResourceProvider::ResourceIdMap::const_iterator it =
child_to_parent_map.find(id);
@@ -154,7 +154,7 @@ static ResourceProvider::ResourceId ValidateResourceHelper(
*invalid_frame = true;
return id;
}
- resources_in_frame->push_back(id);
+ resources_in_frame->insert(id);
return id;
}
@@ -169,8 +169,7 @@ bool SurfaceAggregator::ValidateResources(
surface->factory()->RefResources(frame_data->resource_list);
provider_->ReceiveFromChild(child_id, frame_data->resource_list);
- typedef ResourceProvider::ResourceIdArray IdArray;
- IdArray referenced_resources;
+ ResourceProvider::ResourceIdSet referenced_resources;
bool invalid_frame = false;
DrawQuad::ResourceIteratorCallback remap =
diff --git a/cc/test/fake_delegated_renderer_layer_impl.cc b/cc/test/fake_delegated_renderer_layer_impl.cc
index 28db1e4..1154a0e 100644
--- a/cc/test/fake_delegated_renderer_layer_impl.cc
+++ b/cc/test/fake_delegated_renderer_layer_impl.cc
@@ -39,12 +39,7 @@ static ResourceProvider::ResourceId AddResourceToFrame(
ResourceProvider::ResourceIdSet FakeDelegatedRendererLayerImpl::Resources()
const {
- ResourceProvider::ResourceIdSet set;
- ResourceProvider::ResourceIdArray array;
- array = ResourcesForTesting();
- for (size_t i = 0; i < array.size(); ++i)
- set.insert(array[i]);
- return set;
+ return ResourcesForTesting();
}
void NoopReturnCallback(const ReturnedResourceArray& returned,