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; |