Skip to content

Commit 49325ac

Browse files
committed
[optimise] Avoid unnecessary double iteration in fn:reverse
1 parent 2934397 commit 49325ac

1 file changed

Lines changed: 2 additions & 9 deletions

File tree

exist-core/src/main/java/org/exist/xquery/functions/fn/FunReverse.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import org.exist.xquery.value.Item;
3737
import org.exist.xquery.value.Sequence;
3838
import org.exist.xquery.value.ValueSequence;
39-
import org.exist.xquery.value.SequenceIterator;
4039
import org.exist.xquery.value.SequenceType;
4140
import org.exist.xquery.value.Type;
4241

@@ -103,20 +102,14 @@ public Sequence eval(final Sequence contextSequence, final Item contextItem) thr
103102
}
104103
}
105104

106-
final Sequence result;
107105
final Sequence seq = getArguments(contextSequence, contextItem)[0];
106+
final Sequence result;
108107
if (seq.isEmpty()) {
109108
result = Sequence.EMPTY_SEQUENCE;
110109
} else {
111110
result = new ValueSequence();
112-
113-
final Sequence tmp = new ValueSequence();
114-
for (final SequenceIterator i = seq.iterate(); i.hasNext(); ) {
115-
final Item item = i.nextItem();
116-
tmp.add(item);
117-
}
118111
for (int i = seq.getItemCount() - 1; i >= 0; i--) {
119-
result.add(tmp.itemAt(i));
112+
result.add(seq.itemAt(i));
120113
}
121114
}
122115

0 commit comments

Comments
 (0)