Mercurial > hg > graal-jvmci-8
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); |