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); |