本文整理汇总了C++中SlotVisitor::addUnconditionalFinalizer方法的典型用法代码示例。如果您正苦于以下问题:C++ SlotVisitor::addUnconditionalFinalizer方法的具体用法?C++ SlotVisitor::addUnconditionalFinalizer怎么用?C++ SlotVisitor::addUnconditionalFinalizer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SlotVisitor
的用法示例。
在下文中一共展示了SlotVisitor::addUnconditionalFinalizer方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visitChildren
void SymbolTable::visitChildren(JSCell* thisCell, SlotVisitor& visitor)
{
SymbolTable* thisSymbolTable = jsCast<SymbolTable*>(thisCell);
if (!thisSymbolTable->m_watchpointCleanup) {
thisSymbolTable->m_watchpointCleanup =
std::make_unique<WatchpointCleanup>(thisSymbolTable);
}
visitor.addUnconditionalFinalizer(thisSymbolTable->m_watchpointCleanup.get());
}
示例2: visitChildren
void WeakMapData::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
Base::visitChildren(cell, visitor);
WeakMapData* thisObj = jsCast<WeakMapData*>(cell);
visitor.addUnconditionalFinalizer(&thisObj->m_deadKeyCleaner);
visitor.addWeakReferenceHarvester(&thisObj->m_deadKeyCleaner);
// Rough approximation of the external storage needed for the hashtable.
// This isn't exact, but it is close enough, and proportional to the actual
// external mermory usage.
visitor.reportExtraMemoryUsage(thisObj->m_map.capacity() * (sizeof(JSObject*) + sizeof(WriteBarrier<Unknown>)));
}
示例3: visitChildren
void InferredType::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
InferredType* inferredType = jsCast<InferredType*>(cell);
ConcurrentJSLocker locker(inferredType->m_lock);
if (inferredType->m_structure) {
// The mutator may clear the structure before the GC runs finalizers, so we have to protect
// the finalizer from being destroyed.
inferredType->m_structure->ref();
visitor.addUnconditionalFinalizer(&inferredType->m_structure->m_finalizer);
}
}