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/19 19:00:54 UTC

groovy git commit: Fix some potential performance issues

Repository: groovy
Updated Branches:
  refs/heads/master 5096e0cb8 -> b8a52eb30


Fix some potential performance issues


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

Branch: refs/heads/master
Commit: b8a52eb30f339b11601d747ebf8be186957853f8
Parents: 5096e0c
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Feb 20 03:00:48 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Tue Feb 20 03:00:48 2018 +0800

----------------------------------------------------------------------
 .../org/codehaus/groovy/classgen/GeneratorContext.java  |  2 +-
 .../org/codehaus/groovy/control/CompilationUnit.java    |  4 +---
 .../org/codehaus/groovy/control/ResolveVisitor.java     | 12 ++++++------
 .../org/codehaus/groovy/reflection/ReflectionCache.java |  2 +-
 .../codehaus/groovy/runtime/ResourceGroovyMethods.java  |  4 +---
 .../codehaus/groovy/tools/javac/JavacJavaCompiler.java  |  3 +--
 .../transform/stc/TraitTypeCheckingExtension.java       |  2 +-
 7 files changed, 12 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
index dd318bd..1204dfa 100644
--- a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
+++ b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
@@ -115,7 +115,7 @@ public class GeneratorContext {
                 }
             }
         }
-        if(b == null) return name.toString();
+        if(b == null) return name;
         if (lastEscape == -1) throw new GroovyBugError("unexpected escape char control flow in "+name);
         b.append(name, lastEscape + 1, l);
         return b.toString();

http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index a766784..b47a653 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -1026,9 +1026,7 @@ public class CompilationUnit extends ProcessingUnit {
     private List<ClassNode> getPrimaryClassNodes(boolean sort) {
         List<ClassNode> unsorted = new ArrayList<ClassNode>();
         for (ModuleNode module : this.ast.getModules()) {
-            for (ClassNode classNode : module.getClasses()) {
-                unsorted.add(classNode);
-            }
+            unsorted.addAll(module.getClasses());
         }
 
         if (!sort) return unsorted;

http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index fe96714..922c528 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -762,7 +762,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
 
     private static String lookupClassName(PropertyExpression pe) {
         boolean doInitialClassTest=true;
-        String name = "";
+        StringBuilder name = new StringBuilder(32);
         // this loop builds a name from right to left each name part
         // separated by "."
         for (Expression it = pe; it != null; it = ((PropertyExpression) it).getObjectExpression()) {
@@ -782,9 +782,9 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
                     // field bar.
                     if (!testVanillaNameForClass(varName)) return null;
                     doInitialClassTest = false;
-                    name = varName;
+                    name = new StringBuilder(varName);
                 } else {
-                    name = varName + "." + name;
+                    name.insert(0, varName + ".");
                 }
                 break;
             }
@@ -808,14 +808,14 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
                     // field bar.
                     if (!testVanillaNameForClass(propertyPart)) return null;
                     doInitialClassTest= false;
-                    name = propertyPart;
+                    name = new StringBuilder(propertyPart);
                 } else {
-                    name = propertyPart + "." + name;
+                    name.insert(0, propertyPart + ".");
                 }
             }
         }
         if (name.length() == 0) return null;
-        return name;
+        return name.toString();
     }
 
     // iterate from the inner most to the outer and check for classes

http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java b/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
index 372a0a5..c9ea871 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
@@ -47,7 +47,7 @@ public class ReflectionCache {
     public static String getMOPMethodName(CachedClass declaringClass, String name, boolean useThis) {
         TripleKeyHashMap.Entry mopNameEntry = mopNames.getOrPut(declaringClass, name, Boolean.valueOf(useThis));
         if (mopNameEntry.value == null) {
-            mopNameEntry.value = new StringBuffer().append(useThis ? "this$" : "super$").append(declaringClass.getSuperClassDistance()).append("$").append(name).toString();
+            mopNameEntry.value = new StringBuilder().append(useThis ? "this$" : "super$").append(declaringClass.getSuperClassDistance()).append("$").append(name).toString();
         }
         return (String) mopNameEntry.value;
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
index c869523..789b275 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
@@ -1716,9 +1716,7 @@ public class ResourceGroovyMethods extends DefaultGroovyMethodsSupport {
         }
 
         // fill it up path with parts which were not equal
-        for (int i = same; i < toPathStack.length; i++) {
-            relativePathStack.add(toPathStack[i]);
-        }
+        relativePathStack.addAll(Arrays.asList(toPathStack).subList(same, toPathStack.length));
 
         return getPath(relativePathStack);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
index a705ecf..bfed227 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -165,9 +165,8 @@ public class JavacJavaCompiler implements JavaCompiler {
                 // ignore it
             }
 
-            StringBuilder resultPath = new StringBuilder(DefaultGroovyMethods.join((Iterable) paths, File.pathSeparator));
             paras.add("-classpath");
-            paras.add(resultPath.toString());
+            paras.add(DefaultGroovyMethods.join((Iterable) paths, File.pathSeparator));
         }
 
         // files to compile

http://git-wip-us.apache.org/repos/asf/groovy/blob/b8a52eb3/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
index 9bc93b5..4a108d9 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
@@ -123,7 +123,7 @@ public class TraitTypeCheckingExtension extends AbstractTypeCheckingExtension {
         System.arraycopy(argumentTypes, 0, newArgs, 0, newArgs.length);
         ClassNode inferredReturnType = inferTraitMethodReturnType(nextTrait, name, newArgs);
 
-        return Arrays.asList(makeDynamic(call, inferredReturnType));
+        return Collections.singletonList(makeDynamic(call, inferredReturnType));
     }
 
     private ClassNode inferTraitMethodReturnType(ClassNode nextTrait, String methodName, ClassNode[] paramTypes) {