1.1 --- a/src/jdk/internal/dynalink/beans/DynamicMethodLinker.java Wed Jul 03 14:08:00 2013 +0530 1.2 +++ b/src/jdk/internal/dynalink/beans/DynamicMethodLinker.java Wed Jul 03 12:39:28 2013 +0200 1.3 @@ -85,12 +85,12 @@ 1.4 1.5 import java.lang.invoke.MethodHandle; 1.6 import java.lang.invoke.MethodHandles; 1.7 -import java.lang.invoke.MethodType; 1.8 import jdk.internal.dynalink.CallSiteDescriptor; 1.9 import jdk.internal.dynalink.linker.GuardedInvocation; 1.10 import jdk.internal.dynalink.linker.LinkRequest; 1.11 import jdk.internal.dynalink.linker.LinkerServices; 1.12 import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; 1.13 +import jdk.internal.dynalink.support.CallSiteDescriptorFactory; 1.14 import jdk.internal.dynalink.support.Guards; 1.15 1.16 /** 1.17 @@ -110,19 +110,18 @@ 1.18 return null; 1.19 } 1.20 final CallSiteDescriptor desc = linkRequest.getCallSiteDescriptor(); 1.21 - if(desc.getNameTokenCount() != 2 && desc.getNameToken(CallSiteDescriptor.SCHEME) != "dyn") { 1.22 + if(desc.getNameTokenCount() != 2 && desc.getNameToken(CallSiteDescriptor.SCHEME) != "dyn") { 1.23 return null; 1.24 } 1.25 final String operator = desc.getNameToken(CallSiteDescriptor.OPERATOR); 1.26 if(operator == "call") { 1.27 - final MethodType type = desc.getMethodType(); 1.28 - final MethodHandle invocation = ((DynamicMethod)receiver).getInvocation(type.dropParameterTypes(0, 1), 1.29 - linkerServices); 1.30 + final MethodHandle invocation = ((DynamicMethod)receiver).getInvocation( 1.31 + CallSiteDescriptorFactory.dropParameterTypes(desc, 0, 1), linkerServices); 1.32 if(invocation == null) { 1.33 return null; 1.34 } 1.35 - return new GuardedInvocation(MethodHandles.dropArguments(invocation, 0, type.parameterType(0)), 1.36 - Guards.getIdentityGuard(receiver)); 1.37 + return new GuardedInvocation(MethodHandles.dropArguments(invocation, 0, 1.38 + desc.getMethodType().parameterType(0)), Guards.getIdentityGuard(receiver)); 1.39 } 1.40 return null; 1.41 }