Mercurial > hg > truffle
diff src/share/vm/prims/jvm.cpp @ 7958:815957d0203e
8004967: Default method cause VerifyError: Illegal use of nonvirtual
Summary: Recognize VM generated method in old verifier
Reviewed-by: acorn, coleenp
Contributed-by: bharadwaj.yadavelli@oracle.com
author | acorn |
---|---|
date | Mon, 28 Jan 2013 10:55:30 -0500 |
parents | 8b46b0196eb0 |
children | 24a91505f9d5 |
line wrap: on
line diff
--- a/src/share/vm/prims/jvm.cpp Sun Jan 27 21:58:34 2013 -0500 +++ b/src/share/vm/prims/jvm.cpp Mon Jan 28 10:55:30 2013 -0500 @@ -2302,6 +2302,15 @@ JVM_END +JVM_QUICK_ENTRY(jboolean, JVM_IsVMGeneratedMethodIx(JNIEnv *env, jclass cls, int method_index)) + JVMWrapper("JVM_IsVMGeneratedMethodIx"); + ResourceMark rm(THREAD); + Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(cls)); + k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread); + Method* method = InstanceKlass::cast(k)->methods()->at(method_index); + return method->is_overpass(); +JVM_END + JVM_ENTRY(const char*, JVM_GetMethodIxNameUTF(JNIEnv *env, jclass cls, jint method_index)) JVMWrapper("JVM_GetMethodIxIxUTF"); Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(cls));