src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
changeset 48480 614068b0ddd7
parent 48400 8604408bc26e
child 48608 1dab70e20292
child 48792 d2920683b2ea
equal deleted inserted replaced
48479:7b5c930b878c 48480:614068b0ddd7
   747   oop result = CompilerToVM::get_jvmci_method(ucm, CHECK_NULL);
   747   oop result = CompilerToVM::get_jvmci_method(ucm, CHECK_NULL);
   748   return JNIHandles::make_local(THREAD, result);
   748   return JNIHandles::make_local(THREAD, result);
   749 C2V_END
   749 C2V_END
   750 
   750 
   751 C2V_VMENTRY(jobject, getImplementor, (JNIEnv *, jobject, jobject jvmci_type))
   751 C2V_VMENTRY(jobject, getImplementor, (JNIEnv *, jobject, jobject jvmci_type))
   752   InstanceKlass* klass = (InstanceKlass*) CompilerToVM::asKlass(jvmci_type);
   752   Klass* klass = CompilerToVM::asKlass(jvmci_type);
   753   oop implementor = CompilerToVM::get_jvmci_type(klass->implementor(), CHECK_NULL);
   753   if (!klass->is_interface()) {
       
   754     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
       
   755         err_msg("Expected interface type, got %s", klass->external_name()));
       
   756   }
       
   757   InstanceKlass* iklass = InstanceKlass::cast(klass);
       
   758   oop implementor = CompilerToVM::get_jvmci_type(iklass->implementor(), CHECK_NULL);
   754   return JNIHandles::make_local(THREAD, implementor);
   759   return JNIHandles::make_local(THREAD, implementor);
   755 C2V_END
   760 C2V_END
   756 
   761 
   757 C2V_VMENTRY(jboolean, methodIsIgnoredBySecurityStackWalk,(JNIEnv *, jobject, jobject jvmci_method))
   762 C2V_VMENTRY(jboolean, methodIsIgnoredBySecurityStackWalk,(JNIEnv *, jobject, jobject jvmci_method))
   758   methodHandle method = CompilerToVM::asMethod(jvmci_method);
   763   methodHandle method = CompilerToVM::asMethod(jvmci_method);
   987   assert(klass != NULL, "method must not be called for primitive types");
   992   assert(klass != NULL, "method must not be called for primitive types");
   988   return Dependencies::find_finalizable_subclass(klass) != NULL;
   993   return Dependencies::find_finalizable_subclass(klass) != NULL;
   989 C2V_END
   994 C2V_END
   990 
   995 
   991 C2V_VMENTRY(jobject, getClassInitializer, (JNIEnv *, jobject, jobject jvmci_type))
   996 C2V_VMENTRY(jobject, getClassInitializer, (JNIEnv *, jobject, jobject jvmci_type))
   992   InstanceKlass* klass = (InstanceKlass*) CompilerToVM::asKlass(jvmci_type);
   997   Klass* klass = CompilerToVM::asKlass(jvmci_type);
   993   oop result = CompilerToVM::get_jvmci_method(klass->class_initializer(), CHECK_NULL);
   998   if (!klass->is_instance_klass()) {
       
   999     return NULL;
       
  1000   }
       
  1001   InstanceKlass* iklass = InstanceKlass::cast(klass);
       
  1002   oop result = CompilerToVM::get_jvmci_method(iklass->class_initializer(), CHECK_NULL);
   994   return JNIHandles::make_local(THREAD, result);
  1003   return JNIHandles::make_local(THREAD, result);
   995 C2V_END
  1004 C2V_END
   996 
  1005 
   997 C2V_VMENTRY(jlong, getMaxCallTargetOffset, (JNIEnv*, jobject, jlong addr))
  1006 C2V_VMENTRY(jlong, getMaxCallTargetOffset, (JNIEnv*, jobject, jlong addr))
   998   address target_addr = (address) addr;
  1007   address target_addr = (address) addr;