本文整理汇总了C++中OSOrderedSet::setLastObject方法的典型用法代码示例。如果您正苦于以下问题:C++ OSOrderedSet::setLastObject方法的具体用法?C++ OSOrderedSet::setLastObject怎么用?C++ OSOrderedSet::setLastObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OSOrderedSet
的用法示例。
在下文中一共展示了OSOrderedSet::setLastObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OSDynamicCast
OSCollection * OSOrderedSet::copyCollection(OSDictionary *cycleDict)
{
bool allocDict = !cycleDict;
OSCollection *ret = 0;
OSOrderedSet *newSet = 0;
if (allocDict) {
cycleDict = OSDictionary::withCapacity(16);
if (!cycleDict)
return 0;
}
do {
// Check for a cycle
ret = super::copyCollection(cycleDict);
if (ret)
continue;
// Duplicate the set with no contents
newSet = OSOrderedSet::withCapacity(capacity, ordering, orderingRef);
if (!newSet)
continue;
// Insert object into cycle Dictionary
cycleDict->setObject((const OSSymbol *) this, newSet);
newSet->capacityIncrement = capacityIncrement;
// Now copy over the contents to the new duplicate
for (unsigned int i = 0; i < count; i++) {
OSObject *obj = EXT_CAST(array[i].obj);
OSCollection *coll = OSDynamicCast(OSCollection, obj);
if (coll) {
OSCollection *newColl = coll->copyCollection(cycleDict);
if (newColl) {
obj = newColl; // Rely on cycleDict ref for a bit
newColl->release();
}
else
goto abortCopy;
};
newSet->setLastObject(obj);
};
ret = newSet;
newSet = 0;
} while (false);
abortCopy:
if (newSet)
newSet->release();
if (allocDict)
cycleDict->release();
return ret;
}