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) {