| Index: content/browser/gpu/shader_disk_cache.cc
|
| diff --git a/content/browser/gpu/shader_disk_cache.cc b/content/browser/gpu/shader_disk_cache.cc
|
| index a7f240ce565b8e49ebd4b7c55c87f56db84b1fbb..9c942a0a31a2dbcb0739eaef72fea809e3c211da 100644
|
| --- a/content/browser/gpu/shader_disk_cache.cc
|
| +++ b/content/browser/gpu/shader_disk_cache.cc
|
| @@ -95,7 +95,7 @@ class ShaderDiskReadHelper
|
|
|
| base::WeakPtr<ShaderDiskCache> cache_;
|
| OpType op_type_;
|
| - void* iter_;
|
| + scoped_ptr<disk_cache::Backend::Iterator> iter_;
|
| scoped_refptr<net::IOBufferWithSize> buf_;
|
| int host_id_;
|
| disk_cache::Entry* entry_;
|
| @@ -243,7 +243,6 @@ ShaderDiskReadHelper::ShaderDiskReadHelper(
|
| int host_id)
|
| : cache_(cache),
|
| op_type_(OPEN_NEXT),
|
| - iter_(NULL),
|
| buf_(NULL),
|
| host_id_(host_id),
|
| entry_(NULL) {
|
| @@ -291,10 +290,10 @@ int ShaderDiskReadHelper::OpenNextEntry() {
|
| DCHECK(CalledOnValidThread());
|
| // Called through OnOpComplete, so we know |cache_| is valid.
|
| op_type_ = OPEN_NEXT_COMPLETE;
|
| - return cache_->backend()->OpenNextEntry(
|
| - &iter_,
|
| - &entry_,
|
| - base::Bind(&ShaderDiskReadHelper::OnOpComplete, this));
|
| + if (!iter_)
|
| + iter_ = cache_->backend()->CreateIterator();
|
| + return iter_->OpenNextEntry(
|
| + &entry_, base::Bind(&ShaderDiskReadHelper::OnOpComplete, this));
|
| }
|
|
|
| int ShaderDiskReadHelper::OpenNextEntryComplete(int rv) {
|
| @@ -339,8 +338,7 @@ int ShaderDiskReadHelper::ReadComplete(int rv) {
|
| int ShaderDiskReadHelper::IterationComplete(int rv) {
|
| DCHECK(CalledOnValidThread());
|
| // Called through OnOpComplete, so we know |cache_| is valid.
|
| - cache_->backend()->EndEnumeration(&iter_);
|
| - iter_ = NULL;
|
| + iter_.reset();
|
| op_type_ = TERMINATE;
|
| return net::OK;
|
| }
|
|
|