author | Nicholas Nethercote <nnethercote@mozilla.com> |
Wed, 10 Jun 2015 13:07:41 -0700 | |
changeset 248512 | 416257a77854f00da2c5938c724f2bbf6f3f6476 |
parent 248511 | 2797813b89bc013796edb12216d3c27952b66696 |
child 248513 | 306758f7b34056584782d7c77d69bc59a8436bdb |
push id | 60979 |
push user | nnethercote@mozilla.com |
push date | Fri, 12 Jun 2015 06:52:49 +0000 |
treeherder | mozilla-inbound@416257a77854 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | michal |
bugs | 1173247 |
milestone | 41.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/netwerk/cache/nsDiskCacheBinding.cpp +++ b/netwerk/cache/nsDiskCacheBinding.cpp @@ -314,57 +314,39 @@ nsDiskCacheBindery::RemoveBinding(nsDisk } else { // promote next binding to head, and unlink this binding hashEntry->mBinding = (nsDiskCacheBinding *)PR_NEXT_LINK(binding); } } PR_REMOVE_AND_INIT_LINK(binding); } - /** - * ActiveBinding : PLDHashTable enumerate function to verify active bindings - */ - -PLDHashOperator -ActiveBinding(PLDHashTable * table, - PLDHashEntryHdr * hdr, - uint32_t number, - void * arg) -{ - nsDiskCacheBinding * binding = ((HashTableEntry *)hdr)->mBinding; - NS_ASSERTION(binding, "### disk cache binding = nullptr!"); - - nsDiskCacheBinding * head = binding; - do { - if (binding->IsActive()) { - *((bool *)arg) = true; - return PL_DHASH_STOP; - } - - binding = (nsDiskCacheBinding *)PR_NEXT_LINK(binding); - } while (binding != head); - - return PL_DHASH_NEXT; -} - - -/** - * ActiveBindings : return true if any bindings have open descriptors + * ActiveBindings: return true if any bindings have open descriptors. */ bool nsDiskCacheBindery::ActiveBindings() { NS_ASSERTION(initialized, "nsDiskCacheBindery not initialized"); if (!initialized) return false; - bool activeBinding = false; - PL_DHashTableEnumerate(&table, ActiveBinding, &activeBinding); + PLDHashTable::Iterator iter(&table); + while (iter.HasMoreEntries()) { + auto entry = static_cast<HashTableEntry*>(iter.NextEntry()); + nsDiskCacheBinding* binding = entry->mBinding; + nsDiskCacheBinding* head = binding; + do { + if (binding->IsActive()) { + return true; + } + binding = (nsDiskCacheBinding *)PR_NEXT_LINK(binding); + } while (binding != head); + } - return activeBinding; + return false; } /** * SizeOfExcludingThis: return the amount of heap memory (bytes) being used by * the bindery. */ size_t nsDiskCacheBindery::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf)