hotspot/src/share/vm/prims/jvm.cpp
changeset 3820 0a8fbbe180db
parent 3578 411436f0a4a2
child 4429 d7eb4e2099aa
equal deleted inserted replaced
3814:91f531a11872 3820:0a8fbbe180db
   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