当前位置: 首页>>代码示例>>C++>>正文


C++ PropertyList::DeletePropertyFor方法代码示例

本文整理汇总了C++中PropertyList::DeletePropertyFor方法的典型用法代码示例。如果您正苦于以下问题:C++ PropertyList::DeletePropertyFor方法的具体用法?C++ PropertyList::DeletePropertyFor怎么用?C++ PropertyList::DeletePropertyFor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PropertyList的用法示例。


在下文中一共展示了PropertyList::DeletePropertyFor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: DeleteAllPropertiesFor

nsresult
nsPropertyTable::TransferOrDeleteAllPropertiesFor(nsPropertyOwner aObject,
        nsPropertyTable *aOtherTable)
{
    nsresult rv = NS_OK;
    for (PropertyList* prop = mPropertyList; prop; prop = prop->mNext) {
        if (prop->mTransfer) {
            auto entry = static_cast<PropertyListMapEntry*>
                         (prop->mObjectValueMap.Search(aObject));
            if (entry) {
                rv = aOtherTable->SetProperty(aObject, prop->mName,
                                              entry->value, prop->mDtorFunc,
                                              prop->mDtorData, prop->mTransfer);
                if (NS_FAILED(rv)) {
                    DeleteAllPropertiesFor(aObject);
                    aOtherTable->DeleteAllPropertiesFor(aObject);

                    break;
                }

                prop->mObjectValueMap.RemoveEntry(entry);
            }
        }
        else {
            prop->DeletePropertyFor(aObject);
        }
    }

    return rv;
}
开发者ID:Jinwoo-Song,项目名称:gecko-dev,代码行数:30,代码来源:nsPropertyTable.cpp

示例2:

void
nsPropertyTable::DeleteAllPropertiesFor(nsPropertyOwner aObject)
{
    for (PropertyList* prop = mPropertyList; prop; prop = prop->mNext) {
        prop->DeletePropertyFor(aObject);
    }
}
开发者ID:Jinwoo-Song,项目名称:gecko-dev,代码行数:7,代码来源:nsPropertyTable.cpp

示例3: DeleteAllPropertiesFor

nsresult
nsPropertyTable::TransferOrDeleteAllPropertiesFor(nsPropertyOwner aObject,
                                                  nsPropertyTable *aOtherTable)
{
  nsresult rv = NS_OK;
  for (PropertyList* prop = mPropertyList; prop; prop = prop->mNext) {
    if (prop->mTransfer) {
      PropertyListMapEntry *entry = static_cast<PropertyListMapEntry*>
                                               (PL_DHashTableOperate(&prop->mObjectValueMap, aObject,
                               PL_DHASH_LOOKUP));
      if (PL_DHASH_ENTRY_IS_BUSY(entry)) {
        rv = aOtherTable->SetProperty(aObject, prop->mName,
                                      entry->value, prop->mDtorFunc,
                                      prop->mDtorData, prop->mTransfer);
        if (NS_FAILED(rv)) {
          DeleteAllPropertiesFor(aObject);
          aOtherTable->DeleteAllPropertiesFor(aObject);

          break;
        }

        PL_DHashTableRawRemove(&prop->mObjectValueMap, entry);
      }
    }
    else {
      prop->DeletePropertyFor(aObject);
    }
  }

  return rv;
}
开发者ID:Balakrishnan-Vivek,项目名称:gecko-dev,代码行数:31,代码来源:nsPropertyTable.cpp

示例4: GetPropertyListFor

nsresult
nsPropertyTable::DeleteProperty(nsPropertyOwner aObject,
                                nsIAtom    *aPropertyName)
{
    NS_PRECONDITION(aPropertyName && aObject, "unexpected null param");

    PropertyList* propertyList = GetPropertyListFor(aPropertyName);
    if (propertyList) {
        if (propertyList->DeletePropertyFor(aObject))
            return NS_OK;
    }

    return NS_PROPTABLE_PROP_NOT_THERE;
}
开发者ID:Jinwoo-Song,项目名称:gecko-dev,代码行数:14,代码来源:nsPropertyTable.cpp


注:本文中的PropertyList::DeletePropertyFor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。