Skip to content

Commit fb6ab69

Browse files
committed
use indexed loop to avoid Iterator allocation
1 parent eaba9bf commit fb6ab69

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

src/main/java/org/htmlunit/cyberneko/HTMLTagBalancer.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)