From b32f6abb2611e54bfeedce3b27cdd83c2d86d3b8 Mon Sep 17 00:00:00 2001 From: Robert Muir Date: Mon, 6 Jun 2016 17:29:03 -0400 Subject: [PATCH] remove unnecessary caching --- .../src/main/java/org/elasticsearch/painless/Def.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/modules/lang-painless/src/main/java/org/elasticsearch/painless/Def.java b/modules/lang-painless/src/main/java/org/elasticsearch/painless/Def.java index c9572d15dc1..bfa230a26c7 100644 --- a/modules/lang-painless/src/main/java/org/elasticsearch/painless/Def.java +++ b/modules/lang-painless/src/main/java/org/elasticsearch/painless/Def.java @@ -238,14 +238,9 @@ public final class Def { } catch (LambdaConversionException e) { throw new RuntimeException(e); } - try { - // create an implementation of the interface (instance) - Object instance = callSite.dynamicInvoker().asType(MethodType.methodType(clazz)).invoke(); - // bind this instance as a constant replacement for the parameter - return MethodHandles.dropArguments(MethodHandles.constant(clazz, instance), 0, Object.class); - } catch (Throwable e) { - throw new RuntimeException(e); - } + // we could actually invoke and cache here (in non-capturing cases), but this is not a speedup. + MethodHandle factory = callSite.dynamicInvoker().asType(MethodType.methodType(clazz)); + return MethodHandles.dropArguments(factory, 0, Object.class); }