Ejemplo n.º 1
0
void
nsPropertyTable::Enumerate(nsPropertyOwner aObject,
                           NSPropertyFunc aCallback, void *aData)
{
    PropertyList* prop;
    for (prop = mPropertyList; prop; prop = prop->mNext) {
        auto entry = static_cast<PropertyListMapEntry*>
                     (prop->mObjectValueMap.Search(aObject));
        if (entry) {
            aCallback(const_cast<void*>(aObject.get()), prop->mName, entry->value,
                      aData);
        }
    }
}
void
nsPropertyTable::Enumerate(nsPropertyOwner aObject,
                           NSPropertyFunc aCallback, void *aData)
{
  PropertyList* prop;
  for (prop = mPropertyList; prop; prop = prop->mNext) {
    PropertyListMapEntry *entry = static_cast<PropertyListMapEntry*>
      (PL_DHashTableOperate(&prop->mObjectValueMap, aObject, PL_DHASH_LOOKUP));
    if (PL_DHASH_ENTRY_IS_BUSY(entry)) {
      aCallback(const_cast<void*>(aObject.get()), prop->mName, entry->value,
                 aData);
    }
  }
}
Ejemplo n.º 3
0
bool
nsPropertyTable::PropertyList::DeletePropertyFor(nsPropertyOwner aObject)
{
    auto entry =
        static_cast<PropertyListMapEntry*>(mObjectValueMap.Search(aObject));
    if (!entry)
        return false;

    void* value = entry->value;
    mObjectValueMap.RemoveEntry(entry);

    if (mDtorFunc)
        mDtorFunc(const_cast<void*>(aObject.get()), mName, value, mDtorData);

    return true;
}
bool
nsPropertyTable::PropertyList::DeletePropertyFor(nsPropertyOwner aObject)
{
  PropertyListMapEntry *entry = static_cast<PropertyListMapEntry*>
                                           (PL_DHashTableOperate(&mObjectValueMap, aObject, PL_DHASH_LOOKUP));
  if (!PL_DHASH_ENTRY_IS_BUSY(entry))
    return false;

  void* value = entry->value;
  PL_DHashTableRawRemove(&mObjectValueMap, entry);

  if (mDtorFunc)
    mDtorFunc(const_cast<void*>(aObject.get()), mName, value, mDtorData);

  return true;
}