private void RecursiveTreeWalk(SamplingCallTreeElem callTreeElem, out SamplingTreeElem recomputedTreeElem) { recomputedTreeElem = new SamplingTreeElem(); recomputedTreeElem.CallTreeElem = callTreeElem; recomputedTreeElem.TopStackSnapshotOccurrence = //callTreeElem.LastProfiledFrameInStackCount + callTreeElem.StackTopOccurrenceCount; recomputedTreeElem.InStackSnapshotOccurrence = recomputedTreeElem.TopStackSnapshotOccurrence; bool leafReached = callTreeElem.ChildrenCount == 0; if (!leafReached) { foreach (var childCallTreeElem in callTreeElem.Children) { SamplingTreeElem childTreeElem; RecursiveTreeWalk(childCallTreeElem, out childTreeElem); recomputedTreeElem.Children.Add(childTreeElem); recomputedTreeElem.InStackSnapshotOccurrence += childTreeElem.InStackSnapshotOccurrence; } } }
private void RecursiveTreeWalk(SamplingCallTreeElem callTreeElem, out SamplingTreeElem recomputedTreeElem) { recomputedTreeElem = new SamplingTreeElem(); recomputedTreeElem.CallTreeElem = callTreeElem; recomputedTreeElem.TopStackSnapshotOccurrence = //callTreeElem.LastProfiledFrameInStackCount + callTreeElem.StackTopOccurrenceCount; recomputedTreeElem.InStackSnapshotOccurrence = recomputedTreeElem.TopStackSnapshotOccurrence; bool leafReached = callTreeElem.ChildrenCount == 0; if(!leafReached) { foreach (var childCallTreeElem in callTreeElem.Children) { SamplingTreeElem childTreeElem; RecursiveTreeWalk(childCallTreeElem, out childTreeElem); recomputedTreeElem.Children.Add(childTreeElem); recomputedTreeElem.InStackSnapshotOccurrence += childTreeElem.InStackSnapshotOccurrence; } } }