Bug 1187151 (part 2) - Replace nsBaseHashtable::Enumerate() calls in dom/base/ with iterators. r=janv.
--- a/dom/quota/QuotaManager.cpp
+++ b/dom/quota/QuotaManager.cpp
@@ -2521,45 +2521,40 @@ QuotaManager::UpdateOriginAccessTime(Per
RefPtr<SaveOriginAccessTimeOp> op =
new SaveOriginAccessTimeOp(aPersistenceType, aOrigin, timestamp);
op->RunImmediately();
}
}
-// static
-PLDHashOperator
-QuotaManager::RemoveQuotaCallback(const nsACString& aKey,
- nsAutoPtr<GroupInfoPair>& aValue,
- void* aUserArg)
-{
- NS_ASSERTION(!aKey.IsEmpty(), "Empty key!");
- NS_ASSERTION(aValue, "Null pointer!");
-
- RefPtr<GroupInfo> groupInfo =
- aValue->LockedGetGroupInfo(PERSISTENCE_TYPE_TEMPORARY);
- if (groupInfo) {
- groupInfo->LockedRemoveOriginInfos();
- }
-
- groupInfo = aValue->LockedGetGroupInfo(PERSISTENCE_TYPE_DEFAULT);
- if (groupInfo) {
- groupInfo->LockedRemoveOriginInfos();
- }
-
- return PL_DHASH_REMOVE;
-}
-
void
QuotaManager::RemoveQuota()
{
MutexAutoLock lock(mQuotaMutex);
- mGroupInfoPairs.Enumerate(RemoveQuotaCallback, nullptr);
+ for (auto iter = mGroupInfoPairs.Iter(); !iter.Done(); iter.Next()) {
+ nsAutoPtr<GroupInfoPair>& pair = iter.Data();
+
+ MOZ_ASSERT(!iter.Key().IsEmpty(), "Empty key!");
+ MOZ_ASSERT(pair, "Null pointer!");
+
+ RefPtr<GroupInfo> groupInfo =
+ pair->LockedGetGroupInfo(PERSISTENCE_TYPE_TEMPORARY);
+ if (groupInfo) {
+ groupInfo->LockedRemoveOriginInfos();
+ }
+
+ groupInfo = pair->LockedGetGroupInfo(PERSISTENCE_TYPE_DEFAULT);
+ if (groupInfo) {
+ groupInfo->LockedRemoveOriginInfos();
+ }
+
+ iter.Remove();
+ }
NS_ASSERTION(mTemporaryStorageUsage == 0, "Should be zero!");
}
already_AddRefed<QuotaObject>
QuotaManager::GetQuotaObject(PersistenceType aPersistenceType,
const nsACString& aGroup,
const nsACString& aOrigin,
--- a/dom/quota/QuotaManager.h
+++ b/dom/quota/QuotaManager.h
@@ -456,21 +456,16 @@ private:
GetDirectoryLockTable(PersistenceType aPersistenceType);
static void
GetOriginPatternString(uint32_t aAppId,
MozBrowserPatternFlag aBrowserFlag,
const nsACString& aOrigin,
nsAutoCString& _retval);
- static PLDHashOperator
- RemoveQuotaCallback(const nsACString& aKey,
- nsAutoPtr<GroupInfoPair>& aValue,
- void* aUserArg);
-
mozilla::Mutex mQuotaMutex;
nsClassHashtable<nsCStringHashKey, GroupInfoPair> mGroupInfoPairs;
// Maintains a list of directory locks that are queued.
nsTArray<RefPtr<DirectoryLockImpl>> mPendingDirectoryLocks;
// Maintains a list of directory locks that are acquired or queued.