src/jdk/internal/dynalink/beans/DynamicMethodLinker.java

changeset 404
18d467e94150
parent 101
f8221ce53c2e
child 952
6d5471a497fb
child 962
ac62e33a99b0
     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      }

mercurial