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
-~----------~----~----~----~------~----~------~--~---

Reply via email to