diff src/share/vm/jvmci/jvmciCompilerToVM.cpp @ 24100:839dcc4f2cf6 jvmci-0.24

handle signature polymorphic methods correctly (JDK-8161550)
author Doug Simon <doug.simon@oracle.com>
date Wed, 08 Feb 2017 23:49:32 +0100
parents f161917eed57
children b48ccfe53101
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciCompilerToVM.cpp	Wed Feb 08 23:25:01 2017 +0100
+++ b/src/share/vm/jvmci/jvmciCompilerToVM.cpp	Wed Feb 08 23:49:32 2017 +0100
@@ -938,6 +938,11 @@
   Symbol* h_name      = method->name();
   Symbol* h_signature = method->signature();
 
+  vmIntrinsics::ID iid = method()->intrinsic_id();
+  if (MethodHandles::is_signature_polymorphic(iid) && MethodHandles::is_signature_polymorphic_intrinsic(iid)) {
+      // Signature polymorphic methods are already resolved, JVMCI just returns NULL in this case.
+      return NULL;
+  }
   methodHandle m;
   // Only do exact lookup if receiver klass has been linked.  Otherwise,
   // the vtable has not been setup, and the LinkResolver will fail.