Mercurial > hg > truffle
comparison src/share/vm/prims/jvm.cpp @ 973:ad6585fd4087
6830542: Performance: JVM_DefineClass already verified.
Reviewed-by: kamg, phh
author | acorn |
---|---|
date | Fri, 04 Sep 2009 12:53:02 -0400 |
parents | abe076e3636f |
children | 389049f3f393 |
comparison
equal
deleted
inserted
replaced
967:6918603297f7 | 973:ad6585fd4087 |
---|---|
760 counter->inc(); | 760 counter->inc(); |
761 } | 761 } |
762 } | 762 } |
763 | 763 |
764 // common code for JVM_DefineClass() and JVM_DefineClassWithSource() | 764 // common code for JVM_DefineClass() and JVM_DefineClassWithSource() |
765 static jclass jvm_define_class_common(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source, TRAPS) { | 765 // and JVM_DefineClassWithSourceCond() |
766 static jclass jvm_define_class_common(JNIEnv *env, const char *name, | |
767 jobject loader, const jbyte *buf, | |
768 jsize len, jobject pd, const char *source, | |
769 jboolean verify, TRAPS) { | |
766 if (source == NULL) source = "__JVM_DefineClass__"; | 770 if (source == NULL) source = "__JVM_DefineClass__"; |
767 | 771 |
768 assert(THREAD->is_Java_thread(), "must be a JavaThread"); | 772 assert(THREAD->is_Java_thread(), "must be a JavaThread"); |
769 JavaThread* jt = (JavaThread*) THREAD; | 773 JavaThread* jt = (JavaThread*) THREAD; |
770 | 774 |
801 THREAD); | 805 THREAD); |
802 } | 806 } |
803 Handle protection_domain (THREAD, JNIHandles::resolve(pd)); | 807 Handle protection_domain (THREAD, JNIHandles::resolve(pd)); |
804 klassOop k = SystemDictionary::resolve_from_stream(class_name, class_loader, | 808 klassOop k = SystemDictionary::resolve_from_stream(class_name, class_loader, |
805 protection_domain, &st, | 809 protection_domain, &st, |
810 verify != 0, | |
806 CHECK_NULL); | 811 CHECK_NULL); |
807 | 812 |
808 if (TraceClassResolution && k != NULL) { | 813 if (TraceClassResolution && k != NULL) { |
809 trace_class_resolution(k); | 814 trace_class_resolution(k); |
810 } | 815 } |
814 | 819 |
815 | 820 |
816 JVM_ENTRY(jclass, JVM_DefineClass(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd)) | 821 JVM_ENTRY(jclass, JVM_DefineClass(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd)) |
817 JVMWrapper2("JVM_DefineClass %s", name); | 822 JVMWrapper2("JVM_DefineClass %s", name); |
818 | 823 |
819 return jvm_define_class_common(env, name, loader, buf, len, pd, NULL, THREAD); | 824 return jvm_define_class_common(env, name, loader, buf, len, pd, NULL, true, THREAD); |
820 JVM_END | 825 JVM_END |
821 | 826 |
822 | 827 |
823 JVM_ENTRY(jclass, JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source)) | 828 JVM_ENTRY(jclass, JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source)) |
824 JVMWrapper2("JVM_DefineClassWithSource %s", name); | 829 JVMWrapper2("JVM_DefineClassWithSource %s", name); |
825 | 830 |
826 return jvm_define_class_common(env, name, loader, buf, len, pd, source, THREAD); | 831 return jvm_define_class_common(env, name, loader, buf, len, pd, source, true, THREAD); |
827 JVM_END | 832 JVM_END |
828 | 833 |
834 JVM_ENTRY(jclass, JVM_DefineClassWithSourceCond(JNIEnv *env, const char *name, | |
835 jobject loader, const jbyte *buf, | |
836 jsize len, jobject pd, | |
837 const char *source, jboolean verify)) | |
838 JVMWrapper2("JVM_DefineClassWithSourceCond %s", name); | |
839 | |
840 return jvm_define_class_common(env, name, loader, buf, len, pd, source, verify, THREAD); | |
841 JVM_END | |
829 | 842 |
830 JVM_ENTRY(jclass, JVM_FindLoadedClass(JNIEnv *env, jobject loader, jstring name)) | 843 JVM_ENTRY(jclass, JVM_FindLoadedClass(JNIEnv *env, jobject loader, jstring name)) |
831 JVMWrapper("JVM_FindLoadedClass"); | 844 JVMWrapper("JVM_FindLoadedClass"); |
832 ResourceMark rm(THREAD); | 845 ResourceMark rm(THREAD); |
833 | 846 |