mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1171833 - Remove PL_DHashTableEnumerator use from nsPropertyTable. r=smaug.
This commit is contained in:
parent
f87ccde2a2
commit
015cb7815d
@ -133,30 +133,16 @@ nsPropertyTable::Enumerate(nsPropertyOwner aObject,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PropertyEnumeratorData
|
|
||||||
{
|
|
||||||
nsIAtom* mName;
|
|
||||||
NSPropertyFunc mCallBack;
|
|
||||||
void* mData;
|
|
||||||
};
|
|
||||||
|
|
||||||
static PLDHashOperator
|
|
||||||
PropertyEnumerator(PLDHashTable* aTable, PLDHashEntryHdr* aHdr,
|
|
||||||
uint32_t aNumber, void* aArg)
|
|
||||||
{
|
|
||||||
PropertyListMapEntry* entry = static_cast<PropertyListMapEntry*>(aHdr);
|
|
||||||
PropertyEnumeratorData* data = static_cast<PropertyEnumeratorData*>(aArg);
|
|
||||||
data->mCallBack(const_cast<void*>(entry->key), data->mName, entry->value,
|
|
||||||
data->mData);
|
|
||||||
return PL_DHASH_NEXT;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
nsPropertyTable::EnumerateAll(NSPropertyFunc aCallBack, void* aData)
|
nsPropertyTable::EnumerateAll(NSPropertyFunc aCallBack, void* aData)
|
||||||
{
|
{
|
||||||
for (PropertyList* prop = mPropertyList; prop; prop = prop->mNext) {
|
for (PropertyList* prop = mPropertyList; prop; prop = prop->mNext) {
|
||||||
PropertyEnumeratorData data = { prop->mName, aCallBack, aData };
|
PLDHashTable::Iterator iter(&prop->mObjectValueMap);
|
||||||
PL_DHashTableEnumerate(&prop->mObjectValueMap, PropertyEnumerator, &data);
|
while (iter.HasMoreEntries()) {
|
||||||
|
auto entry = static_cast<PropertyListMapEntry*>(iter.NextEntry());
|
||||||
|
aCallBack(const_cast<void*>(entry->key), prop->mName, entry->value,
|
||||||
|
aData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,25 +280,17 @@ nsPropertyTable::PropertyList::~PropertyList()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static PLDHashOperator
|
|
||||||
DestroyPropertyEnumerator(PLDHashTable *table, PLDHashEntryHdr *hdr,
|
|
||||||
uint32_t number, void *arg)
|
|
||||||
{
|
|
||||||
nsPropertyTable::PropertyList *propList =
|
|
||||||
static_cast<nsPropertyTable::PropertyList*>(arg);
|
|
||||||
PropertyListMapEntry* entry = static_cast<PropertyListMapEntry*>(hdr);
|
|
||||||
|
|
||||||
propList->mDtorFunc(const_cast<void*>(entry->key), propList->mName,
|
|
||||||
entry->value, propList->mDtorData);
|
|
||||||
return PL_DHASH_NEXT;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
nsPropertyTable::PropertyList::Destroy()
|
nsPropertyTable::PropertyList::Destroy()
|
||||||
{
|
{
|
||||||
// Enumerate any remaining object/value pairs and destroy the value object
|
// Enumerate any remaining object/value pairs and destroy the value object.
|
||||||
if (mDtorFunc)
|
if (mDtorFunc) {
|
||||||
PL_DHashTableEnumerate(&mObjectValueMap, DestroyPropertyEnumerator, this);
|
PLDHashTable::Iterator iter(&mObjectValueMap);
|
||||||
|
while (iter.HasMoreEntries()) {
|
||||||
|
auto entry = static_cast<PropertyListMapEntry*>(iter.NextEntry());
|
||||||
|
mDtorFunc(const_cast<void*>(entry->key), mName, entry->value, mDtorData);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
Loading…
Reference in New Issue
Block a user