488 char msg[JVM_MAXPATHLEN];
489 jio_snprintf(msg, JVM_MAXPATHLEN, "%s%s%s",
490 warn_bad_class_descriptor1, name, warn_bad_class_descriptor2);
491 ReportJNIWarning(thr, msg);
492 }
493 }
494
495 Klass* jniCheck::validate_class(JavaThread* thr, jclass clazz, bool allow_primitive) {
496 ASSERT_OOPS_ALLOWED;
497 oop mirror = jniCheck::validate_handle(thr, clazz);
498 if (!mirror) {
499 ReportJNIFatalError(thr, fatal_received_null_class);
500 }
501
502 if (mirror->klass() != SystemDictionary::Class_klass()) {
503 ReportJNIFatalError(thr, fatal_class_not_a_class);
504 }
505
506 Klass* k = java_lang_Class::as_Klass(mirror);
507 // Make allowances for primitive classes ...
508 if (!(k != NULL || allow_primitive && java_lang_Class::is_primitive(mirror))) {
509 ReportJNIFatalError(thr, fatal_class_not_a_class);
510 }
511 return k;
512 }
513
514 void jniCheck::validate_throwable_klass(JavaThread* thr, Klass* klass) {
515 ASSERT_OOPS_ALLOWED;
516 assert(klass != NULL, "klass argument must have a value");
517
518 if (!klass->is_instance_klass() ||
519 !InstanceKlass::cast(klass)->is_subclass_of(SystemDictionary::Throwable_klass())) {
520 ReportJNIFatalError(thr, fatal_class_not_a_throwable_class);
521 }
522 }
523
524 void jniCheck::validate_call_object(JavaThread* thr, jobject obj, jmethodID method_id) {
525 /* validate the object being passed */
526 ASSERT_OOPS_ALLOWED;
527 jniCheck::validate_jmethod_id(thr, method_id);
528 jniCheck::validate_object(thr, obj);
|
488 char msg[JVM_MAXPATHLEN];
489 jio_snprintf(msg, JVM_MAXPATHLEN, "%s%s%s",
490 warn_bad_class_descriptor1, name, warn_bad_class_descriptor2);
491 ReportJNIWarning(thr, msg);
492 }
493 }
494
495 Klass* jniCheck::validate_class(JavaThread* thr, jclass clazz, bool allow_primitive) {
496 ASSERT_OOPS_ALLOWED;
497 oop mirror = jniCheck::validate_handle(thr, clazz);
498 if (!mirror) {
499 ReportJNIFatalError(thr, fatal_received_null_class);
500 }
501
502 if (mirror->klass() != SystemDictionary::Class_klass()) {
503 ReportJNIFatalError(thr, fatal_class_not_a_class);
504 }
505
506 Klass* k = java_lang_Class::as_Klass(mirror);
507 // Make allowances for primitive classes ...
508 if (!(k != NULL || (allow_primitive && java_lang_Class::is_primitive(mirror)))) {
509 ReportJNIFatalError(thr, fatal_class_not_a_class);
510 }
511 return k;
512 }
513
514 void jniCheck::validate_throwable_klass(JavaThread* thr, Klass* klass) {
515 ASSERT_OOPS_ALLOWED;
516 assert(klass != NULL, "klass argument must have a value");
517
518 if (!klass->is_instance_klass() ||
519 !InstanceKlass::cast(klass)->is_subclass_of(SystemDictionary::Throwable_klass())) {
520 ReportJNIFatalError(thr, fatal_class_not_a_throwable_class);
521 }
522 }
523
524 void jniCheck::validate_call_object(JavaThread* thr, jobject obj, jmethodID method_id) {
525 /* validate the object being passed */
526 ASSERT_OOPS_ALLOWED;
527 jniCheck::validate_jmethod_id(thr, method_id);
528 jniCheck::validate_object(thr, obj);
|