src/hotspot/share/prims/jniCheck.cpp
changeset 58760 1f7f707c1aa9
parent 58562 e43ac61b89ab
child 59016 3b9eeae66fa0
equal deleted inserted replaced
58759:4242e35767b5 58760:1f7f707c1aa9
   264   Klass* k_oop = jniCheck::validate_class(thr, cls, false);
   264   Klass* k_oop = jniCheck::validate_class(thr, cls, false);
   265 
   265 
   266   /* check for proper subclass hierarchy */
   266   /* check for proper subclass hierarchy */
   267   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fid);
   267   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fid);
   268   Klass* f_oop = id->holder();
   268   Klass* f_oop = id->holder();
   269   if (!InstanceKlass::cast(k_oop)->is_subtype_of(f_oop))
   269   if (!k_oop->is_subtype_of(f_oop))
   270     ReportJNIFatalError(thr, fatal_wrong_static_field);
   270     ReportJNIFatalError(thr, fatal_wrong_static_field);
   271 
   271 
   272   /* check for proper field type */
   272   /* check for proper field type */
   273   if (!id->find_local_field(&fd))
   273   if (!id->find_local_field(&fd))
   274     ReportJNIFatalError(thr, fatal_static_field_not_found);
   274     ReportJNIFatalError(thr, fatal_static_field_not_found);
   511 void jniCheck::validate_throwable_klass(JavaThread* thr, Klass* klass) {
   511 void jniCheck::validate_throwable_klass(JavaThread* thr, Klass* klass) {
   512   ASSERT_OOPS_ALLOWED;
   512   ASSERT_OOPS_ALLOWED;
   513   assert(klass != NULL, "klass argument must have a value");
   513   assert(klass != NULL, "klass argument must have a value");
   514 
   514 
   515   if (!klass->is_instance_klass() ||
   515   if (!klass->is_instance_klass() ||
   516       !InstanceKlass::cast(klass)->is_subclass_of(SystemDictionary::Throwable_klass())) {
   516       !klass->is_subclass_of(SystemDictionary::Throwable_klass())) {
   517     ReportJNIFatalError(thr, fatal_class_not_a_throwable_class);
   517     ReportJNIFatalError(thr, fatal_class_not_a_throwable_class);
   518   }
   518   }
   519 }
   519 }
   520 
   520 
   521 void jniCheck::validate_call(JavaThread* thr, jclass clazz, jmethodID method_id, jobject obj) {
   521 void jniCheck::validate_call(JavaThread* thr, jclass clazz, jmethodID method_id, jobject obj) {