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 }