From a514d7611670759793f1afbd950b3f5ffb971673 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 16 Apr 2013 17:12:40 +0400 Subject: [PATCH] Optimization: Unneeded collection creation eliminated --- .../calls/ValueArgumentsToParametersMapper.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java index 00a84bda45a..bfca07f031f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java @@ -102,20 +102,18 @@ import static org.jetbrains.jet.lang.resolve.calls.ValueArgumentsToParametersMap // We saw only positioned arguments so far private final ProcessorState positionedOnly = new ProcessorState() { - private Queue valueParameterQueue; + private int currentParameter = 0; @Nullable public ValueParameterDescriptor nextValueParameter() { - if (valueParameterQueue == null) { - valueParameterQueue = new LinkedList(candidateCall.getCandidateDescriptor().getValueParameters()); - } + List parameters = candidateCall.getCandidateDescriptor().getValueParameters(); + if (currentParameter >= parameters.size()) return null; - ValueParameterDescriptor head = valueParameterQueue.peek(); - if (head == null) return null; + ValueParameterDescriptor head = parameters.get(currentParameter); // If we found a vararg parameter, we are stuck with it forever if (head.getVarargElementType() == null) { - valueParameterQueue.remove(); + currentParameter++; } return head;