< 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 >