diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-14 00:26:18 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-14 00:26:18 +0000 |
commit | 19f813b9ced7f01906f50a5895303f310a11482c (patch) | |
tree | ddcb025098964eed21ba509f8357f91187bcc611 /webkit/appcache | |
parent | e23392c006de2fa3e862ce4874f0546b9f5ef1bf (diff) | |
download | chromium_src-19f813b9ced7f01906f50a5895303f310a11482c.zip chromium_src-19f813b9ced7f01906f50a5895303f310a11482c.tar.gz chromium_src-19f813b9ced7f01906f50a5895303f310a11482c.tar.bz2 |
Small change to recently committed r88746 to avoid a potential crasher in an unlikely case.
BUG=none
TEST=existing tests apply
Review URL: http://codereview.chromium.org/7129077
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88931 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache')
-rw-r--r-- | webkit/appcache/appcache_service.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/webkit/appcache/appcache_service.cc b/webkit/appcache/appcache_service.cc index 925e693..bc0f4cc 100644 --- a/webkit/appcache/appcache_service.cc +++ b/webkit/appcache/appcache_service.cc @@ -155,7 +155,7 @@ class AppCacheService::DeleteOriginHelper : public AsyncHelper { AppCacheService* service, const GURL& origin, net::CompletionCallback* callback) : AsyncHelper(service, callback), origin_(origin), - successes_(0), failures_(0) { + num_caches_to_delete_(0), successes_(0), failures_(0) { } virtual void Start() { @@ -174,7 +174,7 @@ class AppCacheService::DeleteOriginHelper : public AsyncHelper { void CacheCompleted(bool success); GURL origin_; - AppCacheInfoVector caches_to_delete_; + int num_caches_to_delete_; int successes_; int failures_; DISALLOW_COPY_AND_ASSIGN(DeleteOriginHelper); @@ -198,11 +198,12 @@ void AppCacheService::DeleteOriginHelper::OnAllInfo( } // We have some caches to delete. - caches_to_delete_.swap(found->second); + const AppCacheInfoVector& caches_to_delete = found->second; successes_ = 0; failures_ = 0; - for (AppCacheInfoVector::iterator iter = caches_to_delete_.begin(); - iter != caches_to_delete_.end(); ++iter) { + num_caches_to_delete_ = static_cast<int>(caches_to_delete.size()); + for (AppCacheInfoVector::const_iterator iter = caches_to_delete.begin(); + iter != caches_to_delete.end(); ++iter) { service_->storage()->LoadOrCreateGroup(iter->manifest_url, this); } } @@ -228,7 +229,7 @@ void AppCacheService::DeleteOriginHelper::CacheCompleted(bool success) { ++successes_; else ++failures_; - if ((successes_ + failures_) < static_cast<int>(caches_to_delete_.size())) + if ((successes_ + failures_) < num_caches_to_delete_) return; CallCallback(!failures_ ? net::OK : net::ERR_FAILED); |