void ProfileGenerator::stopProfiling() { for (ProfileNode* node = m_currentNode.get(); node != m_profile->rootNode(); node = node->parent()) endCallEntry(node); if (m_foundConsoleStartParent) { removeProfileStart(); removeProfileEnd(); } ASSERT(m_currentNode); // Set the current node to the parent, because we are in a call that // will not get didExecute call. m_currentNode = m_currentNode->parent(); }
void ProfileGenerator::stopProfiling() { m_profile->forEach(&ProfileNode::stopProfiling); if (m_foundConsoleStartParent) { removeProfileStart(); removeProfileEnd(); } ASSERT(m_currentNode); // Set the current node to the parent, because we are in a call that // will not get didExecute call. m_currentNode = m_currentNode->parent(); if (double headSelfTime = m_head->selfTime()) { m_head->setSelfTime(0.0); m_profile->setIdleTime(headSelfTime); } }
void ProfileGenerator::stopProfiling() { m_profile->forEach(&ProfileNode::stopProfiling); removeProfileStart(); removeProfileEnd(); ASSERT(m_currentNode); // Set the current node to the parent, because we are in a call that // will not get didExecute call. m_currentNode = m_currentNode->parent(); if (double headSelfTime = m_head->selfTime()) { RefPtr<ProfileNode> idleNode = ProfileNode::create(0, CallIdentifier(NonJSExecution, UString(), 0), m_head.get(), m_head.get()); idleNode->setTotalTime(headSelfTime); idleNode->setSelfTime(headSelfTime); idleNode->setVisible(true); m_head->setSelfTime(0.0); m_head->addChild(idleNode.release()); } }