[1/5] groovy git commit: Fix some potential performance issues

2018-02-19 Thread sunlan
Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_5_X 021ab0fba -> ab7d39a17


Fix some potential performance issues

(cherry picked from commit b8a52eb)


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

Branch: refs/heads/GROOVY_2_5_X
Commit: 2b507b297b35d5827575924648b695d608e81c8e
Parents: 021ab0f
Author: danielsun1106 
Authored: Tue Feb 20 03:00:48 2018 +0800
Committer: danielsun1106 
Committed: Tue Feb 20 03:43:24 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/2b507b29/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 8b8a510..da51a0a 100644
--- a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
+++ b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
@@ -105,7 +105,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/2b507b29/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 getPrimaryClassNodes(boolean sort) {
 List unsorted = new ArrayList();
 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/2b507b29/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 = 

groovy git commit: Fix some potential performance issues

2018-02-19 Thread sunlan
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 
Authored: Tue Feb 20 03:00:48 2018 +0800
Committer: danielsun1106 
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 getPrimaryClassNodes(boolean sort) {
 List unsorted = new ArrayList();
 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