jint ConstantPool::name_and_type_at(int index JVM_TRAPS) const { int offset = offset_from_checked_index(index JVM_ZCHECK(offset)); cp_check_0(ConstantTag::is_name_and_type(tag_value_at(index))); int result = int_field(offset); GUARANTEE(result != 0, "sanity for JVM_ZCHECK"); return result; }
ReturnOop ConstantPool::resolved_klass_at(int index JVM_TRAPS) const { int offset = offset_from_checked_index(index JVM_ZCHECK(offset)); cp_check_0(ConstantTag::is_resolved_klass(tag_value_at(index))); return Universe::class_from_id(int_field(offset)); }
GUARANTEE(Synchronizer::is_locked_by(obj, thread), "Sanity check"); } static int local_rand() { static unsigned int state = 0x23451921; const unsigned int multiplier = 0xDEECE66DL; const unsigned int addend = 0xBL; state = state * multiplier + addend; return (int)state; } jint Synchronizer::hash_code(JavaOop* obj JVM_TRAPS) { if (obj->klass() == _interned_string_near_addr) { JavaOop::Raw new_obj = get_lock_object_ref(obj, Thread::current(), false JVM_ZCHECK(new_obj)); GUARANTEE(!obj->is_null(), "lock object is null!"); *obj = new_obj; } JavaNear::Raw java_near = obj->klass(); // Check if hash has been computed if (!java_near().has_hash()) { UsingFastOops fast_oops; bool is_locked = java_near().is_locked(); JavaClass::Fast c = java_near().klass(); // Create a new near. java_near = Universe::new_java_near(&c JVM_CHECK_0); // use a pseudo-random 32-bit number as the hash value jint new_hash;
} ReturnOop ObjArrayClass::get_array_class(jint distance JVM_TRAPS) { if (distance == 1) { return obj(); } UsingFastOops fast_oops; ObjArrayClass::Fast ac = compute_higher_dimension(JVM_SINGLE_ARG_ZCHECK(ac)); return ac().get_array_class(distance - 1 JVM_NO_CHECK_AT_BOTTOM_0); } ReturnOop ObjArrayClass::multi_allocate(int rank, JavaFrame* frame JVM_TRAPS) { UsingFastOops fast_oops; int length = frame->expression_at(rank - 1)->as_int(); ObjArray::Fast result = Universe::allocate_array(this, length, oopSize JVM_ZCHECK(result)); JavaClass::Fast lower; if (rank > 1) { // Allocate all the sub arrays lower = element_class(); if (lower.is_obj_array_class()) { ObjArrayClass *oc = (ObjArrayClass*)&lower; if (length == 0) { /* * If there is a zero dimension value, subsequent dimensions should not * be allocated, but JVMS requires to throw NegativeArraySizeException * if *any* of dimension values is negative. */ for (int r = rank - 2; r >= 0; r--) { int sub_length = frame->expression_at(r)->as_int(); if (sub_length < 0) {