| Index: content/browser/service_worker/service_worker_cache.cc
|
| diff --git a/content/browser/service_worker/service_worker_cache.cc b/content/browser/service_worker/service_worker_cache.cc
|
| index 2fb5216d8f19a7c1ccd4ea561e894b3648adc446..e9989fa60a929804fd881ef9260f36c33091f9f2 100644
|
| --- a/content/browser/service_worker/service_worker_cache.cc
|
| +++ b/content/browser/service_worker/service_worker_cache.cc
|
| @@ -597,7 +597,6 @@ struct ServiceWorkerCache::KeysContext {
|
| : original_callback(callback),
|
| cache(cache),
|
| out_keys(new ServiceWorkerCache::Requests()),
|
| - backend_iterator(NULL),
|
| enumerated_entry(NULL) {}
|
|
|
| ~KeysContext() {
|
| @@ -605,8 +604,6 @@ struct ServiceWorkerCache::KeysContext {
|
| entries[i]->Close();
|
| if (enumerated_entry)
|
| enumerated_entry->Close();
|
| - if (cache && backend_iterator && cache->backend_)
|
| - cache->backend_->EndEnumeration(&backend_iterator);
|
| }
|
|
|
| // The callback passed to the Keys() function.
|
| @@ -622,7 +619,7 @@ struct ServiceWorkerCache::KeysContext {
|
| scoped_ptr<ServiceWorkerCache::Requests> out_keys;
|
|
|
| // Used for enumerating cache entries.
|
| - void* backend_iterator;
|
| + scoped_ptr<disk_cache::Backend::Iterator> backend_iterator;
|
| disk_cache::Entry* enumerated_entry;
|
| };
|
|
|
| @@ -774,14 +771,14 @@ void ServiceWorkerCache::Keys(const RequestsCallback& callback) {
|
| scoped_ptr<KeysContext> keys_context(
|
| new KeysContext(callback, weak_ptr_factory_.GetWeakPtr()));
|
|
|
| - void** backend_iterator = &keys_context->backend_iterator;
|
| + keys_context->backend_iterator = backend_->CreateIterator();
|
| + disk_cache::Backend::Iterator& iterator = *keys_context->backend_iterator;
|
| disk_cache::Entry** enumerated_entry = &keys_context->enumerated_entry;
|
|
|
| net::CompletionCallback open_entry_callback =
|
| base::Bind(KeysDidOpenNextEntry, base::Passed(keys_context.Pass()));
|
|
|
| - int rv = backend_->OpenNextEntry(
|
| - backend_iterator, enumerated_entry, open_entry_callback);
|
| + int rv = iterator.OpenNextEntry(enumerated_entry, open_entry_callback);
|
|
|
| if (rv != net::ERR_IO_PENDING)
|
| open_entry_callback.Run(rv);
|
| @@ -864,14 +861,12 @@ void ServiceWorkerCache::KeysDidOpenNextEntry(
|
| keys_context->enumerated_entry = NULL;
|
|
|
| // Enumerate the next entry.
|
| - void** backend_iterator = &keys_context->backend_iterator;
|
| + disk_cache::Backend::Iterator& iterator = *keys_context->backend_iterator;
|
| disk_cache::Entry** enumerated_entry = &keys_context->enumerated_entry;
|
| -
|
| net::CompletionCallback open_entry_callback =
|
| base::Bind(KeysDidOpenNextEntry, base::Passed(keys_context.Pass()));
|
|
|
| - rv = cache->backend_->OpenNextEntry(
|
| - backend_iterator, enumerated_entry, open_entry_callback);
|
| + rv = iterator.OpenNextEntry(enumerated_entry, open_entry_callback);
|
|
|
| if (rv != net::ERR_IO_PENDING)
|
| open_entry_callback.Run(rv);
|
|
|