src/share/vm/prims/jniCheck.cpp

changeset 4037
da91efe96a93
parent 3900
d2a62e0f25eb
child 4142
d8ce2825b193
     1.1 --- a/src/share/vm/prims/jniCheck.cpp	Fri Aug 31 16:39:35 2012 -0700
     1.2 +++ b/src/share/vm/prims/jniCheck.cpp	Sat Sep 01 13:25:18 2012 -0400
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -215,12 +215,12 @@
    1.11  
    1.12    /* validate the class being passed */
    1.13    ASSERT_OOPS_ALLOWED;
    1.14 -  klassOop k_oop = jniCheck::validate_class(thr, cls, false);
    1.15 +  Klass* k_oop = jniCheck::validate_class(thr, cls, false);
    1.16  
    1.17    /* check for proper subclass hierarchy */
    1.18    JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fid);
    1.19 -  klassOop f_oop = id->holder();
    1.20 -  if (!instanceKlass::cast(k_oop)->is_subtype_of(f_oop))
    1.21 +  Klass* f_oop = id->holder();
    1.22 +  if (!InstanceKlass::cast(k_oop)->is_subtype_of(f_oop))
    1.23      ReportJNIFatalError(thr, fatal_wrong_static_field);
    1.24  
    1.25    /* check for proper field type */
    1.26 @@ -247,7 +247,7 @@
    1.27    if (!oopObj) {
    1.28      ReportJNIFatalError(thr, fatal_null_object);
    1.29    }
    1.30 -  klassOop k_oop = oopObj->klass();
    1.31 +  Klass* k_oop = oopObj->klass();
    1.32  
    1.33    if (!jfieldIDWorkaround::is_valid_jfieldID(k_oop, fid)) {
    1.34      ReportJNIFatalError(thr, fatal_wrong_field);
    1.35 @@ -255,11 +255,11 @@
    1.36  
    1.37    /* make sure the field exists */
    1.38    int offset = jfieldIDWorkaround::from_instance_jfieldID(k_oop, fid);
    1.39 -  if (!instanceKlass::cast(k_oop)->contains_field_offset(offset))
    1.40 +  if (!InstanceKlass::cast(k_oop)->contains_field_offset(offset))
    1.41      ReportJNIFatalError(thr, fatal_wrong_field);
    1.42  
    1.43    /* check for proper field type */
    1.44 -  if (!instanceKlass::cast(k_oop)->find_field_from_offset(offset,
    1.45 +  if (!InstanceKlass::cast(k_oop)->find_field_from_offset(offset,
    1.46                                                                false, &fd))
    1.47      ReportJNIFatalError(thr, fatal_instance_field_not_found);
    1.48  
    1.49 @@ -316,16 +316,16 @@
    1.50  }
    1.51  
    1.52  
    1.53 -methodOop jniCheck::validate_jmethod_id(JavaThread* thr, jmethodID method_id) {
    1.54 +Method* jniCheck::validate_jmethod_id(JavaThread* thr, jmethodID method_id) {
    1.55    ASSERT_OOPS_ALLOWED;
    1.56    // do the fast jmethodID check first
    1.57 -  methodOop moop = JNIHandles::checked_resolve_jmethod_id(method_id);
    1.58 +  Method* moop = Method::checked_resolve_jmethod_id(method_id);
    1.59    if (moop == NULL) {
    1.60      ReportJNIFatalError(thr, fatal_wrong_class_or_method);
    1.61    }
    1.62 -  // jmethodIDs are supposed to be weak global handles, but that
    1.63 -  // can be expensive so check it last
    1.64 -  else if (!JNIHandles::is_weak_global_handle((jobject) method_id)) {
    1.65 +  // jmethodIDs are supposed to be weak handles in the class loader data,
    1.66 +  // but that can be expensive so check it last
    1.67 +  else if (!Method::is_method_id(method_id)) {
    1.68      ReportJNIFatalError(thr, fatal_non_weak_method);
    1.69    }
    1.70    return moop;
    1.71 @@ -360,7 +360,7 @@
    1.72    }
    1.73  }
    1.74  
    1.75 -klassOop jniCheck::validate_class(JavaThread* thr, jclass clazz, bool allow_primitive) {
    1.76 +Klass* jniCheck::validate_class(JavaThread* thr, jclass clazz, bool allow_primitive) {
    1.77    ASSERT_OOPS_ALLOWED;
    1.78    oop mirror = jniCheck::validate_handle(thr, clazz);
    1.79    if (!mirror) {
    1.80 @@ -371,7 +371,7 @@
    1.81      ReportJNIFatalError(thr, fatal_class_not_a_class);
    1.82    }
    1.83  
    1.84 -  klassOop k = java_lang_Class::as_klassOop(mirror);
    1.85 +  Klass* k = java_lang_Class::as_Klass(mirror);
    1.86    // Make allowances for primitive classes ...
    1.87    if (!(k != NULL || allow_primitive && java_lang_Class::is_primitive(mirror))) {
    1.88      ReportJNIFatalError(thr, fatal_class_not_a_class);
    1.89 @@ -379,12 +379,12 @@
    1.90    return k;
    1.91  }
    1.92  
    1.93 -void jniCheck::validate_throwable_klass(JavaThread* thr, klassOop klass) {
    1.94 +void jniCheck::validate_throwable_klass(JavaThread* thr, Klass* klass) {
    1.95    ASSERT_OOPS_ALLOWED;
    1.96    assert(klass != NULL, "klass argument must have a value");
    1.97  
    1.98    if (!Klass::cast(klass)->oop_is_instance() ||
    1.99 -      !instanceKlass::cast(klass)->is_subclass_of(SystemDictionary::Throwable_klass())) {
   1.100 +      !InstanceKlass::cast(klass)->is_subclass_of(SystemDictionary::Throwable_klass())) {
   1.101      ReportJNIFatalError(thr, fatal_class_not_a_throwable_class);
   1.102    }
   1.103  }
   1.104 @@ -540,8 +540,8 @@
   1.105                         const char *msg))
   1.106      functionEnter(thr);
   1.107      IN_VM(
   1.108 -      klassOop k = jniCheck::validate_class(thr, clazz, false);
   1.109 -      assert(k != NULL, "validate_class shouldn't return NULL klassOop");
   1.110 +      Klass* k = jniCheck::validate_class(thr, clazz, false);
   1.111 +      assert(k != NULL, "validate_class shouldn't return NULL Klass*");
   1.112        jniCheck::validate_throwable_klass(thr, k);
   1.113      )
   1.114      jint result = UNCHECKED()->ThrowNew(env, clazz, msg);

mercurial