w00t! Vacation commits FTW! (Just kidding; @Scott: please rest) On Thu, Apr 9, 2009 at 11:52 AM, Scott Blum <[email protected]> wrote:
> FYI: I just committed the last of my outstanding memory work to trunk. Lex > kindly agreed to watch the build and do a roll-back for me if something > breaks. > > > On Tue, Apr 7, 2009 at 10:33 PM, Scott Blum <[email protected]> wrote: > >> On Tue, Apr 7, 2009 at 4:12 PM, Lex Spoon <[email protected]> wrote: >> >>> > 5178: Also tightened up the recursive method slightly, and managing the >>> > "computed" set better. This works because once a class transitions >>> from >>> > hasClinit -> !hasClinit, there's no possible way it can ever go back. >>> >>> Small problem: I believe line 644-646 in the patched version is >>> intended to test "target", not "type". If that sounds right, then the >>> rest LGTM. Otherwise, let's discuss how this is supposed to work. >>> >> >> Nice catch! I botched a manual inlining of lines 636-641 in the original. >> >> >>> By the way, this algorithm could be sped up if, it mattered for >>> performance. Instead of repeatedly recursing for each type, start by >>> marking classes where hasLiveCode() as having clinits. Then, >>> propagate clinit-ness backwards along the getClinitTargets() graph. >>> Any class not reached does not needs its clinit. The advantage >>> probably doesn't matter in this case in practice, but I mention it >>> because this funny algorithm pattern keeps coming up. >>> >> >> That is a better approach, I'll have to remember that next time I run into >> this pattern. >> >> Thanks, >> Scott >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
