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/04/10 19:21:15 UTC
[groovy] branch master updated: Switch to faster
String#indexOf/String#lastIndexOf methods taking a char parameter.
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 4a479bf Switch to faster String#indexOf/String#lastIndexOf methods taking a char parameter.
4a479bf is described below
commit 4a479bf48b4844487107bfb82cae5706fa778389
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Fri Apr 10 11:44:25 2020 +0200
Switch to faster String#indexOf/String#lastIndexOf methods taking a char parameter.
---
src/main/java/groovy/grape/GrabAnnotationTransformation.java | 4 ++--
src/main/java/groovy/lang/GroovyCodeSource.java | 2 +-
src/main/java/groovy/lang/GroovyShell.java | 2 +-
src/main/java/groovy/lang/MetaClassImpl.java | 2 +-
src/main/java/groovy/namespace/QName.java | 4 ++--
src/main/java/org/apache/groovy/util/SystemUtil.java | 2 +-
.../groovy/control/customizers/SourceAwareCustomizer.java | 2 +-
.../org/codehaus/groovy/tools/javac/JavaStubGenerator.java | 4 ++--
.../org/codehaus/groovy/transform/trait/TraitComposer.java | 2 +-
src/main/java/org/codehaus/groovy/vmplugin/v9/ClassFinder.java | 2 +-
.../codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java | 10 +++++-----
subprojects/groovy-xml/src/main/java/groovy/xml/XmlParser.java | 2 +-
.../src/main/java/groovy/xml/slurpersupport/GPathResult.java | 4 ++--
.../java/groovy/xml/slurpersupport/NamespaceAwareHashMap.java | 2 +-
14 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/src/main/java/groovy/grape/GrabAnnotationTransformation.java b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
index d30430a..c4689a8 100644
--- a/src/main/java/groovy/grape/GrabAnnotationTransformation.java
+++ b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
@@ -80,7 +80,7 @@ import static org.codehaus.groovy.transform.AbstractASTTransformation.getMemberS
@GroovyASTTransformation(phase=CompilePhase.CONVERSION)
public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implements ASTTransformation, CompilationUnitAware {
private static final String GRAB_CLASS_NAME = Grab.class.getName();
- private static final String GRAB_DOT_NAME = GRAB_CLASS_NAME.substring(GRAB_CLASS_NAME.lastIndexOf("."));
+ private static final String GRAB_DOT_NAME = GRAB_CLASS_NAME.substring(GRAB_CLASS_NAME.lastIndexOf('.'));
private static final String GRAB_SHORT_NAME = GRAB_DOT_NAME.substring(1);
private static final String GRABEXCLUDE_CLASS_NAME = GrabExclude.class.getName();
@@ -116,7 +116,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
private static final String SYSTEM_PROPERTIES_SETTING = Grape.SYSTEM_PROPERTIES_SETTING;
private static String dotName(String className) {
- return className.substring(className.lastIndexOf("."));
+ return className.substring(className.lastIndexOf('.'));
}
private static String shortName(String className) {
diff --git a/src/main/java/groovy/lang/GroovyCodeSource.java b/src/main/java/groovy/lang/GroovyCodeSource.java
index 2cd6fa2..6d6bfd2 100644
--- a/src/main/java/groovy/lang/GroovyCodeSource.java
+++ b/src/main/java/groovy/lang/GroovyCodeSource.java
@@ -167,7 +167,7 @@ public class GroovyCodeSource {
throw new RuntimeException("Could not construct a GroovyCodeSource from a null URL");
}
this.url = url;
- // TODO: GROOVY-6561: GroovyMain got the name this way: script.substring(script.lastIndexOf("/") + 1)
+ // TODO: GROOVY-6561: GroovyMain got the name this way: script.substring(script.lastIndexOf('/') + 1)
this.name = url.toExternalForm();
this.codeSource = new CodeSource(url, (java.security.cert.Certificate[]) null);
try {
diff --git a/src/main/java/groovy/lang/GroovyShell.java b/src/main/java/groovy/lang/GroovyShell.java
index f7d485b..bb47274 100644
--- a/src/main/java/groovy/lang/GroovyShell.java
+++ b/src/main/java/groovy/lang/GroovyShell.java
@@ -174,7 +174,7 @@ public class GroovyShell extends GroovyObjectSupport {
*/
public Object run(final File scriptFile, String[] args) throws CompilationFailedException, IOException {
String scriptName = scriptFile.getName();
- int p = scriptName.lastIndexOf(".");
+ int p = scriptName.lastIndexOf('.');
if (p++ >= 0) {
if (scriptName.substring(p).equals("java")) {
throw new CompilationFailedException(0, null);
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index f3a149a..4ade193 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -563,7 +563,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
private String[] decomposeMopName(final String mopName) {
- int idx = mopName.indexOf("$");
+ int idx = mopName.indexOf('$');
if (idx > 0) {
int eidx = mopName.indexOf("$", idx + 1);
if (eidx > 0) {
diff --git a/src/main/java/groovy/namespace/QName.java b/src/main/java/groovy/namespace/QName.java
index 09126b8..e029fc5 100644
--- a/src/main/java/groovy/namespace/QName.java
+++ b/src/main/java/groovy/namespace/QName.java
@@ -178,7 +178,7 @@ public class QName implements Serializable {
} else if (o instanceof String) {
final String string = (String)o;
if (string.length() == 0) return false;
- int lastColonIndex = string.lastIndexOf(":");
+ int lastColonIndex = string.lastIndexOf(':');
if (lastColonIndex < 0 || lastColonIndex == string.length() - 1) return false;
final String stringPrefix = string.substring(0,lastColonIndex);
final String stringLocalPart = string.substring(lastColonIndex + 1);
@@ -219,7 +219,7 @@ public class QName implements Serializable {
final String string = (String)o;
if (string.length() == 0) return false;
// try matching against 'prefix:localname'
- int lastColonIndex = string.lastIndexOf(":");
+ int lastColonIndex = string.lastIndexOf(':');
if (lastColonIndex < 0 && prefix.length() == 0) return string.equals(localPart);
if (lastColonIndex < 0 || lastColonIndex == string.length() - 1) return false;
final String stringPrefix = string.substring(0,lastColonIndex);
diff --git a/src/main/java/org/apache/groovy/util/SystemUtil.java b/src/main/java/org/apache/groovy/util/SystemUtil.java
index 57cd91a..503928a 100644
--- a/src/main/java/org/apache/groovy/util/SystemUtil.java
+++ b/src/main/java/org/apache/groovy/util/SystemUtil.java
@@ -31,7 +31,7 @@ public class SystemUtil {
if (nameValue == null) throw new IllegalArgumentException("argument should not be null");
String name, value;
- int i = nameValue.indexOf("=");
+ int i = nameValue.indexOf('=');
if (i == -1) {
name = nameValue;
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java
index 9858a42..3712442 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java
@@ -80,7 +80,7 @@ public class SourceAwareCustomizer extends DelegatingCustomizer {
}
public boolean accept(String fileName) {
- int ext = fileName.lastIndexOf(".");
+ int ext = fileName.lastIndexOf('.');
String baseName = ext<0?fileName:fileName.substring(0, ext);
String extension = ext<0?"":fileName.substring(ext+1);
return acceptExtension(extension) && acceptBaseName(baseName);
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
index 209fc67..fcf3948 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
@@ -309,7 +309,7 @@ public class JavaStubGenerator {
String className = classNode.getNameWithoutPackage();
if (classNode instanceof InnerClassNode)
- className = className.substring(className.lastIndexOf("$") + 1);
+ className = className.substring(className.lastIndexOf('$') + 1);
out.println(className);
printGenericsBounds(out, classNode, true);
@@ -539,7 +539,7 @@ public class JavaStubGenerator {
out.print("public "); // temporary hack
String className = clazz.getNameWithoutPackage();
if (clazz instanceof InnerClassNode)
- className = className.substring(className.lastIndexOf("$") + 1);
+ className = className.substring(className.lastIndexOf('$') + 1);
out.println(className);
printParams(out, constructorNode);
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
index 506044d..ae74dc2 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
@@ -198,7 +198,7 @@ public abstract class TraitComposer {
for (MethodNode methodNode : declaredMethods) {
String fieldName = methodNode.getName();
if (fieldName.endsWith(Traits.DIRECT_GETTER_SUFFIX) || fieldName.endsWith(Traits.DIRECT_SETTER_SUFFIX)) {
- int suffixIdx = fieldName.lastIndexOf("$");
+ int suffixIdx = fieldName.lastIndexOf('$');
fieldName = fieldName.substring(0, suffixIdx);
String operation = methodNode.getName().substring(suffixIdx + 1);
boolean getter = "get".equals(operation);
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v9/ClassFinder.java b/src/main/java/org/codehaus/groovy/vmplugin/v9/ClassFinder.java
index 12d7197..f952598 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v9/ClassFinder.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/ClassFinder.java
@@ -138,7 +138,7 @@ public class ClassFinder {
String packagePathStr = String.join("/", Arrays.copyOfRange(pathElems, prefixElemCnt + (!wfs && pathElems[0].isEmpty() ? 1 : 0), nameCount - 1));
if (recursive || packageName.equals(packagePathStr)) {
- Set<String> packageNameSet = result.computeIfAbsent(filename.substring(0, filename.lastIndexOf(".")), f -> new HashSet<>(2));
+ Set<String> packageNameSet = result.computeIfAbsent(filename.substring(0, filename.lastIndexOf('.')), f -> new HashSet<>(2));
packageNameSet.add(packagePathStr);
}
diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java
index a9c3201..ef29024 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java
@@ -454,10 +454,10 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
if (type.startsWith("? super ")) return "? super " + getDocUrl(type.substring(8), full, links, relativePath, rootDoc, classDoc);
String label = null;
- int lt = type.indexOf("<");
+ int lt = type.indexOf('<');
if (lt != -1) {
String outerType = type.substring(0, lt);
- int gt = type.lastIndexOf(">");
+ int gt = type.lastIndexOf('>');
if (gt != -1) {
if (gt > lt) {
String allTypeArgs = type.substring(lt + 1, gt);
@@ -581,7 +581,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
// if (name.equals("T") || name.equals("U") || name.equals("K") || name.equals("V") || name.equals("G")) {
// name = "java/lang/Object";
// }
- int slashIndex = name.lastIndexOf("/");
+ int slashIndex = name.lastIndexOf('/');
if (rootDoc != null) {
GroovyClassDoc doc = ((SimpleGroovyRootDoc)rootDoc).classNamedExact(name);
if (doc != null) return doc;
@@ -685,7 +685,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
private GroovyClassDoc resolveInternalClassDocFromSamePackage(GroovyRootDoc rootDoc, String baseName) {
if (isPrimitiveType(baseName)) return null;
if (baseName.contains(".")) return null;
- int lastSlash = fullPathName.lastIndexOf("/");
+ int lastSlash = fullPathName.lastIndexOf('/');
if (lastSlash < 0) return null;
String pkg = fullPathName.substring(0, lastSlash + 1);
return ((SimpleGroovyRootDoc)rootDoc).classNamedExact(pkg + baseName);
@@ -928,7 +928,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
if ("see".equals(tagname) || "link".equals(tagname)) {
content = getDocUrl(content);
} else if ("param".equals(tagname)) {
- int index = content.indexOf(" ");
+ int index = content.indexOf(' ');
if (index >= 0) {
content = "<code>" + content.substring(0, index) + "</code> - " + content.substring(index);
}
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/XmlParser.java b/subprojects/groovy-xml/src/main/java/groovy/xml/XmlParser.java
index 94a6e4c..3f72bbb 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/XmlParser.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/XmlParser.java
@@ -493,7 +493,7 @@ public class XmlParser implements ContentHandler {
return name;
}
if (qName != null && qName.length() > 0 && namespaceAware) {
- int index = qName.lastIndexOf(":");
+ int index = qName.lastIndexOf(':');
if (index > 0) {
prefix = qName.substring(0, index);
}
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/GPathResult.java b/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/GPathResult.java
index 633f656..d733797 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/GPathResult.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/GPathResult.java
@@ -123,14 +123,14 @@ public abstract class GPathResult extends GroovyObjectSupport implements Writabl
return depthFirst();
} else if (property.startsWith("@")) {
if (property.contains(":") && !this.namespaceTagHints.isEmpty()) {
- final int i = property.indexOf(":");
+ final int i = property.indexOf(':');
return new Attributes(this, "@" + property.substring(i + 1), property.substring(1, i), this.namespaceTagHints);
} else {
return new Attributes(this, property, this.namespaceTagHints);
}
} else {
if (property.contains(":") && !this.namespaceTagHints.isEmpty()) {
- final int i = property.indexOf(":");
+ final int i = property.indexOf(':');
return new NodeChildren(this, property.substring(i + 1), property.substring(0, i), this.namespaceTagHints);
} else {
return new NodeChildren(this, property, this.namespaceTagHints);
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NamespaceAwareHashMap.java b/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NamespaceAwareHashMap.java
index 4035e5c..dbe44de 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NamespaceAwareHashMap.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NamespaceAwareHashMap.java
@@ -72,7 +72,7 @@ public class NamespaceAwareHashMap extends HashMap<String, String> {
if (keyString.contains("{") || namespaceTagHints == null || namespaceTagHints.isEmpty() || !keyString.contains(":")) {
return key;
}
- final int i = keyString.indexOf(":");
+ final int i = keyString.indexOf(':');
return new QName(namespaceTagHints.get(keyString.substring(0, i)).toString(), keyString.substring(i + 1)).toString();
}
}