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 2022/08/28 19:00:12 UTC

[groovy] branch master updated: Trivial tweak for checking conditions further

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 51d22ae9ab Trivial tweak for checking conditions further
51d22ae9ab is described below

commit 51d22ae9ab35cd6ec2d597c13823a39c2b6e1757
Author: Daniel Sun <su...@apache.org>
AuthorDate: Mon Aug 29 02:59:54 2022 +0800

    Trivial tweak for checking conditions further
---
 src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
index 8549380140..61e1248f4c 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
@@ -677,9 +677,10 @@ public abstract class Selector {
         private MethodHandle correctClassForNameAndUnReflectOtherwise(Method m) throws IllegalAccessException {
             final String methodName = m.getName();
             final int parameterCount = m.getParameterTypes().length;
-            if (parameterCount == 1 && methodName.equals("forName") && m.getDeclaringClass() == Class.class) {
+            final Class<?> declaringClass = m.getDeclaringClass();
+            if (declaringClass == Class.class && parameterCount == 1 && methodName.equals("forName")) {
                 return MethodHandles.insertArguments(CLASS_FOR_NAME, 1, true, sender.getClassLoader());
-            } else if (parameterCount == 0 && methodName.equals("clone") && null != args && args.getClass().isArray()) {
+            } else if (declaringClass == Object.class && parameterCount == 0 && methodName.equals("clone") && null != args && args.getClass().isArray()) {
                 return ArrayUtil.getCloneArrayMethodHandle();
             } else {
                 return LOOKUP.unreflect(m);