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 <sco...@google.com> wrote:

> On Tue, Apr 7, 2009 at 4:12 PM, Lex Spoon <sp...@google.com> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to