// The console.profileEnd that stopped this ProfileGenerator will be the last child. void ProfileGenerator::removeProfileEnd() { ProfileNode* currentNode = nullptr; for (ProfileNode* next = m_rootNode.get(); next; next = next->lastChild()) currentNode = next; if (currentNode->callIdentifier().functionName() != "profileEnd") return; ASSERT(currentNode->callIdentifier() == (currentNode->parent()->children()[currentNode->parent()->children().size() - 1])->callIdentifier()); currentNode->parent()->removeChild(currentNode); }
// The console.ProfileGeneratorEnd that stopped this ProfileGenerator will be the last child. void ProfileGenerator::removeProfileEnd() { ProfileNode* currentNode = 0; for (ProfileNode* next = m_head.get(); next; next = next->lastChild()) currentNode = next; if (currentNode->callIdentifier().m_name != "profileEnd") return; // Attribute the time of the node aobut to be removed to the self time of its parent currentNode->parent()->setSelfTime(currentNode->parent()->selfTime() + currentNode->totalTime()); ASSERT(currentNode->callIdentifier() == (currentNode->parent()->children()[currentNode->parent()->children().size() - 1])->callIdentifier()); currentNode->parent()->removeChild(currentNode); }
// The console.profile that started this ProfileGenerator will be the first child. void ProfileGenerator::removeProfileStart() { ProfileNode* currentNode = nullptr; for (ProfileNode* next = m_rootNode.get(); next; next = next->firstChild()) currentNode = next; if (currentNode->callIdentifier().functionName() != "profile") return; currentNode->parent()->removeChild(currentNode); }
// The console.profile that started this ProfileGenerator will be the first child. void ProfileGenerator::removeProfileStart() { ProfileNode* currentNode = 0; for (ProfileNode* next = m_head.get(); next; next = next->firstChild()) currentNode = next; if (currentNode->callIdentifier().functionName() != "profile") return; // Attribute the time of the node aobut to be removed to the self time of its parent currentNode->parent()->setSelfTime(currentNode->parent()->selfTime() + currentNode->totalTime()); currentNode->parent()->removeChild(currentNode); }