Ignore:
Timestamp:
Jun 13, 2008, 10:45:05 AM (17 years ago)
Author:
[email protected]
Message:

2008-06-13 Kevin McCullough <[email protected]>

Reviewed by Geoff.

<rdar://problem/5969992> JSProfiler: Remove the recursion limit in the
profiler.

  • Remove recursion from exclude(). This leaves only focus() to fix.
  • JavaScriptCore.exp: Change the signatures of the exported functions.
  • profiler/Profile.cpp: (KJS::Profile::forEach): I added a traverseNextNodePreOrder() function and so needed to distinguish the other function by labeling it traverseNextNodePostOrder(). (KJS::Profile::exclude): All new exclude that iteratively walks the tree
  • profiler/Profile.h: (KJS::Profile::focus): Add a null check for m_head.
  • profiler/ProfileNode.cpp: (KJS::ProfileNode::traverseNextNodePostOrder): Renamed (KJS::ProfileNode::traverseNextNodePreOrder): Walks the tree in pre- order, where the parent is processed before the children. (KJS::ProfileNode::setTreeVisible): Iterate over the sub-tree and set all of the nodes visible value. This changes another function that used recursion. (KJS::ProfileNode::exclude): Remove recursion from this function. Because we now check for m_visible and we are walking the tree in pre- order we do not need to check if an excluded node is in an excluded sub-tree.
  • profiler/ProfileNode.h: Added specific selfTime functions to facilitate exclude(). (KJS::ProfileNode::setSelfTime): (KJS::ProfileNode::setActualSelfTime): (KJS::ProfileNode::setVisibleSelfTime):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.exp

    r34514 r34521  
    161161__ZN3KJS7CStringaSERKS0_
    162162__ZN3KJS7Machine13dumpCallFrameEPKNS_9CodeBlockEPNS_14ScopeChainNodeEPNS_12RegisterFileEPKNS_8RegisterE
     163__ZN3KJS7Profile7excludeEPKNS_11ProfileNodeE
     164__ZN3KJS7Profile7forEachEPFvPNS_11ProfileNodeEE
    163165__ZN3KJS7Profile10restoreAllEv
    164166__ZN3KJS7Profile7forEachEPFvPNS_11ProfileNodeEE
Note: See TracChangeset for help on using the changeset viewer.