Revision: 6534 Author: [email protected] Date: Wed Oct 28 17:14:14 2009 Log: tr...@6532 was merged into this branch Fixes a very obscure bug in ControlFlowAnalyzer. svn merge --ignore-ancestry -c6532 http://google-web-toolkit.googlecode.com/svn/trunk/ .
http://code.google.com/p/google-web-toolkit/source/detail?r=6534 Modified: /releases/2.0/branch-info.txt /releases/2.0/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java ======================================= --- /releases/2.0/branch-info.txt Wed Oct 28 14:57:48 2009 +++ /releases/2.0/branch-info.txt Wed Oct 28 17:14:14 2009 @@ -100,3 +100,8 @@ tr...@6524 was merged into this branch Deprecate panels that have LayoutPanel alternatives svn merge --ignore-ancestry -c 6524 https://google-web-toolkit.googlecode.com/svn/trunk . + +tr...@6532 was merged into this branch + Fixes a very obscure bug in ControlFlowAnalyzer. + svn merge --ignore-ancestry -c6532 http://google-web-toolkit.googlecode.com/svn/trunk/ . + ======================================= --- /releases/2.0/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java Fri Aug 21 10:53:16 2009 +++ /releases/2.0/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java Wed Oct 28 17:14:14 2009 @@ -506,6 +506,19 @@ maybeRescueJavaScriptObjectPassingIntoJava(method.getType()); } rescueOverridingMethods(method); + + /* + * Special case: also rescue an associated staticImpl. Most of the + * time, this would happen naturally since the instance method + * delegates to the static. However, in cases where the static has + * been inlined into the instance method, future optimization could + * tighten an instance call into a static call, reaching code that + * was pruned. + */ + JMethod staticImpl = program.getStaticImpl(method); + if (staticImpl != null) { + rescue(staticImpl); + } return true; } } --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
