comparison src/share/vm/prims/jvm.cpp @ 431:a45484ea312d

6653858: dynamic languages need to be able to load anonymous classes Summary: low-level privileged sun.misc.Unsafe.defineAnonymousClass Reviewed-by: kvn
author jrose
date Wed, 12 Nov 2008 22:33:26 -0800
parents f008d3631bd1
children 2328d1d3f8cf
comparison
equal deleted inserted replaced
430:4d20a3aaf1ab 431:a45484ea312d
742 } 742 }
743 } 743 }
744 744
745 // common code for JVM_DefineClass() and JVM_DefineClassWithSource() 745 // common code for JVM_DefineClass() and JVM_DefineClassWithSource()
746 static jclass jvm_define_class_common(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source, TRAPS) { 746 static jclass jvm_define_class_common(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source, TRAPS) {
747 if (source == NULL) source = "__JVM_DefineClass__";
747 748
748 // Since exceptions can be thrown, class initialization can take place 749 // Since exceptions can be thrown, class initialization can take place
749 // if name is NULL no check for class name in .class stream has to be made. 750 // if name is NULL no check for class name in .class stream has to be made.
750 symbolHandle class_name; 751 symbolHandle class_name;
751 if (name != NULL) { 752 if (name != NULL) {
780 781
781 782
782 JVM_ENTRY(jclass, JVM_DefineClass(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd)) 783 JVM_ENTRY(jclass, JVM_DefineClass(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd))
783 JVMWrapper2("JVM_DefineClass %s", name); 784 JVMWrapper2("JVM_DefineClass %s", name);
784 785
785 return jvm_define_class_common(env, name, loader, buf, len, pd, "__JVM_DefineClass__", THREAD); 786 return jvm_define_class_common(env, name, loader, buf, len, pd, NULL, THREAD);
786 JVM_END 787 JVM_END
787 788
788 789
789 JVM_ENTRY(jclass, JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source)) 790 JVM_ENTRY(jclass, JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source))
790 JVMWrapper2("JVM_DefineClassWithSource %s", name); 791 JVMWrapper2("JVM_DefineClassWithSource %s", name);