void IntendedStructureChain::visitChildren(SlotVisitor& visitor) { visitor.appendUnbarrieredPointer(&m_globalObject); visitor.appendUnbarrieredValue(&m_prototype); for (unsigned i = m_vector.size(); i--;) visitor.appendUnbarrieredPointer(&m_vector[i]); }
void Plan::visitChildren(SlotVisitor& visitor, CodeBlockSet& codeBlocks) { for (unsigned i = mustHandleValues.size(); i--;) visitor.appendUnbarrieredValue(&mustHandleValues[i]); codeBlocks.mark(codeBlock.get()); codeBlocks.mark(profiledDFGCodeBlock.get()); chains.visitChildren(visitor); weakReferences.visitChildren(visitor); writeBarriers.visitChildren(visitor); transitions.visitChildren(visitor); }
void Plan::checkLivenessAndVisitChildren(SlotVisitor& visitor) { if (!isKnownToBeLiveDuringGC()) return; for (unsigned i = mustHandleValues.size(); i--;) visitor.appendUnbarrieredValue(&mustHandleValues[i]); visitor.appendUnbarrieredReadOnlyPointer(codeBlock); visitor.appendUnbarrieredReadOnlyPointer(profiledDFGCodeBlock); if (inlineCallFrames) { for (auto* inlineCallFrame : *inlineCallFrames) { ASSERT(inlineCallFrame->baselineCodeBlock.get()); visitor.appendUnbarrieredReadOnlyPointer(inlineCallFrame->baselineCodeBlock.get()); } } weakReferences.visitChildren(visitor); transitions.visitChildren(visitor); }