< prev index next >

src/share/vm/prims/jniCheck.cpp

Print this page




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


< prev index next >