On Wed, Jul 01, 2009 at 01:37:23PM +0100, Andrew Haley wrote: > It's not an ABI change. This patch is OK iff accompanied by a comment > in the code that explains the problem. Thanks, here is what I've committed. In doing so, I had to --enable-java-maintainer-mode to update the class file, which in addition to changing the HTML_401F* files changed a lot of headers and a handful of classes as well, see attached second patch. But at least the header changes look wrong, see e.g. - namespace namespace$ + namespace namespace changes in the headers, I guess related to recent keyword handling changes. Dunno if that is because I had a wrong gcjh or if there is some recent issue in the tools. I've only committed the HTML_401F* files, the second patch is just FYI. Index: classpath/ChangeLog.gcj =================================================================== --- classpath/ChangeLog.gcj (revision 149147) +++ classpath/ChangeLog.gcj (working copy) @@ -1,3 +1,10 @@ +2009-07-01 Jakub Jelinek + + * gnu/javax/swing/text/html/parser/HTML_401F.java (defineElements): + Split this huge method into... + (defineElements1, defineElements2, defineElements3, defineElements4, + defineElements5, defineElements6): ... these smaller methods. + 2009-06-16 Matthias Klose * tools/gnu/classpath/tools/gjdoc/Main.java (getGjdocVersion): Use Index: classpath/gnu/javax/swing/text/html/parser/HTML_401F.java =================================================================== --- classpath/gnu/javax/swing/text/html/parser/HTML_401F.java (revision 149147) +++ classpath/gnu/javax/swing/text/html/parser/HTML_401F.java (working copy) @@ -379,6 +379,24 @@ public class HTML_401F */ protected void defineElements() { + /* Define the elements. This used to be one huge method, which + unfortunately took too long to compile and consumed + too much memory while compiling it. While it can serve as + a good stress test for gcj, it is better to split it up + to save time and memory used during GCC bootstrap. */ + defineElements1(); + defineElements2(); + defineElements3(); + defineElements4(); + defineElements5(); + defineElements6(); + } + + /** + * Define first sixth of elements of this DTD. + */ + private void defineElements1() + { /* Define the elements. */ defElement(PCDATA, 0, false, false, null, NONE, NONE, new AttributeList[ 0 ]); @@ -885,6 +903,15 @@ public class HTML_401F 0, IMPLIED) } ); + + } + + /** + * Define second sixth of elements of this DTD. + */ + private void defineElements2() + { + /* Define the elements. */ defElement(CENTER, 0, false, false, null, NONE , @@ -1373,6 +1400,15 @@ public class HTML_401F attr(ONKEYUP, null, null, 0, IMPLIED) } ); + + } + + /** + * Define third sixth of elements of this DTD. + */ + private void defineElements3() + { + /* Define the elements. */ defElement(FONT, 0, false, false, null, NONE , @@ -1861,6 +1897,15 @@ public class HTML_401F attr(VSPACE, null, null, 0, IMPLIED) } ); + + } + + /** + * Define fourth sixth of elements of this DTD. + */ + private void defineElements4() + { + /* Define the elements. */ defElement(INPUT, EMPTY, false, true, null, NONE , @@ -2357,6 +2402,15 @@ public class HTML_401F attr(VSPACE, null, null, 0, IMPLIED) } ); + + } + + /** + * Define fifth sixth of elements of this DTD. + */ + private void defineElements5() + { + /* Define the elements. */ defElement(OL, 0, false, false, createListModel(), NONE , @@ -2859,6 +2913,15 @@ public class HTML_401F attr(ONKEYUP, null, null, 0, IMPLIED) } ); + + } + + /** + * Define last sixth of elements of this DTD. + */ + private void defineElements6() + { + /* Define the elements. */ defElement(SUP, 0, false, false, null, NONE , Index: classpath/lib/gnu/javax/swing/text/html/parser/HTML_401F.class =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: gnu/javax/swing/text/html/parser/HTML_401F.h =================================================================== --- gnu/javax/swing/text/html/parser/HTML_401F.h (revision 149147) +++ gnu/javax/swing/text/html/parser/HTML_401F.h (working copy) @@ -58,6 +58,14 @@ public: static ::javax::swing::text::html::parser::DTD * getInstance(); public: // actually protected virtual void defineElements(); +private: + void defineElements1(); + void defineElements2(); + void defineElements3(); + void defineElements4(); + void defineElements5(); + void defineElements6(); +public: // actually protected virtual void defineEntities(); virtual ::javax::swing::text::html::parser::ContentModel * model(::java::lang::String *); private: Jakub