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 2019/08/11 19:55:49 UTC
[groovy] branch master updated: Minor refactoring: Avoid redundant
method invocation
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 0a67384 Minor refactoring: Avoid redundant method invocation
0a67384 is described below
commit 0a673844f0ba8377baff7f1db7d6993ba10adf23
Author: Daniel Sun <su...@apache.org>
AuthorDate: Mon Aug 12 03:46:39 2019 +0800
Minor refactoring: Avoid redundant method invocation
---
src/main/java/groovy/lang/MetaClassImpl.java | 11 ++++----
.../groovy/runtime/callsite/CallSiteHelper.java | 33 ----------------------
.../runtime/callsite/PogoMetaMethodSite.java | 15 ++++++----
.../runtime/callsite/PojoMetaMethodSite.java | 15 ++++++----
4 files changed, 24 insertions(+), 50 deletions(-)
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index 82fb16d..ee4f01e 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -48,7 +48,6 @@ import org.codehaus.groovy.runtime.MetaClassHelper;
import org.codehaus.groovy.runtime.MethodClosure;
import org.codehaus.groovy.runtime.callsite.AbstractCallSite;
import org.codehaus.groovy.runtime.callsite.CallSite;
-import org.codehaus.groovy.runtime.callsite.CallSiteHelper;
import org.codehaus.groovy.runtime.callsite.ConstructorSite;
import org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite;
import org.codehaus.groovy.runtime.callsite.PogoMetaClassSite;
@@ -78,6 +77,8 @@ import org.codehaus.groovy.runtime.wrappers.Wrapper;
import org.codehaus.groovy.util.ComplexKeyHashMap;
import org.codehaus.groovy.util.FastArray;
import org.codehaus.groovy.util.SingleKeyHashMap;
+import org.codehaus.groovy.vmplugin.VMPlugin;
+import org.codehaus.groovy.vmplugin.VMPluginFactory;
import org.objectweb.asm.ClassVisitor;
import java.beans.BeanInfo;
@@ -119,7 +120,7 @@ import static org.codehaus.groovy.reflection.ReflectionCache.isAssignableFrom;
* @see groovy.lang.MetaClass
*/
public class MetaClassImpl implements MetaClass, MutableMetaClass {
-
+ private static final VMPlugin VM_PLUGIN = VMPluginFactory.getPlugin();
public static final Object[] EMPTY_ARGUMENTS = {};
protected static final String STATIC_METHOD_MISSING = "$static_methodMissing";
@@ -1279,7 +1280,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
if (method != null) {
- MetaMethod transformedMetaMethod = CallSiteHelper.transformMetaMethod(this, method, MetaClassHelper.convertToTypeArray(arguments), MetaClassImpl.class);
+ MetaMethod transformedMetaMethod = VM_PLUGIN.transformMetaMethod(this, method, MetaClassHelper.convertToTypeArray(arguments), MetaClassImpl.class);
return transformedMetaMethod.doMethodInvoke(object, arguments);
} else {
return invokePropertyOrMissing(object, methodName, originalArguments, fromInsideClass, isCallToSuper);
@@ -1922,7 +1923,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
//----------------------------------------------------------------------
// executing the getter method
//----------------------------------------------------------------------
- MetaMethod transformedMetaMethod = CallSiteHelper.transformMetaMethod(this, method, MetaClassHelper.convertToTypeArray(arguments), MetaClassImpl.class);
+ MetaMethod transformedMetaMethod = VM_PLUGIN.transformMetaMethod(this, method, MetaClassHelper.convertToTypeArray(arguments), MetaClassImpl.class);
return transformedMetaMethod.doMethodInvoke(object, arguments);
}
@@ -2842,7 +2843,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
arguments[1] = newValue;
}
- MetaMethod transformedMetaMethod = CallSiteHelper.transformMetaMethod(this, method, MetaClassHelper.convertToTypeArray(arguments), MetaClassImpl.class);
+ MetaMethod transformedMetaMethod = VM_PLUGIN.transformMetaMethod(this, method, MetaClassHelper.convertToTypeArray(arguments), MetaClassImpl.class);
transformedMetaMethod.doMethodInvoke(object, arguments);
return;
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteHelper.java b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteHelper.java
deleted file mode 100644
index 016c537..0000000
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteHelper.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.codehaus.groovy.runtime.callsite;
-
-import groovy.lang.MetaClass;
-import groovy.lang.MetaMethod;
-import org.codehaus.groovy.vmplugin.VMPlugin;
-import org.codehaus.groovy.vmplugin.VMPluginFactory;
-
-public class CallSiteHelper {
- private static final VMPlugin VM_PLUGIN = VMPluginFactory.getPlugin();
-
- public static MetaMethod transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?>[] params, Class<?> caller) {
- return VM_PLUGIN.transformMetaMethod(metaClass, metaMethod, params, caller);
- }
-
-}
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java
index 49a2da0..cc8be1e 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java
@@ -26,6 +26,8 @@ import org.codehaus.groovy.reflection.CachedMethod;
import org.codehaus.groovy.runtime.GroovyCategorySupport;
import org.codehaus.groovy.runtime.MetaClassHelper;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
+import org.codehaus.groovy.vmplugin.VMPlugin;
+import org.codehaus.groovy.vmplugin.VMPluginFactory;
import java.lang.reflect.Method;
@@ -35,9 +37,10 @@ import java.lang.reflect.Method;
* method - cached
*/
public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
+ private static final VMPlugin VM_PLUGIN = VMPluginFactory.getPlugin();
private final int version;
private final boolean skipVersionCheck;
- public PogoMetaMethodSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PogoMetaMethodSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
version = metaClass.getVersion();
skipVersionCheck = metaClass.getClass()==MetaClassImpl.class;
@@ -157,7 +160,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
final Method reflect;
public PogoCachedMethodSite(CallSite site, MetaClassImpl metaClass, CachedMethod metaMethod, Class[] params) {
- super(site, metaClass, CallSiteHelper.transformMetaMethod(metaClass, metaMethod, params, site.getArray().owner), params);
+ super(site, metaClass, VM_PLUGIN.transformMetaMethod(metaClass, metaMethod, params, site.getArray().owner), params);
reflect = ((CachedMethod) super.metaMethod).setAccessible();
}
@@ -170,7 +173,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
public static class PogoCachedMethodSiteNoUnwrap extends PogoCachedMethodSite {
- public PogoCachedMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, CachedMethod metaMethod, Class params[]) {
+ public PogoCachedMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, CachedMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
@@ -182,7 +185,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
public static class PogoCachedMethodSiteNoUnwrapNoCoerce extends PogoCachedMethodSite {
- public PogoCachedMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, CachedMethod metaMethod, Class params[]) {
+ public PogoCachedMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, CachedMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
@@ -196,7 +199,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
*/
public static class PogoMetaMethodSiteNoUnwrap extends PogoMetaMethodSite {
- public PogoMetaMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PogoMetaMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
@@ -214,7 +217,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
*/
public static class PogoMetaMethodSiteNoUnwrapNoCoerce extends PogoMetaMethodSite {
- public PogoMetaMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PogoMetaMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java
index 2e22c47..e1ab089 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java
@@ -26,6 +26,8 @@ import org.codehaus.groovy.runtime.GroovyCategorySupport;
import org.codehaus.groovy.runtime.MetaClassHelper;
import org.codehaus.groovy.runtime.NullObject;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
+import org.codehaus.groovy.vmplugin.VMPlugin;
+import org.codehaus.groovy.vmplugin.VMPluginFactory;
import java.lang.reflect.Method;
@@ -35,10 +37,11 @@ import java.lang.reflect.Method;
* method - cached
*/
public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
+ private static final VMPlugin VM_PLUGIN = VMPluginFactory.getPlugin();
protected final int version;
- public PojoMetaMethodSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PojoMetaMethodSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
version = metaClass.getVersion();
}
@@ -178,7 +181,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
final Method reflect;
public PojoCachedMethodSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
- super(site, metaClass, CallSiteHelper.transformMetaMethod(metaClass, metaMethod, params, site.getArray().owner), params);
+ super(site, metaClass, VM_PLUGIN.transformMetaMethod(metaClass, metaMethod, params, site.getArray().owner), params);
reflect = ((CachedMethod) super.metaMethod).setAccessible();
}
@@ -191,7 +194,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
public static class PojoCachedMethodSiteNoUnwrap extends PojoCachedMethodSite {
- public PojoCachedMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PojoCachedMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
@@ -203,7 +206,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
public static class PojoCachedMethodSiteNoUnwrapNoCoerce extends PojoCachedMethodSite {
- public PojoCachedMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PojoCachedMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
@@ -217,7 +220,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
*/
public static class PojoMetaMethodSiteNoUnwrap extends PojoMetaMethodSite {
- public PojoMetaMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PojoMetaMethodSiteNoUnwrap(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}
@@ -235,7 +238,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
*/
public static class PojoMetaMethodSiteNoUnwrapNoCoerce extends PojoMetaMethodSite {
- public PojoMetaMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class params[]) {
+ public PojoMetaMethodSiteNoUnwrapNoCoerce(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params) {
super(site, metaClass, metaMethod, params);
}