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

Unified Diff: cc/resources/resource_pool.cc

Issue 1154393003: cc: Use CheckedNumeric for resource size calculations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: initialize var Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/resource.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/resource_pool.cc
diff --git a/cc/resources/resource_pool.cc b/cc/resources/resource_pool.cc
index 08e2f4e1fc887351e7f2f3da8e031dca1f1b7d9f..f5c71678f2740a5966f41958c08a0bf49f77ae70 100644
--- a/cc/resources/resource_pool.cc
+++ b/cc/resources/resource_pool.cc
@@ -47,7 +47,8 @@ scoped_ptr<ScopedResource> ResourcePool::AcquireResource(
continue;
unused_resources_.erase(it);
- unused_memory_usage_bytes_ -= resource->bytes();
+ unused_memory_usage_bytes_ -=
+ Resource::UncheckedMemorySizeBytes(size, format);
return make_scoped_ptr(resource);
}
@@ -55,7 +56,9 @@ scoped_ptr<ScopedResource> ResourcePool::AcquireResource(
ScopedResource::Create(resource_provider_);
resource->AllocateManaged(size, target_, format);
- memory_usage_bytes_ += resource->bytes();
+ DCHECK(Resource::VerifySizeInBytes(resource->size(), resource->format()));
+ memory_usage_bytes_ +=
+ Resource::UncheckedMemorySizeBytes(resource->size(), resource->format());
++resource_count_;
return resource.Pass();
}
@@ -75,7 +78,8 @@ scoped_ptr<ScopedResource> ResourcePool::TryAcquireResourceWithContentId(
DCHECK(resource_provider_->CanLockForWrite(resource->id()));
unused_resources_.erase(it);
- unused_memory_usage_bytes_ -= resource->bytes();
+ unused_memory_usage_bytes_ -=
+ Resource::UncheckedMemorySizeBytes(resource->size(), resource->format());
return make_scoped_ptr(resource);
}
@@ -108,8 +112,10 @@ void ResourcePool::ReduceResourceUsage() {
// memory is necessarily returned to the OS.
ScopedResource* resource = unused_resources_.front().resource;
unused_resources_.pop_front();
- memory_usage_bytes_ -= resource->bytes();
- unused_memory_usage_bytes_ -= resource->bytes();
+ size_t resource_bytes = Resource::UncheckedMemorySizeBytes(
+ resource->size(), resource->format());
+ memory_usage_bytes_ -= resource_bytes;
+ unused_memory_usage_bytes_ -= resource_bytes;
--resource_count_;
delete resource;
}
@@ -145,7 +151,8 @@ void ResourcePool::CheckBusyResources(bool wait_if_needed) {
void ResourcePool::DidFinishUsingResource(ScopedResource* resource,
uint64_t content_id) {
- unused_memory_usage_bytes_ += resource->bytes();
+ unused_memory_usage_bytes_ +=
+ Resource::UncheckedMemorySizeBytes(resource->size(), resource->format());
unused_resources_.push_back(PoolResource(resource, content_id));
}
« no previous file with comments | « cc/resources/resource.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698