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

Unified Diff: cc/layers/heads_up_display_layer_impl.cc

Issue 1437413002: cc: Remove ScopedPtrVector and cc::remove_if. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: just the vector Created 5 years, 1 month 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
Index: cc/layers/heads_up_display_layer_impl.cc
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc
index 4624e64c5fe6b80691c6bf1479e98d0db91c93fd..d96f55d44208466e19db7874d8e96c019b28458c 100644
--- a/cc/layers/heads_up_display_layer_impl.cc
+++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -91,11 +91,11 @@ scoped_ptr<LayerImpl> HeadsUpDisplayLayerImpl::CreateLayerImpl(
void HeadsUpDisplayLayerImpl::AcquireResource(
ResourceProvider* resource_provider) {
- for (ScopedPtrVector<ScopedResource>::iterator it = resources_.begin();
- it != resources_.end();
- ++it) {
+ for (std::vector<scoped_ptr<ScopedResource>>::iterator it =
danakj 2015/11/17 01:12:17 auto and ranged-based?
vmpstr 2015/11/17 23:26:23 Done.
+ resources_.begin();
+ it != resources_.end(); ++it) {
if (!resource_provider->InUseByConsumer((*it)->id())) {
- resources_.swap(it, resources_.end() - 1);
+ it->swap(resources_.back());
return;
}
}
@@ -108,23 +108,13 @@ void HeadsUpDisplayLayerImpl::AcquireResource(
resources_.push_back(resource.Pass());
}
-class ResourceSizeIsEqualTo {
- public:
- explicit ResourceSizeIsEqualTo(const gfx::Size& size_)
- : compare_size_(size_) {}
-
- bool operator()(const ScopedResource* resource) {
- return resource->size() == compare_size_;
- }
-
- private:
- const gfx::Size compare_size_;
-};
-
void HeadsUpDisplayLayerImpl::ReleaseUnmatchedSizeResources(
ResourceProvider* resource_provider) {
- ScopedPtrVector<ScopedResource>::iterator it_erase =
- resources_.partition(ResourceSizeIsEqualTo(internal_content_bounds_));
+ std::vector<scoped_ptr<ScopedResource>>::iterator it_erase =
+ std::remove_if(resources_.begin(), resources_.end(),
+ [this](const scoped_ptr<ScopedResource>& resource) {
danakj 2015/11/17 01:12:17 wwooooaa you can do that? and then use member vars
vmpstr 2015/11/17 23:26:23 hehe, yep! :)
+ return internal_content_bounds_ != resource->size();
+ });
resources_.erase(it_erase, resources_.end());
}

Powered by Google App Engine
This is Rietveld 408576698