mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Bug 1173247 (part 1) - Remove PL_DHashTableEnumerate() uses from nsDiskCacheBindery. r=michal.
This commit is contained in:
parent
397ebcdc3f
commit
fc71ecdf27
64
netwerk/cache/nsDiskCacheBinding.cpp
vendored
64
netwerk/cache/nsDiskCacheBinding.cpp
vendored
@ -362,42 +362,9 @@ nsDiskCacheBindery::ActiveBindings()
|
||||
return activeBinding;
|
||||
}
|
||||
|
||||
struct AccumulatorArg {
|
||||
size_t mUsage;
|
||||
mozilla::MallocSizeOf mMallocSizeOf;
|
||||
};
|
||||
|
||||
PLDHashOperator
|
||||
AccumulateHeapUsage(PLDHashTable *table, PLDHashEntryHdr *hdr, uint32_t number,
|
||||
void *arg)
|
||||
{
|
||||
nsDiskCacheBinding *binding = ((HashTableEntry *)hdr)->mBinding;
|
||||
NS_ASSERTION(binding, "### disk cache binding = nsnull!");
|
||||
|
||||
AccumulatorArg *acc = (AccumulatorArg *)arg;
|
||||
|
||||
nsDiskCacheBinding *head = binding;
|
||||
do {
|
||||
acc->mUsage += acc->mMallocSizeOf(binding);
|
||||
|
||||
if (binding->mStreamIO) {
|
||||
acc->mUsage += binding->mStreamIO->SizeOfIncludingThis(acc->mMallocSizeOf);
|
||||
}
|
||||
|
||||
/* No good way to get at mDeactivateEvent internals for proper size, so
|
||||
we use this as an estimate. */
|
||||
if (binding->mDeactivateEvent) {
|
||||
acc->mUsage += acc->mMallocSizeOf(binding->mDeactivateEvent);
|
||||
}
|
||||
|
||||
binding = (nsDiskCacheBinding *)PR_NEXT_LINK(binding);
|
||||
} while (binding != head);
|
||||
|
||||
return PL_DHASH_NEXT;
|
||||
}
|
||||
|
||||
/**
|
||||
* SizeOfExcludingThis: return the amount of heap memory (bytes) being used by the bindery
|
||||
* SizeOfExcludingThis: return the amount of heap memory (bytes) being used by
|
||||
* the bindery.
|
||||
*/
|
||||
size_t
|
||||
nsDiskCacheBindery::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf)
|
||||
@ -405,11 +372,28 @@ nsDiskCacheBindery::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf)
|
||||
NS_ASSERTION(initialized, "nsDiskCacheBindery not initialized");
|
||||
if (!initialized) return 0;
|
||||
|
||||
AccumulatorArg arg;
|
||||
arg.mUsage = 0;
|
||||
arg.mMallocSizeOf = aMallocSizeOf;
|
||||
size_t size = 0;
|
||||
|
||||
PL_DHashTableEnumerate(&table, AccumulateHeapUsage, &arg);
|
||||
PLDHashTable::Iterator iter(&table);
|
||||
while (iter.HasMoreEntries()) {
|
||||
auto entry = static_cast<HashTableEntry*>(iter.NextEntry());
|
||||
nsDiskCacheBinding* binding = entry->mBinding;
|
||||
|
||||
return arg.mUsage;
|
||||
nsDiskCacheBinding* head = binding;
|
||||
do {
|
||||
size += aMallocSizeOf(binding);
|
||||
if (binding->mStreamIO) {
|
||||
size += binding->mStreamIO->SizeOfIncludingThis(aMallocSizeOf);
|
||||
}
|
||||
|
||||
// No good way to get at mDeactivateEvent internals for proper
|
||||
// size, so we use this as an estimate.
|
||||
if (binding->mDeactivateEvent) {
|
||||
size += aMallocSizeOf(binding->mDeactivateEvent);
|
||||
}
|
||||
binding = (nsDiskCacheBinding *)PR_NEXT_LINK(binding);
|
||||
} while (binding != head);
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user