You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/06/26 11:34:55 UTC
[groovy] 03/04: Change type `LinkedList` to `ArrayList` to
accelerate iterating
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 2a101723a2bebd20283a8884a1a8bdc7e2027215
Author: Daniel Sun <su...@apache.org>
AuthorDate: Fri Jun 26 18:16:01 2020 +0800
Change type `LinkedList` to `ArrayList` to accelerate iterating
(cherry picked from commit 8c200eca1f48c1cd991b1278aba8b5f9efdc46d5)
---
src/main/java/org/codehaus/groovy/ast/ClassNode.java | 8 ++++----
.../java/org/codehaus/groovy/classgen/VariableScopeVisitor.java | 7 ++++---
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 4d0e12f..f6bf3e3 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -142,7 +142,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
private List<ConstructorNode> constructors;
private MapOfLists methods;
private List<MethodNode> methodsList;
- private LinkedList<FieldNode> fields;
+ private List<FieldNode> fields;
private List<PropertyNode> properties;
private Map<String, FieldNode> fieldIndex;
private ModuleNode module;
@@ -354,7 +354,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
return redirect.getFields();
lazyClassInit();
if (fields == null)
- fields = new LinkedList<>();
+ fields = new ArrayList<>();
return fields;
}
@@ -516,12 +516,12 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
node.setDeclaringClass(r);
node.setOwner(r);
if (r.fields == null)
- r.fields = new LinkedList<>();
+ r.fields = new ArrayList<>();
if (r.fieldIndex == null)
r.fieldIndex = new LinkedHashMap<>();
if (isFirst) {
- r.fields.addFirst(node);
+ r.fields.add(0, node);
} else {
r.fields.add(node);
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
index ef22321..4ff9a18 100644
--- a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
@@ -180,9 +180,10 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
for (MethodNode mn : cn.getMethods()) {
if (name.equals(getPropertyName(mn))) {
PropertyNode property = new PropertyNode(name, mn.getModifiers(), ClassHelper.OBJECT_TYPE, cn, null, null, null);
- property.getField().setHasNoRealSourcePosition(true);
- property.getField().setSynthetic(true);
- property.getField().setDeclaringClass(cn);
+ final FieldNode field = property.getField();
+ field.setHasNoRealSourcePosition(true);
+ field.setSynthetic(true);
+ field.setDeclaringClass(cn);
property.setDeclaringClass(cn);
return property;
}