src/share/vm/classfile/javaClasses.cpp

changeset 9099
08326a76b148
parent 8721
575f637864df
child 9122
024be04bb151
child 9507
7e72702243a4
     1.1 --- a/src/share/vm/classfile/javaClasses.cpp	Tue Jan 30 11:22:58 2018 -0800
     1.2 +++ b/src/share/vm/classfile/javaClasses.cpp	Mon Jan 22 14:27:46 2018 -0500
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2018, 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 @@ -2679,6 +2679,32 @@
    1.11    *offset = value;
    1.12  }
    1.13  
    1.14 +// Support for java_lang_ref_ReferenceQueue
    1.15 +
    1.16 +oop java_lang_ref_ReferenceQueue::NULL_queue() {
    1.17 +  InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::ReferenceQueue_klass());
    1.18 +  oop mirror = ik->java_mirror();
    1.19 +  return mirror->obj_field(static_NULL_queue_offset);
    1.20 +}
    1.21 +
    1.22 +oop java_lang_ref_ReferenceQueue::ENQUEUED_queue() {
    1.23 +  InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::ReferenceQueue_klass());
    1.24 +  oop mirror = ik->java_mirror();
    1.25 +  return mirror->obj_field(static_ENQUEUED_queue_offset);
    1.26 +}
    1.27 +
    1.28 +void java_lang_ref_ReferenceQueue::compute_offsets() {
    1.29 +  Klass* k = SystemDictionary::ReferenceQueue_klass();
    1.30 +  compute_offset(static_NULL_queue_offset,
    1.31 +                 k,
    1.32 +                 vmSymbols::referencequeue_null_name(),
    1.33 +                 vmSymbols::referencequeue_signature());
    1.34 +  compute_offset(static_ENQUEUED_queue_offset,
    1.35 +                 k,
    1.36 +                 vmSymbols::referencequeue_enqueued_name(),
    1.37 +                 vmSymbols::referencequeue_signature());
    1.38 +}
    1.39 +
    1.40  // Support for java_lang_invoke_DirectMethodHandle
    1.41  
    1.42  int java_lang_invoke_DirectMethodHandle::_member_offset;
    1.43 @@ -3197,6 +3223,8 @@
    1.44  int java_lang_ref_Reference::static_lock_offset;
    1.45  int java_lang_ref_Reference::static_pending_offset;
    1.46  int java_lang_ref_Reference::number_of_fake_oop_fields;
    1.47 +int java_lang_ref_ReferenceQueue::static_NULL_queue_offset;
    1.48 +int java_lang_ref_ReferenceQueue::static_ENQUEUED_queue_offset;
    1.49  int java_lang_ref_SoftReference::timestamp_offset;
    1.50  int java_lang_ref_SoftReference::static_clock_offset;
    1.51  int java_lang_ClassLoader::parent_offset;
    1.52 @@ -3378,6 +3406,8 @@
    1.53    if (JDK_Version::is_jdk18x_version())
    1.54      java_lang_reflect_Parameter::compute_offsets();
    1.55  
    1.56 +  java_lang_ref_ReferenceQueue::compute_offsets();
    1.57 +
    1.58    // generated interpreter code wants to know about the offsets we just computed:
    1.59    AbstractAssembler::update_delayed_values();
    1.60  }

mercurial