< prev index next >

src/share/vm/classfile/javaClasses.cpp

Print this page

        

*** 50,59 **** --- 50,63 ---- #include "runtime/safepoint.hpp" #include "runtime/thread.inline.hpp" #include "runtime/vframe.hpp" #include "utilities/preserveException.hpp" + #if INCLUDE_ALL_GCS + #include "gc_implementation/shenandoah/shenandoahBarrierSet.hpp" + #endif + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC #define INJECTED_FIELD_COMPUTE_OFFSET(klass, name, signature, may_be_java) \ klass::_##name##_offset = JavaClasses::compute_injected_offset(JavaClasses::klass##_##name##_enum);
*** 1206,1220 **** } oop java_lang_Throwable::unassigned_stacktrace() { InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Throwable_klass()); address addr = ik->static_field_addr(static_unassigned_stacktrace_offset); if (UseCompressedOops) { ! return oopDesc::load_decode_heap_oop((narrowOop *)addr); } else { ! return oopDesc::load_decode_heap_oop((oop*)addr); } } oop java_lang_Throwable::backtrace(oop throwable) { return throwable->obj_field_acquire(backtrace_offset); } --- 1210,1231 ---- } oop java_lang_Throwable::unassigned_stacktrace() { InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Throwable_klass()); address addr = ik->static_field_addr(static_unassigned_stacktrace_offset); + oop result; if (UseCompressedOops) { ! result = oopDesc::load_decode_heap_oop((narrowOop *)addr); } else { ! result = oopDesc::load_decode_heap_oop((oop*)addr); ! } ! #if INCLUDE_ALL_GCS ! if (UseShenandoahGC) { ! result = ShenandoahBarrierSet::barrier_set()->load_reference_barrier(result); } + #endif + return result; } oop java_lang_Throwable::backtrace(oop throwable) { return throwable->obj_field_acquire(backtrace_offset); }
*** 2646,2660 **** } oop java_lang_ref_Reference::pending_list_lock() { InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); address addr = ik->static_field_addr(static_lock_offset); if (UseCompressedOops) { ! return oopDesc::load_decode_heap_oop((narrowOop *)addr); } else { ! return oopDesc::load_decode_heap_oop((oop*)addr); } } HeapWord *java_lang_ref_Reference::pending_list_addr() { InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); address addr = ik->static_field_addr(static_pending_offset); --- 2657,2678 ---- } oop java_lang_ref_Reference::pending_list_lock() { InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); address addr = ik->static_field_addr(static_lock_offset); + oop result; if (UseCompressedOops) { ! result = oopDesc::load_decode_heap_oop((narrowOop *)addr); } else { ! result = oopDesc::load_decode_heap_oop((oop*)addr); ! } ! #if INCLUDE_ALL_GCS ! if (UseShenandoahGC) { ! result = ShenandoahBarrierSet::barrier_set()->load_reference_barrier(result); } + #endif + return result; } HeapWord *java_lang_ref_Reference::pending_list_addr() { InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); address addr = ik->static_field_addr(static_pending_offset);
*** 2662,2676 **** return (HeapWord*)addr; } oop java_lang_ref_Reference::pending_list() { char *addr = (char *)pending_list_addr(); if (UseCompressedOops) { ! return oopDesc::load_decode_heap_oop((narrowOop *)addr); } else { ! return oopDesc::load_decode_heap_oop((oop*)addr); } } // Support for java_lang_ref_SoftReference --- 2680,2701 ---- return (HeapWord*)addr; } oop java_lang_ref_Reference::pending_list() { char *addr = (char *)pending_list_addr(); + oop result; if (UseCompressedOops) { ! result = oopDesc::load_decode_heap_oop((narrowOop *)addr); } else { ! result = oopDesc::load_decode_heap_oop((oop*)addr); ! } ! #if INCLUDE_ALL_GCS ! if (UseShenandoahGC) { ! result = ShenandoahBarrierSet::barrier_set()->load_reference_barrier(result); } + #endif + return result; } // Support for java_lang_ref_SoftReference
< prev index next >