This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 8c200ec Change type `LinkedList` to `ArrayList` to accelerate
iterating
8c200ec is described below
commit 8c200eca1f48c1cd991b1278aba8b5f9efdc46d5
Author: Daniel Sun <[email protected]>
AuthorDate: Fri Jun 26 18:16:01 2020 +0800
Change type `LinkedList` to `ArrayList` to accelerate iterating
---
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;
}