@@ -350,7 +350,9 @@ public void reset(final XMLComponentManager manager)
350350 fragmentContextStack_ = (QName []) manager .getProperty (FRAGMENT_CONTEXT_STACK );
351351 if (fragmentContextStack_ != null ) {
352352 fSeenAnything = fragmentContextStack_ .length > 0 ;
353- for (final QName qname : fragmentContextStack_ ) {
353+ // use indexed loop to avoid Iterator allocation
354+ for (int i = 0 ; i < fragmentContextStack_ .length ; i ++) {
355+ final QName qname = fragmentContextStack_ [i ];
354356 if ("html" .equalsIgnoreCase (qname .getLocalpart ())) {
355357 fSeenRootElement = true ;
356358 fSeenRealHtmlElement = true ;
@@ -448,7 +450,9 @@ public void startDocument(final XMLLocator locator, final String encoding,
448450 fElementStack .top = 0 ;
449451 if (fragmentContextStack_ != null ) {
450452 fragmentContextStackSize_ = fragmentContextStack_ .length ;
451- for (final QName name : fragmentContextStack_ ) {
453+ // use indexed loop to avoid Iterator allocation
454+ for (int i = 0 ; i < fragmentContextStackSize_ ; i ++) {
455+ final QName name = fragmentContextStack_ [i ];
452456 final Element elt = htmlConfiguration_ .getHtmlElements ().getElement (name .getLocalpart ());
453457 fElementStack .push (new Info (elt , name ));
454458 }
@@ -1375,7 +1379,9 @@ protected int getParentDepth(final Element element) {
13751379 if (info .element .code == bounds ) {
13761380 break ;
13771381 }
1378- for (final Element parent : parents ) {
1382+ // use indexed loop to avoid Iterator allocation
1383+ for (int j = 0 ; j < parents .length ; j ++) {
1384+ final Element parent = parents [j ];
13791385 if (info .element .code == parent .code ) {
13801386 return fElementStack .top - i ;
13811387 }
0 commit comments