本文整理汇总了C++中wtf::PassRefPtr::identifier方法的典型用法代码示例。如果您正苦于以下问题:C++ PassRefPtr::identifier方法的具体用法?C++ PassRefPtr::identifier怎么用?C++ PassRefPtr::identifier使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wtf::PassRefPtr
的用法示例。
在下文中一共展示了PassRefPtr::identifier方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unregisterNode
void SamplerApollo::unregisterNode(WTF::PassRefPtr<BaseSamplerNode> node)
{
ASSERT(node.get());
// invalidate the cached node if it is going to be deleted
if (m_cachedSearchNode.get() == node.get())
m_cachedSearchNode.clear();
m_liveNodes.remove(node->ptr());
m_liveNodesByIdentifier.remove(node->identifier());
#if !ENABLE(JIT)
// the references from RefPtr
ASSERT(node->hasOneRef());
#endif
// when sampling is stopped don't bother to keep the dead object.
if (samplerWillDeallocate(node.get())) {
WTF::PassRefPtr<DeadSamplerNode> deadNode = DeadSamplerNode::createWithDataFrom(node.get());
ASSERT(deadNode->hasOneRef());
m_deadNodesByIdentifier.add(node->identifier(), deadNode.get());
}
#if ENABLE(JIT)
node->clearPtr();
#endif
}
示例2: registerNode
bool SamplerApollo::registerNode(WTF::PassRefPtr<BaseSamplerNode> node)
{
if (UNLIKELY(!samplingNow))
return false;
// check if the object was allocated earlier or if maybe the old object
// didn't trigger deallocation
ASSERT(getSamplerNodeFor(node->ptr()) == 0);
const uint64_t identifier = samplerDidAllocate(node.get());
if (identifier) {
node->setIdentifier(identifier);
m_liveNodes.add(node->ptr(), node.get());
m_liveNodesByIdentifier.add(node->identifier(), node.get());
// the references from liveNodes maps + pass ref ptr
ASSERT(node->refCount() == 3);
return true;
}
return false;
}