Chromium Code Reviews| 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 |