mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-22 03:54:33 +02:00
8017571: JSR292: JVM crashing on assert "cast to instanceKlass" while producing MethodHandle for array methods with MethodHandle.findVirtual
Reviewed-by: kvn
This commit is contained in:
parent
386e37ba15
commit
90c790728d
2 changed files with 7 additions and 2 deletions
|
@ -1137,7 +1137,12 @@ JVM_ENTRY(jobject, MHN_resolve_Mem(JNIEnv *env, jobject igcls, jobject mname_jh,
|
|||
if (VerifyMethodHandles && caller_jh != NULL &&
|
||||
java_lang_invoke_MemberName::clazz(mname()) != NULL) {
|
||||
Klass* reference_klass = java_lang_Class::as_Klass(java_lang_invoke_MemberName::clazz(mname()));
|
||||
if (reference_klass != NULL) {
|
||||
if (reference_klass != NULL && reference_klass->oop_is_objArray()) {
|
||||
reference_klass = ObjArrayKlass::cast(reference_klass)->bottom_klass();
|
||||
}
|
||||
|
||||
// Reflection::verify_class_access can only handle instance classes.
|
||||
if (reference_klass != NULL && reference_klass->oop_is_instance()) {
|
||||
// Emulate LinkResolver::check_klass_accessability.
|
||||
Klass* caller = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(caller_jh));
|
||||
if (!Reflection::verify_class_access(caller,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue