<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Mar 19, 2012, at 5:22 PM, Jordan Rose <<a href="mailto:jediknil@belkadan.com">jediknil@belkadan.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; display: inline !important; float: none; ">On the other hand, MallocBugVisitor is currently stateful -- that is, it assumes it's never going to see the same node-pair twice, and that the nodes are always visited end-to-start. I can make it less stateful (i.e. accept the same node-pair twice), but getting it down all the way to no state means a fair amount of rewriting. Is it part of the design that visitors be non-stateful, in case we ever want to traverse the nodes in some other order?</span></blockquote></div><br><div>Hmm.  What about make the state functional, and having that state maintained by BugReporter as we walk the path?  We could then generate state speculatively, and throw it away when we don't care.  Just a half baked idea, that I haven't necessarily thought through.</div></body></html>