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 2018/02/27 00:29:18 UTC

groovy git commit: Minor refactoring: fix potential performance issue and extract variable

Repository: groovy
Updated Branches:
  refs/heads/master ee2a8f572 -> 33be1e1d5


Minor refactoring: fix potential performance issue and extract variable


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/33be1e1d
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/33be1e1d
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/33be1e1d

Branch: refs/heads/master
Commit: 33be1e1d51dd0b238ee551eff0c46a2306b7e339
Parents: ee2a8f5
Author: sunlan <su...@apache.org>
Authored: Tue Feb 27 08:29:01 2018 +0800
Committer: sunlan <su...@apache.org>
Committed: Tue Feb 27 08:29:01 2018 +0800

----------------------------------------------------------------------
 .../groovy/macro/matcher/ContextualClassCodeVisitor.java        | 4 +---
 .../groovy/org/codehaus/groovy/macro/matcher/TreeContext.java   | 2 ++
 .../org/codehaus/groovy/macro/methods/MacroGroovyMethods.java   | 5 +++--
 .../groovy/macro/transform/MacroCallTransformingVisitor.java    | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
index f062837..efcdc9e 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
@@ -555,9 +555,7 @@ public abstract class ContextualClassCodeVisitor extends ClassCodeVisitorSupport
     public List<TreeContext> getTreePath() {
         List<TreeContext> path = new LinkedList<TreeContext>();
         path.add(lastContext);
-        for (TreeContext treeContext : treeContextStack) {
-            path.add(treeContext);
-        }
+        path.addAll(treeContextStack);
         return path;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java
index de31c8a..f8fd564 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java
@@ -42,6 +42,8 @@ public class TreeContext {
     final Map<Object, List<?>> userdata = MapWithDefault.newInstance(
             new HashMap<Object, List<?>>(),
             new Closure(this) {
+                private static final long serialVersionUID = -4694773031569936343L;
+
                 public Object doCall(Object key) {
                     return new LinkedList<Object>();
                 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
index ee5e9c7..2a14a30 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
@@ -195,12 +195,13 @@ public class MacroGroovyMethods {
     protected static ClosureExpression getClosureArgument(SourceUnit source, MethodCallExpression call) {
         TupleExpression tupleArguments = getMacroArguments(source, call);
 
-        if (tupleArguments == null || tupleArguments.getExpressions().size() < 1) {
+        int size = tupleArguments.getExpressions().size();
+        if (tupleArguments == null || size < 1) {
             source.addError(new SyntaxException("Call arguments should have at least one argument" + '\n', tupleArguments));
             return null;
         }
 
-        Expression result = tupleArguments.getExpression(tupleArguments.getExpressions().size() - 1);
+        Expression result = tupleArguments.getExpression(size - 1);
         if (!(result instanceof ClosureExpression)) {
             source.addError(new SyntaxException("Last call argument should be a closure" + '\n', result));
             return null;

http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
index 77d3196..54929b3 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
@@ -158,7 +158,7 @@ class MacroCallTransformingVisitor extends ClassCodeVisitorSupport {
         call.setSafe(false);
         call.setImplicitThis(false);
         call.setArguments(result);
-        call.setGenericsTypes(new GenericsType[0]);
+        call.setGenericsTypes(GenericsType.EMPTY_ARRAY);
 
         return true;
     }