Пример #1
0
jint ConstantPool::name_and_type_at(int index JVM_TRAPS) const {
  int offset = offset_from_checked_index(index JVM_ZCHECK_0(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;
}
Пример #2
0
ReturnOop ConstantPool::resolved_klass_at(int index JVM_TRAPS) const {
  int offset = offset_from_checked_index(index JVM_ZCHECK_0(offset));
  cp_check_0(ConstantTag::is_resolved_klass(tag_value_at(index)));
  return Universe::class_from_id(int_field(offset));
}
Пример #3
0
  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_0(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;