hotspot/src/share/vm/prims/unsafe.cpp
changeset 33611 9abd65805e19
parent 33589 7cbd1b2c139b
child 33612 b1487e78deee
equal deleted inserted replaced
33602:16053580a684 33611:9abd65805e19
   764   if (acls == NULL) {
   764   if (acls == NULL) {
   765     THROW(vmSymbols::java_lang_NullPointerException());
   765     THROW(vmSymbols::java_lang_NullPointerException());
   766   }
   766   }
   767   oop      mirror = JNIHandles::resolve_non_null(acls);
   767   oop      mirror = JNIHandles::resolve_non_null(acls);
   768   Klass* k      = java_lang_Class::as_Klass(mirror);
   768   Klass* k      = java_lang_Class::as_Klass(mirror);
   769   if (k == NULL || !k->oop_is_array()) {
   769   if (k == NULL || !k->is_array_klass()) {
   770     THROW(vmSymbols::java_lang_InvalidClassException());
   770     THROW(vmSymbols::java_lang_InvalidClassException());
   771   } else if (k->oop_is_objArray()) {
   771   } else if (k->is_objArray_klass()) {
   772     base  = arrayOopDesc::base_offset_in_bytes(T_OBJECT);
   772     base  = arrayOopDesc::base_offset_in_bytes(T_OBJECT);
   773     scale = heapOopSize;
   773     scale = heapOopSize;
   774   } else if (k->oop_is_typeArray()) {
   774   } else if (k->is_typeArray_klass()) {
   775     TypeArrayKlass* tak = TypeArrayKlass::cast(k);
   775     TypeArrayKlass* tak = TypeArrayKlass::cast(k);
   776     base  = tak->array_header_in_bytes();
   776     base  = tak->array_header_in_bytes();
   777     assert(base == arrayOopDesc::base_offset_in_bytes(tak->element_type()), "array_header_size semantics ok");
   777     assert(base == arrayOopDesc::base_offset_in_bytes(tak->element_type()), "array_header_size semantics ok");
   778     scale = (1 << tak->log2_element_size());
   778     scale = (1 << tak->log2_element_size());
   779   } else {
   779   } else {