Index: cc/resources/resource_pool.cc |
diff --git a/cc/resources/resource_pool.cc b/cc/resources/resource_pool.cc |
index cef86ded1788d770100d996a1b2d2afc3de42718..2e2630cc9ebc78cc5b722590bb23346f6b1460d5 100644 |
--- a/cc/resources/resource_pool.cc |
+++ b/cc/resources/resource_pool.cc |
@@ -48,8 +48,6 @@ scoped_ptr<ResourcePool::Resource> ResourcePool::AcquireResource( |
it != unused_resources_.end(); ++it) { |
Resource* resource = *it; |
- if (!resource_provider_->CanLockForWrite(resource->id())) |
reveman
2013/11/02 13:31:14
nit: instead of removing this completely change it
|
- continue; |
if (resource->size() != size) |
continue; |
if (resource->format() != format) |
@@ -75,14 +73,8 @@ scoped_ptr<ResourcePool::Resource> ResourcePool::AcquireResource( |
void ResourcePool::ReleaseResource( |
scoped_ptr<ResourcePool::Resource> resource) { |
- if (ResourceUsageTooHigh()) { |
- memory_usage_bytes_ -= resource->bytes(); |
- --resource_count_; |
- return; |
- } |
- |
unused_memory_usage_bytes_ += resource->bytes(); |
- unused_resources_.push_back(resource.release()); |
+ busy_resources_.push_back(resource.release()); |
} |
void ResourcePool::SetResourceUsageLimits( |
@@ -127,4 +119,19 @@ bool ResourcePool::ResourceUsageTooHigh() { |
return false; |
} |
+void ResourcePool::CheckBusyResources() { |
+ ResourceList::iterator it = busy_resources_.begin(); |
+ |
+ while (it != busy_resources_.end()) { |
+ Resource* resource = *it; |
+ |
+ if (resource_provider_->CanLockForWrite(resource->id())) { |
+ unused_resources_.push_back(resource); |
+ it = busy_resources_.erase(it); |
+ } else { |
+ ++it; |
+ } |
+ } |
+} |
+ |
} // namespace cc |