Hey, Bob, I hope your trip back was pleasant.  Can you review this patch for me?

What it does is do a better job with static fields.  This was spurred
by a bug that occurs for static fields initialized to strings.
While fixing that, it was just as easy to improve static fields
in general.  Static fields can now be moved out of the initial
download.  Also, if a program has a class
full of static fields pointing to string literals, the individual
strings can be downloaded one by one, rather than all of them
coming together as soon as any of them are needed.

It shaves off 2431 bytes (1.9%) of Showcase's uncompressed initial download.

The specifics changes are:

FragmentExtractor: static field declarations can be moved out
of the initial download

ControlFlowAnalyzer: for static fields initialized to strings,
    the string becomes live when the field does, but *not* when the
    class's initializer does.

CodeSplitter:
  There is a load-order dependency of the field on the string.

  Also, when logging the fragment map, fields and string literals
  are now logegd.

There are also some cleanups: one method is moved and made private,
and three individual comments are moved to a more central location.


Lex

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Attachment: deferFields2-r4151.patch
Description: Binary data

Reply via email to