void HeapSnapshotBuilder::appendNode(JSCell* cell) { ASSERT(m_profiler.activeSnapshotBuilder() == this); ASSERT(Heap::isMarkedConcurrently(cell)); if (hasExistingNodeForCell(cell)) return; std::lock_guard<Lock> lock(m_buildingNodeMutex); m_snapshot->appendNode(HeapSnapshotNode(cell, getNextObjectIdentifier())); }
void HeapSnapshotBuilder::appendNode(JSCell* cell) { ASSERT(m_profiler.activeSnapshotBuilder() == this); ASSERT(Heap::isMarked(cell)); NodeIdentifier identifier; if (previousSnapshotHasNodeForCell(cell, identifier)) return; std::lock_guard<Lock> lock(m_buildingNodeMutex); m_snapshot->appendNode(HeapSnapshotNode(cell, getNextObjectIdentifier())); }