+void ProfileGenerator::beginCallEntry(ProfileNode* node, double startTime)
+{
+ ASSERT_ARG(node, node);
+
+ if (std::isnan(startTime))
+ startTime = m_stopwatch->elapsedTime();
+
+ node->appendCall(ProfileNode::Call(startTime));
+}
+
+void ProfileGenerator::endCallEntry(ProfileNode* node)
+{
+ ASSERT_ARG(node, node);
+
+ ProfileNode::Call& last = node->lastCall();
+
+ double previousElapsedTime = std::isnan(last.elapsedTime()) ? 0.0 : last.elapsedTime();
+ double newlyElapsedTime = m_stopwatch->elapsedTime() - last.startTime();
+ last.setElapsedTime(previousElapsedTime + newlyElapsedTime);
+}
+