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/06 07:38:24 UTC

[groovy] branch master updated: Trivial tweak: reuse `Lookup` instance

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 80a22f7219 Trivial tweak: reuse `Lookup` instance
80a22f7219 is described below

commit 80a22f72192b98741f5d1bcf8b4a035cd2522699
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sat Aug 6 15:37:42 2022 +0800

    Trivial tweak: reuse `Lookup` instance
---
 src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java b/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java
index e4dcd4b57c..a93a6f16ac 100644
--- a/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java
+++ b/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java
@@ -36,6 +36,7 @@ import java.util.concurrent.atomic.AtomicReference;
  */
 public class GroovyObjectHelper {
     private static final String GET_LOOKUP_METHOD_NAME = "$getLookup";
+    private static final Lookup LOOKUP = MethodHandles.lookup();
 
     /**
      * Get the {@link Lookup} instance of the {@link GroovyObject} instance
@@ -59,7 +60,7 @@ public class GroovyObjectHelper {
                 classList.add(clazz);
             }
 
-            Lookup caller = MethodHandles.lookup();
+            Lookup caller = LOOKUP;
             for (int i = classList.size() - 1; i >= 0; i--) {
                 Class<?> c = classList.get(i);
                 caller = doLookup(c, caller);
@@ -89,7 +90,7 @@ public class GroovyObjectHelper {
             final Class<? extends GroovyObject> groovyObjectClass = groovyObject.getClass();
             if (groovyObjectClass.isAnonymousClass() ||
                     (isNonStaticInnerClass(groovyObjectClass))) {
-                lookup = (MethodHandles.Lookup) MethodHandles.lookup()
+                lookup = (MethodHandles.Lookup) LOOKUP
                         .unreflect(findGetLookupMethod(groovyObjectClass))
                         .bindTo(groovyObject)
                         .invokeExact();
@@ -104,7 +105,7 @@ public class GroovyObjectHelper {
     }
 
     private static Lookup doLookup(Class<?> groovyObjectClass) {
-        return doLookup(groovyObjectClass, MethodHandles.lookup());
+        return doLookup(groovyObjectClass, LOOKUP);
     }
 
     private static Lookup doLookup(Class<?> groovyObjectClass, Lookup caller) {